PageSourceSearch

https://sampanews.sp.gov.br/noticias

html sampanews.sp.gov.br collected 2026-10-07 10:30:35 UTC 270,487 bytes, 6,906 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33	
34		
35		
36			<!DOCTYPE html>
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98<html class="ltr" dir="ltr" lang="pt-BR">
99
100<head>
101	<title>Notícias - Sampa News - Prefeitura</title>
102
103	<meta content="initial-scale=1.0, width=device-width" name="viewport" />
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151<script type="importmap">{"imports": {"@liferay/dynamic-data-mapping-form-field-type/api": "/o/dynamic-data-mapping-form-field-type/__liferay__/api.js","@clayui/alert": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$alert.js", "@clayui/autocomplete": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$autocomplete.js", "@clayui/badge": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$badge.js", "@clayui/breadcrumb": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$breadcrumb.js", "@clayui/button": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$button.js", "@clayui/card": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$card.js", "@clayui/color-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$color-picker.js", "@clayui/core": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$core.js", "@clayui/data-provider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$data-provider.js", "@clayui/date-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$date-picker.js", "@clayui/drop-down": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$drop-down.js", "@clayui/empty-state": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$empty-state.js", "@clayui/form": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$form.js", "@clayui/icon": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$icon.js", "@clayui/label": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$label.js", "@clayui/layout": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$layout.js", "@clayui/link": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$link.js", "@clayui/list": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$list.js", "@clayui/loading-indicator": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$loading-indicator.js", "@clayui/localized-input": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$localized-input.js", "@clayui/management-toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$management-toolbar.js", "@clayui/modal": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$modal.js", "@clayui/multi-select": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$multi-select.js", "@clayui/multi-step-nav": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$multi-step-nav.js", "@clayui/nav": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$nav.js", "@clayui/navigation-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$navigation-bar.js", "@clayui/pagination": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$pagination.js", "@clayui/pagination-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$pagination-bar.js", "@clayui/panel": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$panel.js", "@clayui/popover": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$popover.js", "@clayui/progress-bar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$progress-bar.js", "@clayui/provider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$provider.js", "@clayui/shared": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$shared.js", "@clayui/slider": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$slider.js", "@clayui/sticker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$sticker.js", "@clayui/table": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$table.js", "@clayui/tabs": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$tabs.js", "@clayui/time-picker": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$time-picker.js", "@clayui/toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$toolbar.js", "@clayui/tooltip": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$tooltip.js", "@clayui/upper-toolbar": "/o/frontend-js-clay-web/__liferay__/exports/@clayui$upper-toolbar.js","react": "/o/frontend-js-react-web/__liferay__/exports/react.js", "react-16": "/o/frontend-js-react-web/__liferay__/exports/react-16.js", "react-18": "/o/frontend-js-react-web/__liferay__/exports/react-18.js", "react-dom": "/o/frontend-js-react-web/__liferay__/exports/react-dom.js", "react-dom/client": "/o/frontend-js-react-web/__liferay__/exports/react-dom$client.js", "react-dom-16": "/o/frontend-js-react-web/__liferay__/exports/react-dom-16.js", "react-dom-18": "/o/frontend-js-react-web/__liferay__/exports/react-dom-18.js", "react-dom-18/client": "/o/frontend-js-react-web/__liferay__/exports/react-dom-18$client.js","@liferay/fragment-impl/api": "/o/fragment-impl/__liferay__/api.js","@ckeditor/ckeditor5-adapter-ckfinder/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-adapter-ckfinder$dist$index.js.js", "@ckeditor/ckeditor5-alignment/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-alignment$dist$index.js.js", "@ckeditor/ckeditor5-autoformat/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-autoformat$dist$index.js.js", "@ckeditor/ckeditor5-autosave/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-autosave$dist$index.js.js", "@ckeditor/ckeditor5-basic-styles/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-basic-styles$dist$index.js.js", "@ckeditor/ckeditor5-block-quote/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-block-quote$dist$index.js.js", "@ckeditor/ckeditor5-bookmark/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-bookmark$dist$index.js.js", "@ckeditor/ckeditor5-ckbox/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ckbox$dist$index.js.js", "@ckeditor/ckeditor5-ckfinder/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ckfinder$dist$index.js.js", "@ckeditor/ckeditor5-clipboard/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-clipboard$dist$index.js.js", "@ckeditor/ckeditor5-cloud-services/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-cloud-services$dist$index.js.js", "@ckeditor/ckeditor5-code-block/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-code-block$dist$index.js.js", "@ckeditor/ckeditor5-core/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-core$dist$index.js.js", "@ckeditor/ckeditor5-easy-image/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-easy-image$dist$index.js.js", "@ckeditor/ckeditor5-editor-balloon/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-balloon$dist$index.js.js", "@ckeditor/ckeditor5-editor-classic/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-classic$dist$index.js.js", "@ckeditor/ckeditor5-editor-decoupled/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-decoupled$dist$index.js.js", "@ckeditor/ckeditor5-editor-inline/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-inline$dist$index.js.js", "@ckeditor/ckeditor5-editor-multi-root/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-editor-multi-root$dist$index.js.js", "@ckeditor/ckeditor5-emoji/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-emoji$dist$index.js.js", "@ckeditor/ckeditor5-engine/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-engine$dist$index.js.js", "@ckeditor/ckeditor5-enter/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-enter$dist$index.js.js", "@ckeditor/ckeditor5-essentials/
151dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-essentials$dist$index.js.js", "@ckeditor/ckeditor5-find-and-replace/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-find-and-replace$dist$index.js.js", "@ckeditor/ckeditor5-font/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-font$dist$index.js.js", "@ckeditor/ckeditor5-fullscreen/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-fullscreen$dist$index.js.js", "@ckeditor/ckeditor5-heading/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-heading$dist$index.js.js", "@ckeditor/ckeditor5-highlight/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-highlight$dist$index.js.js", "@ckeditor/ckeditor5-horizontal-line/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-horizontal-line$dist$index.js.js", "@ckeditor/ckeditor5-html-embed/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-html-embed$dist$index.js.js", "@ckeditor/ckeditor5-html-support/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-html-support$dist$index.js.js", "@ckeditor/ckeditor5-icons/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-icons$dist$index.js.js", "@ckeditor/ckeditor5-image/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-image$dist$index.js.js", "@ckeditor/ckeditor5-indent/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-indent$dist$index.js.js", "@ckeditor/ckeditor5-language/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-language$dist$index.js.js", "@ckeditor/ckeditor5-link/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-link$dist$index.js.js", "@ckeditor/ckeditor5-list/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-list$dist$index.js.js", "@ckeditor/ckeditor5-markdown-gfm/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-markdown-gfm$dist$index.js.js", "@ckeditor/ckeditor5-media-embed/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-media-embed$dist$index.js.js", "@ckeditor/ckeditor5-mention/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-mention$dist$index.js.js", "@ckeditor/ckeditor5-minimap/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-minimap$dist$index.js.js", "@ckeditor/ckeditor5-page-break/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-page-break$dist$index.js.js", "@ckeditor/ckeditor5-paragraph/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-paragraph$dist$index.js.js", "@ckeditor/ckeditor5-paste-from-office/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-paste-from-office$dist$index.js.js", "@ckeditor/ckeditor5-react": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-react.js", "@ckeditor/ckeditor5-remove-format/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-remove-format$dist$index.js.js", "@ckeditor/ckeditor5-restricted-editing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-restricted-editing$dist$index.js.js", "@ckeditor/ckeditor5-select-all/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-select-all$dist$index.js.js", "@ckeditor/ckeditor5-show-blocks/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-show-blocks$dist$index.js.js", "@ckeditor/ckeditor5-source-editing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-source-editing$dist$index.js.js", "@ckeditor/ckeditor5-special-characters/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-special-characters$dist$index.js.js", "@ckeditor/ckeditor5-style/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-style$dist$index.js.js", "@ckeditor/ckeditor5-table/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-table$dist$index.js.js", "@ckeditor/ckeditor5-typing/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-typing$dist$index.js.js", "@ckeditor/ckeditor5-ui/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-ui$dist$index.js.js", "@ckeditor/ckeditor5-undo/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-undo$dist$index.js.js", "@ckeditor/ckeditor5-upload/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-upload$dist$index.js.js", "@ckeditor/ckeditor5-utils/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-utils$dist$index.js.js", "@ckeditor/ckeditor5-watchdog/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-watchdog$dist$index.js.js", "@ckeditor/ckeditor5-widget/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-widget$dist$index.js.js", "@ckeditor/ckeditor5-word-count/dist/index.js": "/o/frontend-editor-ckeditor-web/__liferay__/exports/@ckeditor$ckeditor5-word-count$dist$index.js.js","@liferay/frontend-js-api": "/o/frontend-js-dependencies-web/__liferay__/exports/@liferay$js-api.js", "@liferay/frontend-js-api/data-set": "/o/frontend-js-dependencies-web/__liferay__/exports/@liferay$js-api$data-set.js","@liferay/o
151auth2-provider-web/client": "/o/oauth2-provider-web/__liferay__/client.js","@liferay/language/": "/o/js/language/"}, "scopes": {}}</script>
151<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" rel="canonical" />
152<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="es-ES" rel="alternate" />
153<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="en-US" rel="alternate" />
154<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="pt-BR" rel="alternate" />
155<link data-senna-track="temporary" href="https://sampanews.sp.gov.br/noticias" hreflang="x-default" rel="alternate" />
156
157<meta property="og:locale" content="pt_BR">
158<meta property="og:locale:alternate" content="pt_BR">
159<meta property="og:locale:alternate" content="en_US">
160<meta property="og:locale:alternate" content="es_ES">
161<meta property="og:site_name" content="Sampa News">
162<meta property="og:title" content="Notícias - Sampa News - Prefeitura">
163<meta property="og:type" content="website">
164<meta property="og:url" content="https://sampanews.sp.gov.br/noticias">
165
166
167<link href="https://sampanews.sp.gov.br/o/dialect-theme/images/favicon.ico" rel="apple-touch-icon" />
168<link href="https://sampanews.sp.gov.br/o/dialect-theme/images/favicon.ico" rel="icon" />
169
170
171
172<link class="lfr-css-file" data-senna-track="temporary" href="/o/dialect-theme/css/clay.(FLVl71WwKTc).css" id="liferayAUICSS" rel="stylesheet" type="text/css" />
173
174
175
176
177
178
179
180
181
182	<link href="https://sampanews.sp.gov.br/o/cookies-banner-web/cookies_banner/css/main.(rrlPSd7LGsE).css" rel="stylesheet" type="text/css"
183 data-senna-track="temporary" id="e4ad11ab" />
184<link href="https://sampanews.sp.gov.br/o/portal-search-web/css/main.(ewQ02j$q6kw).css" rel="stylesheet" type="text/css"
185 data-senna-track="temporary" id="a9b8c218" />
186<link href="https://sampanews.sp.gov.br/o/product-navigation-product-menu-web/css/main.(i$0IgPwR2kk).css" rel="stylesheet" type="text/css"
187 data-senna-track="temporary" id="ebf5f43b" />
188<link href="https://sampanews.sp.gov.br/o/site-navigation-menu-web/css/main.(wnU1o3f4AJ0).css" rel="stylesheet" type="text/css"
189 data-senna-track="temporary" id="800909" />
190
191
192
193
194
195
196
197
198<script data-senna-track="temporary" type="text/javascript">
199(function() {
200	function buildESMStub(contextPath, symbol) {
201		return (
202			(...args) => {
203				import(
204					Liferay.ThemeDisplay.getCDNHost() +
205					Liferay.ThemeDisplay.getPathContext() +
206						'/o/' +
207						contextPath +
208						'/__liferay__/index.js'
209				).then(
210					(exports) => exports[symbol](...args)
211				);
212			}
213		);
214	}
215
216	function defineReadOnlyGlobal(name, getValue) {
217		Object.defineProperty(
218			window,
219			name,
220			{
221				get: getValue,
222				set: (x) => {
223					if (x !== getValue()) {
224						console.error(`Global variable '${name}' is read-only`);
225					}
226				}
227			}
228		);
229	}
230
231	function isObject(item) {
232		return (item && typeof item === 'object' && !Array.isArray(item));
233	}
234
235	function merge(target, source) {
236		for (const key in source) {
237			if (isObject(source[key])) {
238				if (!target[key]) {
239					Object.assign(target, { [key]: {} });
240				}
241
242				merge(target[key], source[key]);
243			}
244			else {
245				Object.assign(target, { [key]: source[key] });
246			}
247		}
248	}
249
250	let __liferay = {
251AUI: {
252getCombine: () => true,
253getComboPath: () => '/combo/?browserId=chrome&minifierType=&languageId=pt_BR&t=1790649509599&',
254getDateFormat: () => '%d/%m/%Y',
255getEditorCKEditorPath: () => '/o/frontend-editor-ckeditor-web',
256getFilter: () => 'min',
257getFilterConfig: () => null,
258getJavaScriptRootPath: () => '/o/frontend-js-web',
259getPortletRootPath: () => '/html/portlet',
260getStaticResourceURLParams: () => '?browserId=chrome&minifierType=&languageId=pt_BR&t=1790649509599',
261},
262Browser: {
263acceptsGzip: () => true,
264getMajorVersion: () => '128.0',
265getRevision: () => '537.36',
266getVersion: () => '128.0',
267isAir: () => false,
268isChrome: () => true,
269isEdge: () => false,
270isFirefox: () => false,
271isGecko: () => true,
272isIe: () => false,
273isIphone: () => false,
274isLinux: () => false,
275isMac: () => false,
276isMobile: () => false,
277isMozilla: () => false,
278isOpera: () => false,
279isRtf: () => true,
280isSafari: () => true,
281isSun: () => false,
282isWebKit: () => true,
283isWindows: () => false,
284},
285Data: {
286ICONS_INLINE_SVG: true,
287NAV_SELECTOR: '#navigation',
288NAV_SELECTOR_MOBILE: '#navigationCollapse',
289isCustomizationView: () => false,
290notices: [
291],
292},
293FeatureFlags: {
294'LPD-11342': false,
295'LPD-23840': false,
296'LPD-36010': true,
297'LPD-36719': true,
298'LPD-39203': false,
299'LPD-40529': true,
300'LPD-48372': true,
301'LPD-48975': true,
302'LPD-78863': true,
303'LPS-157670': false,
304'LPS-172416': false,
305'LPS-183672': false,
306'LPS-186360': false,
307'LRAC-14771': false,
308'COMMERCE-13024': false,
309'COMMERCE-8087': false,
310'COMMERCE-8949': false,
311'LPD-10562': false,
312'LPD-10964': false,
313'LPD-11003': false,
314'LPD-11131': true,
315'LPD-11228': false,
316'LPD-11235': false,
317'LPD-11313': false,
318'LPD-11848': false,
319'LPD-13311': true,
320'LPD-13778': true,
321'LPD-17564': false,
322'LPD-19870': false,
323'LPD-19955': false,
324'LPD-20183': false,
325'LPD-20379': false,
326'LPD-20640': false,
327'LPD-21414': false,
328'LPD-29516': false,
329'LPD-31212': false,
330'LPD-31228': false,
331'LPD-31789': false,
332'LPD-32867': false,
333'LPD-34594': false,
334'LPD-35013': true,
335'LPD-35128': false,
336'LPD-35443': false,
337'LPD-36105': false,
338'LPD-38564': false,
339'LPD-38869': false,
340'LPD-39304': true,
341'LPD-39437': false,
342'LPD-40530': true,
343'LPD-40533': true,
344'LPD-40534': true,
345'LPD-40535': true,
346'LPD-42553': false,
347'LPD-43996': false,
348'LPD-44091': true,
349'LPD-44307': true,
350'LPD-44771': true,
351'LPD-45276': false,
352'LPD-47713': true,
353'LPD-48862': true,
354'LPD-51356': false,
355'LPD-56718': false,
356'LPD-57655': false,
357'LPD-58677': false,
358'LPD-60546': true,
359'LPD-62272': false,
360'LPD-63311': false,
361'LPD-63415': false,
362'LPD-63416': false,
363'LPD-6368': false,
364'LPD-65299': false,
365'LPD-65399': false,
366'LPD-66359': false,
367'LPD-66611': true,
368'LPD-74328': false,
369'LPD-74739': true,
370'LPD-75032': false,
371'LPD-75525': false,
372'LPD-7822': false,
373'LPS-122920': false,
374'LPS-135430': false,
375'LPS-153332': false,
376'LPS-153714': false,
377'LPS-153813': false,
378'LPS-155284': false,
379'LPS-159643': false,
380'LPS-164563': false,
381'LPS-165482': false,
382'LPS-169837': false,
383'LPS-170670': false,
384'LPS-174417': false,
385'LPS-174816': false,
386'LPS-176691': false,
387'LPS-177027': false,
388'LPS-178052': false,
389'LPS-178642': false,
390'LPS-180090': false,
391'LPS-185892': false,
392'LPS-186620': false,
393'LPS-193884': false,
394'LPS-196935': false,
395'LPS-197477': false,
396'LPS-197909': false,
397'LPS-198183': false,
398'LPS-200108': false,
399'LPS-202104': false,
400'LRAC-10757': false,
401'LRAC-15017': false,
402},
403Language: {
404	_cache:
405		window?.Liferay?.Language?._cache
406			? Liferay.Language._cache
407			: {},
408	available: {
409'pt_BR': 'português\x20\x28Brasil\x29',
410'en_US': 'English\x20\x28United\x20States\x29',
411'es_ES': 'español\x20\x28España\x29',
412
413	},
414	direction: {
415'pt_BR': 'ltr',
416'en_US': 'ltr',
417'es_ES': 'ltr',
418
419	},
420	get:
421		(key) => {
422			let value = Liferay.Language._cache[key];
423
424			if (value === undefined) {
425				value = key;
426			}
427
428			return value;
429		},
430},
431Portlet: {
432openModal: buildESMStub('frontend-js-components-web', 'openPortletModal'),
433openWindow: buildESMStub('frontend-js-components-web', 'openPortletWindow'),
434},
435PortletKeys: {
436DOCUMENT_LIBRARY: 'com_liferay_document_library_web_portlet_DLPortlet',
437DYNAMIC_DATA_MAPPING: 'com_liferay_dynamic_data_mapping_web_portlet_DDMPortlet',
438INSTANCE_SETTINGS: 'com_liferay_configuration_admin_web_portlet_InstanceSettingsPortlet',
439ITEM_SELECTOR: 'com_liferay_item_selector_web_portlet_ItemSelectorPortlet',
440},
441PropsValues: {
442JAVASCRIPT_SINGLE_PAGE_APPLICATION_TIMEOUT: 0,
443UPLOAD_SERVLET_REQUEST_IMPL_MAX_SIZE: 1048576000,
444},
445ThemeDisplay: {
446getLayoutId: () => '41',
447getLayoutRelativeControlPanelURL: () => '/group/sampa-news/~/control_panel/manage',
448getLayoutRelativeURL: () => '/noticias',
449getLayoutURL: () => 'https://sampanews.sp.gov.br/noticias',
450getParentLayoutId: () => '0',
451getPathFriendlyURLPublic: () => '/web',
452isControlPanel: () => false,
453isPrivateLayout: () => false,
454isVirtualLayout: () => false,
455getBCP47LanguageId: () => 'pt-BR',
456getCanonicalURL: () => 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fnoticias',
457getCDNBaseURL: () => 'https://sampanews.sp.gov.br',
458getCDNDynamicResourcesHost: () => '',
459getCDNHost: () => '',
460getCompanyGroupId: () => '20121',
461getCompanyId: () => '20095',
462getDefaultLanguageId: () => 'pt_BR',
463getDoAsUserIdEncoded: () => '',
464getLanguageId: () => 'pt_BR',
465getParentGroupId: () => '24771855',
466getParentSiteGroupId: () => '34276',
467getPathContext: () => '',
468getPathImage: () => '/image',
469getPathJavaScript: () => '/o/frontend-js-web',
470getPathMain: () => '/c',
471getPathThemeImages: () => 'https://sampanews.sp.gov.br/o/dialect-theme/images',
472getPathThemeRoot: () => '/o/dialect-theme',
473getPlid: () => '24592',
474getPortalURL: () => 'https://sampanews.sp.gov.br',
475getRealUserId: () => '20097',
476getRemoteAddr: () => '181.215.65.35',
477getRemoteHost: () => '181.215.65.35',
478getScopeGroupId: () => '24771855',
479getScopeGroupIdOrLiveGroupId: () => '24771855',
480getSessionId: () => '',
481getSiteAdminURL: () => 'https://sampanews.sp.gov.br/group/sampa-news/~/control_panel/manage?p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view',
482getSiteGroupId: () => '24771855',
483getTimeZone: () => 'America/Sao_Paulo',
484getURLControlPanel: () => '/group/control_panel?refererPlid=24592',
485getURLHome: () => 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fweb\x2fprefeitura-de-sao-paulo\x2f',
486getUserEmailAddress: () => '',
487getUserId: () => '20097',
488getUserName: () => '',
489isAddSessionIdToURL: () => false,
490isImpersonated: () => false,
491isSignedIn: () => false,
492isStagedPortlet: () => false,
493isStateExclusive: () => false,
494isStateMaximized: () => false,
495isStatePopUp: () => false,
496},
497Util: {
498Window: {
499	_map: {},
500	getById: (id) => Liferay.Util.Window._map[id],
501},
502openAlertModal: buildESMStub('frontend-js-components-web', 'openAlertModal'),
503openConfirmModal: buildESMStub('frontend-js-components-web', 'openConfirmModal'),
504openModal: buildESMStub('frontend-js-components-web', 'openModal'),
505openSelectionModal: buildESMStub('frontend-js-components-web', 'openSelectionModal'),
506openSimpleInputModal: buildESMStub('frontend-js-components-web', 'openSimpleInputModal'),
507openToast: buildESMStub('frontend-js-components-web', 'openToast'),
508},
509authToken: '0xf4SxD9',
510currentURL: '\x2fnoticias',
511currentURLEncoded: '\x252Fnoticias',
512
513	};
514
515	if (window.Liferay) {
516		merge(window.Liferay, __liferay);
517	}
518	else {
519		defineReadOnlyGlobal('Liferay', () => __liferay);
520		defineReadOnlyGlobal('themeDisplay', () => window.Liferay.ThemeDisplay);
521	}
522})();
523</script>
vendor: 1 bytes, line 523
523
524<script data-senna-track="permanent" src="/o/portal-url-builder-impl/Liferay.js" type="text/javascript"></script>
524<script data-senna-track="permanent" src="/combo?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649509599&/o/frontend-js-aui-web/aui/aui/aui-min.js&/o/frontend-js-aui-web/liferay/modules.js&/o/frontend-js-aui-web/liferay/aui_sandbox.js&/o/frontend-js-aui-web/aui/attribute-base/attribute-base-min.js&/o/frontend-js-aui-web/aui/attribute-complex/attribute-complex-min.js&/o/frontend-js-aui-web/aui/attribute-core/attribute-core-min.js&/o/frontend-js-aui-web/aui/attribute-observable/attribute-observable-min.js&/o/frontend-js-aui-web/aui/attribute-extras/attribute-extras-min.js&/o/frontend-js-aui-web/aui/event-custom-base/event-custom-base-min.js&/o/frontend-js-aui-web/aui/event-custom-complex/event-custom-complex-min.js&/o/frontend-js-aui-web/aui/oop/oop-min.js&/o/frontend-js-aui-web/aui/aui-base-lang/aui-base-lang-min.js&/o/frontend-js-aui-web/liferay/dependency.js" type="text/javascript"></script>
vendor: 1 bytes, line 524
524
525<script data-senna-track="permanent" src="/o/frontend-js-web/Liferay.js" type="text/javascript"></script>
vendor: 1 bytes, line 525
525
526<script data-senna-track="permanent" type="module">await import(`@liferay/language/${Liferay.ThemeDisplay.getLanguageId()}/frontend-js-web/all.js`);</script>
vendor: 1 bytes, line 526
526
527<script data-senna-track="temporary" type="text/javascript">window.__CONFIG__= {basePath: '', combine: true, defaultURLParams: null, explainResolutions: false, exposeGlobal: false, logLevel: 'warn', moduleType: 'module', namespace:'Liferay', nonce: '', reportMismatchedAnonymousModules: 'warn', resolvePath: '/o/js_resolve_modules', url: '/combo/?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649509599&', waitTimeout: 60000};</script>
527<script data-senna-track="permanent" src="/o/frontend-js-loader-modules-extender/loader.js" type="text/javascript"></script>
527<script data-senna-track="temporary">Liferay.Icons = Liferay.Icons || {};Liferay.Icons.controlPanelSpritemap = 'https://sampanews.sp.gov.br/o/admin-theme/images/clay/icons.svg'; Liferay.Icons.spritemap = 'https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg';</script>
vendor: 1 bytes, line 527
527
528<script data-senna-track="permanent" type="text/javascript">window.Liferay.CSP = {nonce: ''};</script>
vendor: 1 bytes, line 528
528
529<script data-senna-track="permanent" src="/o/oauth2-provider-web/__liferay__/global.js" type="module"></script>
vendor: 1 bytes, line 529
529
530<script data-senna-track="temporary" type="text/javascript">window.Liferay = Liferay || {}; window.Liferay.OAuth2 = {getAuthorizeURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/authorize';}, getBuiltInRedirectURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/redirect';}, getIntrospectURL: function() { return 'https://sampanews.sp.gov.br/o/oauth2/introspect';}, getTokenURL: function() {return 'https://sampanews.sp.gov.br/o/oauth2/token';}, getUserAgentApplication: function(externalReferenceCode) {return Liferay.OAuth2._userAgentApplications[externalReferenceCode];}, _userAgentApplications: {}}</script>
530<script data-senna-track="temporary" type="text/javascript">try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-editor-alloyeditor-web';/**
531 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
532 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
533 */
534
535(function () {
536	AUI().applyConfig({
537		groups: {
538			alloyeditor: {
539				base: MODULE_PATH + '/js/legacy/',
540				combine: Liferay.AUI.getCombine(),
541				filter: Liferay.AUI.getFilterConfig(),
542				modules: {
543					'liferay-alloy-editor': {
544						path: 'alloyeditor.js',
545						requires: [
546							'aui-component',
547							'liferay-portlet-base',
548							'timers',
549						],
550					},
551					'liferay-alloy-editor-source': {
552						path: 'alloyeditor_source.js',
553						requires: [
554							'aui-debounce',
555							'liferay-fullscreen-source-editor',
556							'liferay-source-editor',
557							'plugin',
558						],
559					},
560					'liferay-fullscreen-source-editor': {
561						path: 'fullscreen_source_editor.js',
562						requires: ['liferay-source-editor'],
563					},
564					'liferay-source-editor': {
565						path: 'source_editor.js',
566						requires: ['aui-ace-editor'],
567					},
568				},
569				root: MODULE_PATH + '/js/legacy/',
570			},
571		},
572	});
573})();
574} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/calendar-web';/**
575 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
576 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
577 */
578
579(function () {
580	AUI().applyConfig({
581		groups: {
582			calendar: {
583				base: MODULE_PATH + '/js/legacy/',
584				combine: Liferay.AUI.getCombine(),
585				filter: Liferay.AUI.getFilterConfig(),
586				modules: {
587					'liferay-calendar-a11y': {
588						path: 'calendar_a11y.js',
589						requires: ['calendar'],
590					},
591					'liferay-calendar-container': {
592						path: 'calendar_container.js',
593						requires: [
594							'aui-alert',
595							'aui-base',
596							'aui-component',
597							'liferay-portlet-base',
598						],
599					},
600					'liferay-calendar-date-picker-sanitizer': {
601						path: 'date_picker_sanitizer.js',
602						requires: ['aui-base'],
603					},
604					'liferay-calendar-interval-selector': {
605						path: 'interval_selector.js',
606						requires: ['aui-base', 'liferay-portlet-base'],
607					},
608					'liferay-calendar-interval-selector-scheduler-event-link': {
609						path: 'interval_selector_scheduler_event_link.js',
610						requires: ['aui-base', 'liferay-portlet-base'],
611					},
612					'liferay-calendar-list': {
613						path: 'calendar_list.js',
614						requires: [
615							'aui-template-deprecated',
616							'liferay-scheduler',
617						],
618					},
619					'liferay-calendar-message-util': {
620						path: 'message_util.js',
621						requires: ['liferay-util-window'],
622					},
623					'liferay-calendar-recurrence-converter': {
624						path: 'recurrence_converter.js',
625						requires: [],
626					},
627					'liferay-calendar-recurrence-dialog': {
628						path: 'recurrence.js',
629						requires: [
630							'aui-base',
631							'liferay-calendar-recurrence-util',
632						],
633					},
634					'liferay-calendar-recurrence-util': {
635						path: 'recurrence_util.js',
636						requires: ['aui-base', 'liferay-util-window'],
637					},
638					'liferay-calendar-reminders': {
639						path: 'calendar_reminders.js',
640						requires: ['aui-base'],
641					},
642					'liferay-calendar-remote-services': {
643						path: 'remote_services.js',
644						requires: [
645							'aui-base',
646							'aui-component',
647							'liferay-calendar-util',
648							'liferay-portlet-base',
649						],
650					},
651					'liferay-calendar-session-listener': {
652						path: 'session_listener.js',
653						requires: ['aui-base', 'liferay-scheduler'],
654					},
655					'liferay-calendar-simple-color-picker': {
656						path: 'simple_color_picker.js',
657						requires: ['aui-base', 'aui-template-deprecated'],
658					},
659					'liferay-calendar-simple-menu': {
660						path: 'simple_menu.js',
661						requires: [
662							'aui-base',
663							'aui-template-deprecated',
664							'event-outside',
665							'event-touch',
666							'widget-modality',
667							'widget-position',
668							'widget-position-align',
669							'widget-position-constrain',
670							'widget-stack',
671							'widget-stdmod',
672						],
673					},
674					'liferay-calendar-util': {
675						path: 'calendar_util.js',
676						requires: [
677							'aui-datatype',
678							'aui-io',
679							'aui-scheduler',
680							'aui-toolbar',
681							'autocomplete',
682							'autocomplete-highlighters',
683						],
684					},
685					'liferay-scheduler': {
686						path: 'scheduler.js',
687						requires: [
688							'async-queue',
689							'aui-datatype',
690							'aui-scheduler',
691							'dd-plugin',
692							'liferay-calendar-a11y',
693							'liferay-calendar-message-util',
694							'liferay-calendar-recurrence-converter',
695							'liferay-calendar-recurrence-util',
696							'liferay-calendar-util',
697							'liferay-scheduler-event-recorder',
698							'liferay-scheduler-models',
699							'promise',
700							'resize-plugin',
701						],
702					},
703					'liferay-scheduler-event-recorder': {
704						path: 'scheduler_event_recorder.js',
705						requires: [
706							'dd-plugin',
707							'liferay-calendar-util',
708							'resize-plugin',
709						],
710					},
711					'liferay-scheduler-models': {
712						path: 'scheduler_models.js',
713						requires: [
714							'aui-datatype',
715							'dd-plugin',
716							'liferay-calendar-util',
717						],
718					},
719				},
720				root: MODULE_PATH + '/js/legacy/',
721			},
722		},
723	});
724})();
725} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/layout-js-components-web';/**
726 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
727 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
728 */
729
730(function () {
731	AUI().applyConfig({
732		groups: {
733			layout: {
734				base: MODULE_PATH + '/js/legacy/',
735				combine: Liferay.AUI.getCombine(),
736				filter: Liferay.AUI.getFilterConfig(),
737				modules: {
738					'liferay-layout': {
739						path: 'layout.js',
740					},
741					'liferay-layout-column': {
742						path: 'layout_column.js',
743						requires: ['aui-sortable-layout', 'dd'],
744					},
745				},
746				root: MODULE_PATH + '/js/legacy/',
747			},
748		},
749	});
750})();
751} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/frontend-js-state-web';/**
752 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
753 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
754 */
755
756(function () {
757	AUI().applyConfig({
758		groups: {
759			state: {
760
761				// eslint-disable-next-line
762				mainModule: MODULE_MAIN,
763			},
764		},
765	});
766})();
767} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/frontend-js-react-web';/**
768 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
769 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
770 */
771
772(function () {
773	AUI().applyConfig({
774		groups: {
775			react: {
776
777				// eslint-disable-next-line
778				mainModule: MODULE_MAIN,
779			},
780		},
781	});
782})();
783} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/portal-search-web';/**
784 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
785 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
786 */
787
788(function () {
789	AUI().applyConfig({
790		groups: {
791			search: {
792				base: MODULE_PATH + '/js/',
793				combine: Liferay.AUI.getCombine(),
794				filter: Liferay.AUI.getFilterConfig(),
795				modules: {
796					'liferay-search-custom-range-facet': {
797						path: 'custom_range_facet.js',
798						requires: ['aui-form-validator'],
799					},
800				},
801				root: MODULE_PATH + '/js/',
802			},
803		},
804	});
805})();
806} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/document-library-web';/**
807 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
808 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
809 */
810
811(function () {
812	AUI().applyConfig({
813		groups: {
814			dl: {
815				base: MODULE_PATH + '/js/legacy/',
816				combine: Liferay.AUI.getCombine(),
817				filter: Liferay.AUI.getFilterConfig(),
818				modules: {
819					'document-library-upload-component': {
820						path: 'DocumentLibraryUpload.js',
821						requires: [
822							'aui-component',
823							'aui-data-set-deprecated',
824							'aui-overlay-manager-deprecated',
825							'aui-overlay-mask-deprecated',
826							'aui-parse-content',
827							'aui-progressbar',
828							'aui-template-deprecated',
829							'liferay-search-container',
830							'querystring-parse-simple',
831							'uploader',
832						],
833					},
834				},
835				root: MODULE_PATH + '/js/legacy/',
836			},
837		},
838	});
839})();
840} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/portal-workflow-kaleo-designer-web';/**
841 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
842 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
843 */
844
845(function () {
846	AUI().applyConfig({
847		groups: {
848			'kaleo-designer': {
849				base: MODULE_PATH + '/designer/js/legacy/',
850				combine: Liferay.AUI.getCombine(),
851				filter: Liferay.AUI.getFilterConfig(),
852				modules: {
853					'liferay-kaleo-designer-autocomplete-util': {
854						path: 'autocomplete_util.js',
855						requires: ['autocomplete', 'autocomplete-highlighters'],
856					},
857					'liferay-kaleo-designer-definition-diagram-controller': {
858						path: 'definition_diagram_controller.js',
859						requires: [
860							'liferay-kaleo-designer-field-normalizer',
861							'liferay-kaleo-designer-utils',
862						],
863					},
864					'liferay-kaleo-designer-dialogs': {
865						path: 'dialogs.js',
866						requires: ['liferay-util-window'],
867					},
868					'liferay-kaleo-designer-editors': {
869						path: 'editors.js',
870						requires: [
871							'aui-ace-editor',
872							'aui-ace-editor-mode-xml',
873							'aui-base',
874							'aui-datatype',
875							'aui-node',
876							'liferay-kaleo-designer-autocomplete-util',
877							'liferay-kaleo-designer-utils',
878						],
879					},
880					'liferay-kaleo-designer-field-normalizer': {
881						path: 'field_normalizer.js',
882						requires: ['liferay-kaleo-designer-remote-services'],
883					},
884					'liferay-kaleo-designer-nodes': {
885						path: 'nodes.js',
886						requires: [
887							'aui-datatable',
888							'aui-datatype',
889							'aui-diagram-builder',
890							'liferay-kaleo-designer-editors',
891							'liferay-kaleo-designer-utils',
892						],
893					},
894					'liferay-kaleo-designer-remote-services': {
895						path: 'remote_services.js',
896						requires: ['aui-io'],
897					},
898					'liferay-kaleo-designer-templates': {
899						path: 'templates.js',
900						requires: ['aui-tpl-snippets-deprecated'],
901					},
902					'liferay-kaleo-designer-utils': {
903						path: 'utils.js',
904						requires: [],
905					},
906					'liferay-kaleo-designer-xml-definition': {
907						path: 'xml_definition.js',
908						requires: [
909							'aui-base',
910							'aui-component',
911							'dataschema-xml',
912							'datatype-xml',
913						],
914					},
915					'liferay-kaleo-designer-xml-definition-serializer': {
916						path: 'xml_definition_serializer.js',
917						requires: ['escape', 'liferay-kaleo-designer-xml-util'],
918					},
919					'liferay-kaleo-designer-xml-util': {
920						path: 'xml_util.js',
921						requires: ['aui-base'],
922					},
923					'liferay-portlet-kaleo-designer': {
924						path: 'main.js',
925						requires: [
926							'aui-ace-editor',
927							'aui-ace-editor-mode-xml',
928							'aui-tpl-snippets-deprecated',
929							'dataschema-xml',
930							'datasource',
931							'datatype-xml',
932							'event-valuechange',
933							'io-form',
934							'liferay-kaleo-designer-autocomplete-util',
935							'liferay-kaleo-designer-editors',
936							'liferay-kaleo-designer-nodes',
937							'liferay-kaleo-designer-remote-services',
938							'liferay-kaleo-designer-utils',
939							'liferay-kaleo-designer-xml-util',
940							'liferay-util-window',
941						],
942					},
943				},
944				root: MODULE_PATH + '/designer/js/legacy/',
945			},
946		},
947	});
948})();
949} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-js-components-web';/**
950 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
951 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
952 */
953
954(function () {
955	AUI().applyConfig({
956		groups: {
957			components: {
958
959				// eslint-disable-next-line
960				mainModule: MODULE_MAIN,
961			},
962		},
963	});
964})();
965} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/frontend-editor-ckeditor-web';/**
966 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
967 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
968 */
969
970(function () {
971	AUI().applyConfig({
972		groups: {
973			editor: {
974				base: MODULE_PATH + '/js/legacy/',
975				combine: Liferay.AUI.getCombine(),
976				filter: Liferay.AUI.getFilterConfig(),
977				modules: {
978					'inline-editor-ckeditor': {
979						path: 'main.js',
980						requires: [
981							'array-invoke',
982							'liferay-inline-editor-base',
983							'node-event-simulate',
984							'overlay',
985							'yui-later',
986						],
987					},
988					'liferay-inline-editor-base': {
989						path: 'inline_editor_base.js',
990						requires: ['aui-base', 'aui-overlay-base-deprecated'],
991					},
992				},
993				root: MODULE_PATH + '/js/legacy/',
994			},
995		},
996	});
997})();
998} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/contacts-web';/**
999 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1000 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
1001 */
1002
1003(function () {
1004	AUI().applyConfig({
1005		groups: {
1006			contactscenter: {
1007				base: MODULE_PATH + '/js/legacy/',
1008				combine: Liferay.AUI.getCombine(),
1009				filter: Liferay.AUI.getFilterConfig(),
1010				modules: {
1011					'liferay-contacts-center': {
1012						path: 'main.js',
1013						requires: [
1014							'aui-io-plugin-deprecated',
1015							'aui-toolbar',
1016							'autocomplete-base',
1017							'datasource-io',
1018							'json-parse',
1019							'liferay-portlet-base',
1020							'liferay-util-window',
1021						],
1022					},
1023				},
1024				root: MODULE_PATH + '/js/legacy/',
1025			},
1026		},
1027	});
1028})();
1029} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/exportimport-web';/**
1030 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1031 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
1032 */
1033
1034(function () {
1035	AUI().applyConfig({
1036		groups: {
1037			exportimportweb: {
1038				base: MODULE_PATH + '/js/legacy/',
1039				combine: Liferay.AUI.getCombine(),
1040				filter: Liferay.AUI.getFilterConfig(),
1041				modules: {
1042					'liferay-export-import-export-import': {
1043						path: 'main.js',
1044						requires: [
1045							'aui-datatype',
1046							'aui-dialog-iframe-deprecated',
1047							'aui-modal',
1048							'aui-parse-content',
1049							'aui-toggler',
1050							'liferay-portlet-base',
1051							'liferay-util-window',
1052						],
1053					},
1054				},
1055				root: MODULE_PATH + '/js/legacy/',
1056			},
1057		},
1058	});
1059})();
1060} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/staging-processes-web';/**
1061 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1062 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
1063 */
1064
1065(function () {
1066	AUI().applyConfig({
1067		groups: {
1068			stagingprocessesweb: {
1069				base: MODULE_PATH + '/js/legacy/',
1070				combine: Liferay.AUI.getCombine(),
1071				filter: Liferay.AUI.getFilterConfig(),
1072				modules: {
1073					'liferay-staging-processes-export-import': {
1074						path: 'main.js',
1075						requires: [
1076							'aui-datatype',
1077							'aui-dialog-iframe-deprecated',
1078							'aui-modal',
1079							'aui-parse-content',
1080							'aui-toggler',
1081							'liferay-portlet-base',
1082							'liferay-util-window',
1083						],
1084					},
1085				},
1086				root: MODULE_PATH + '/js/legacy/',
1087			},
1088		},
1089	});
1090})();
1091} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/dynamic-data-mapping-web';/**
1092 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1093 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0
1093-2023-06
1094 */
1095
1096(function () {
1097	const LiferayAUI = Liferay.AUI;
1098
1099	AUI().applyConfig({
1100		groups: {
1101			ddm: {
1102				base: MODULE_PATH + '/js/legacy/',
1103				combine: Liferay.AUI.getCombine(),
1104				filter: LiferayAUI.getFilterConfig(),
1105				modules: {
1106					'liferay-ddm-form': {
1107						path: 'ddm_form.js',
1108						requires: [
1109							'aui-base',
1110							'aui-datatable',
1111							'aui-datatype',
1112							'aui-image-viewer',
1113							'aui-parse-content',
1114							'aui-set',
1115							'aui-sortable-list',
1116							'json',
1117							'liferay-form',
1118							'liferay-map-base',
1119							'liferay-translation-manager',
1120							'liferay-util-window',
1121						],
1122					},
1123					'liferay-portlet-dynamic-data-mapping': {
1124						condition: {
1125							trigger: 'liferay-document-library',
1126						},
1127						path: 'main.js',
1128						requires: [
1129							'arraysort',
1130							'aui-form-builder-deprecated',
1131							'aui-form-validator',
1132							'aui-map',
1133							'aui-text-unicode',
1134							'json',
1135							'liferay-menu',
1136							'liferay-translation-manager',
1137							'liferay-util-window',
1138							'text',
1139						],
1140					},
1141					'liferay-portlet-dynamic-data-mapping-custom-fields': {
1142						condition: {
1143							trigger: 'liferay-document-library',
1144						},
1145						path: 'custom_fields.js',
1146						requires: ['liferay-portlet-dynamic-data-mapping'],
1147					},
1148					'liferay-translation-manager': {
1149						path: 'translation_manager.js',
1150						requires: ['aui-base'],
1151					},
1152				},
1153				root: MODULE_PATH + '/js/legacy/',
1154			},
1155		},
1156	});
1157})();
1158} catch(error) {console.error(error);}try {var MODULE_MAIN='[email protected]/index';var MODULE_PATH='/o/site-navigation-menu-web';/**
1159 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1160 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
1161 */
1162
1163(function () {
1164	AUI().applyConfig({
1165		groups: {
1166			navigationmenuweb: {
1167				base: MODULE_PATH + '/js/legacy/',
1168				combine: Liferay.AUI.getCombine(),
1169				filter: Liferay.AUI.getFilterConfig(),
1170				modules: {
1171					'liferay-navigation-interaction': {
1172						path: 'navigation_interaction.js',
1173						plugins: {
1174							'liferay-navigation-interaction-touch': {
1175								condition: {
1176									name: 'liferay-navigation-interaction-touch',
1177									test(A) {
1178										return A.UA.touchEnabled;
1179									},
1180									trigger: 'liferay-navigation-interaction',
1181								},
1182							},
1183						},
1184						requires: [
1185							'aui-base',
1186							'aui-component',
1187							'event-mouseenter',
1188							'node-focusmanager',
1189							'plugin',
1190						],
1191					},
1192					'liferay-navigation-interaction-touch': {
1193						path: 'navigation_interaction_touch.js',
1194						requires: [
1195							'event-tap',
1196							'event-touch',
1197							'liferay-navigation-interaction',
1198						],
1199					},
1200				},
1201				root: MODULE_PATH + '/js/legacy/',
1202			},
1203		},
1204	});
1205})();
1206} catch(error) {console.error(error);}try {var MODULE_MAIN='@liferay/[email protected]/index';var MODULE_PATH='/o/image-uploader-web';/**
1207 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
1208 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
1209 */
1210
1211(function () {
1212	AUI().applyConfig({
1213		groups: {
1214			imageuploaderweb: {
1215				base: MODULE_PATH + '/js/legacy/',
1216				combine: Liferay.AUI.getCombine(),
1217				filter: Liferay.AUI.getFilterConfig(),
1218				modules: {
1219					'liferay-logo-editor': {
1220						path: 'logo_editor.js',
1221						requires: ['aui-image-cropper', 'liferay-portlet-base'],
1222					},
1223				},
1224				root: MODULE_PATH + '/js/legacy/',
1225			},
1226		},
1227	});
1228})();
1229} catch(error) {console.error(error);}</script>
1229
1230
1231
1232
1233
1234<script type="text/javascript" data-senna-track="temporary">
1235	// <![CDATA[
1236		
1237			
1238				
1239				
1240			
1241		
1242
1243		
1244	// ]]>
1245</script>
1245
1246
1247
1248
1249
1250
1251	
1252		
1253		
1254
1255			
1256
1257			
1258				
1258<script async src="https://www.googletagmanager.com/gtag/js?id=GFQF2C97ZC"></script>
1258
1259
1260				
1261			
1262		
1263		
1264	
1265
1266
1267
1268	
1269		
1270
1271			
1272
1273			
1274		
1275		
1276		
1277	
1278
1279
1280
1281	
1282		
1283		
1284		
1285
1286			
1287
1288			
1289		
1290	
1291
1292
1293
1294	
1295		
1296		
1297		
1298
1299			
1300
1301			
1302				<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 1302-1303
1302
1303<script async src="https://www.googletagmanager.com/gtag/js?id=
1303G-GFQF2C97ZC
vendor: 12 bytes, line 1303
1303"></script>
1304<script>
1305  
vendor: 134 bytes, lines 1305-1309
1305window.dataLayer = window.dataLayer || [];
1306  function gtag(){dataLayer.push(arguments);}
1307  gtag('js', new Date());
1308
1309  gtag('config', '
1309G-GFQF2C97ZC
vendor: 4 bytes, line 1309
1309');
1310</script>
1310
1311			
1312		
1313	
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324	
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344<link class="lfr-css-file" data-senna-track="temporary" href="/o/dialect-theme/css/main.(zDuvzazvJSk).css" id="liferayThemeCSS" rel="stylesheet" type="text/css" />
1345
1346
1347
1348
1349
1350
1351
1352
1353	<style data-senna-track="temporary" type="text/css">
1354
1355		
1356
1357			
1358
1359		
1360
1361			
1362
1363		
1364
1365			
1366
1367		
1368
1369			
1370
1371		
1372
1373			
1374
1375		
1376
1377			
1378
1379		
1380
1381			
1382
1383		
1384
1385			
1386
1387		
1388
1389			
1390
1391		
1392
1393	</style>
1394
1395
1396<style data-senna-track="temporary" type="text/css">
1397	:root {
1398		--custom-control-label-font-size: var(--text-paragraph-sm-font-size);
1399		--condensed-form-input-filled-border-color: var(--color-neutral-5);
1400		--tab-segment-item-icon-color-active: var(--tab-segment-item-color-active);
1401		--label-sm-icon-size: 0.75rem;
1402		--condensed-form-input-label-color: var(--color-neutral-5);
1403		--aspect-ratio-5: calc(9 / 16 * 100%);
1404		--aspect-ratio-6: calc(1 / 2 * 100%);
1405		--aspect-ratio-3: calc(2 / 3 * 100%);
1406		--tab-secondary-item-box-shadow-active: none;
1407		--tab-segment-item-icon-color-disabled: var(--tab-segment-item-color-disabled);
1408		--aspect-ratio-4: calc(5 / 8 * 100%);
1409		--card-aspect-ratio-item-offset: var(--spacer-4);
1410		--tab-segment-item-color-active: var(--color-action-primary-inverted);
1411		--color-state-error-darken-2: #6d0a0a;
1412		--aspect-ratio-1: 100%;
1413		--color-state-error-darken-1: #a40f0f;
1414		--aspect-ratio-2: calc(3 / 4 * 100%);
1415		--color-action-neutral-inverted: #fff;
1416		--display2-size: 5.5rem;
1417		--card-elevated-border-width: 0rem;
1418		--label-lg-font-size: var(--text-paragraph-sm-font-size);
1419		--tab-primary-item-box-shadow-active: none;
1420		--display3-weight: var(--font-weight-light);
1421		--label-lg-line-height: var(--text-paragraph-sm-line-height);
1422		--custom-control-label-color: var(--form-input-label-color);
1423		--table-spaced-row-border-color: var(--color-neutral-3);
1424		--tab-segment-item-background-color: transparent;
1425		--color-state-warning-darken-1: #a85100;
1426		--h3-font-size: 1.75rem;
1427		--color-state-warning-darken-2: #703600;
1428		--tab-tertiary-item-color-hover: var(--tab-tertiary-item-color);
1429		--form-input-label-font-weight: var(--font-weight-bolder);
1430		--blockquote-small-color: var(--color-neutral-6);
1431		--transition-collapse: 0.35s ease;
1432		--tab-secondary-item-font-size: var(--text-paragraph-font-size);
1433		--tab-primary-item-background-color-active: var(--tab-primary-item-background-color);
1434		--tab-tertiary-item-font-size: var(--text-paragraph-font-size);;
1435		--condensed-form-feedback-item-margin: 0;
1436		--card-autofit-col-lg-width: 24rem;
1437		--card-flat-background-color-hover: var(--color-neutral-1);
1438		--tab-tertiary-vertical-item-border-left-width: 0;
1439		--form-feedback-item-line-height: var(--text-paragraph-sm-line-height);
1440		--tab-primary-item-active-bar-border-radius: 0.0625rem;
1441		--color-action-primary-inverted-disabled: #ffffff80;
1442		--text-paragraph-sm-line-height: 20px;
1443		--btn-lg-line-height: 28px;
1444		--table-sm-header-cell-min-height: 2.5625rem;
1445		--btn-border-radius: var(--border-radius-sm);
1446		--tab-secondary-item-icon-color-hover: var(--tab-secondary-item-icon-color);
1447		--tab-segment-item-color-disabled: var(--color-action-neutral-disabled);
1448		--link-text-decoration: none;
1449		--table-spaced-row-border-radius: var(--border-radius);
1450		--spacer-10: 10rem;
1451		--tab-primary-item-icon-color-disabled: var(--color-action-neutral-disabled);
1452		--btn-lg-font-size: 1.125rem;
1453		--condensed-form-input-filled-label-color: var(--color-neutral-8);
1454		--tab-primary-item-icon-color-hover: var(--color-action-primary-hover);
1455		--h5-font-size: 1.125rem;
1456		--label-lg-font-weight: var(--font-weight-bolder);
1457		--tab-primary-item-border-radius: 0;
1458		--tab-segment-border-color: var(--color-neutral-3);
1459		--blockquote-font-size: 1.25rem;
1460		--table-sm-font-size: var(--text-paragraph-font-size);
1461		--form-input-line-height: var(--text-paragraph-line-height);
1462		--card-flat-border-color-hover: var(--color-action-primary-hover);
1463		--transition-fade: 0.15s linear;
1464		--table-border-width: 0.0625rem;
1465		--tab-tertiary-horizontal-item-border-left-width: 0;
1466		--tab-segment-item-border-color: transparent;
1467		--card-outlined-background-color: var(--color-neutral-0);
1468		--card-body-padding-top: var(--spacer-3);
1469		--form-input-background-color: var(--color-neutral-0);
1470		--tab-tertiary-item-font-weight-active: var(--font-weight-bolder);
1471		--btn-inline-item-spacer-x: var(--spacer-1);
1472		--form-input-placeholder-font-weight: var(--font-weight-normal);
1473		--tab-secondary-horizontal-item-border-left-width: 0.0625rem;
1474		--color-action-primary-inverted-hover: #ffffff19;
1475		--table-sm-font-weight: var(--font-weight-normal);
1476		--card-outlined-border-width: 0.0625rem;
1477		--form-input-placeholder-font-size: var(--text-paragraph-font-size);
1478		--link-visited-color: #5E38BA;
1479		--form-input-label-margin-top: 0.25rem;
1480		--card-elevated-background-color-active: var(--color-neutral-0);
1481		--tab-secondary-horizontal-item-border-top-width: 0.0625rem;
1482		--color-state-success: #4aab3b;
1483		--h4-font-weight: var(--h1-font-weight);
1484		--color-neutral-10: #1d1c21;
1485		--tab-tertiary-vertical-item-border-top-width: 0;
1486		--color-action-primary-disabled: #a696e4;
1487		--tab-primary-item-border-color: var(--color-neutral-3);
1488		--h6-font-weight: var(--h1-font-weight);
1489		--tab-segment-item-border-color-disabled: var(--tab-segment-item-border-color);
1490		--tab-segment-item-box-shadow-hover: none;
1491		--text-paragraph-font-size: 1rem;
1492		--elevation-tight-7: 0 7px 18px;
1493		--form-text-font-size: var(--text-paragraph-sm-font-size);
1494		--elevation-tight-8: 0 12px 28px;
1495		--elevation-tight-9: 0 13px 36px;
1496		--card-border-radius: var(--border-radius);
1497		--elevation-tight-3: 0 2px 6px;
1498		--tab-secondary-item-color: var(--color-neutral-8);
1499		--elevation-tight-4: 0 2px 7px;
1500		--elevation-tight-5: 0 3px 12px;
1501		--elevation-tight-6: 0 3.5px 14px;
1502		--elevation-tight-1: 0 1px 3px;
1503		--tab-tertiary-item-icon-color-hover: var(--tab-tertiary-item-icon-color);
1504		--h2-font-weight: var(--h1-font-weight);
1505		--elevation-tight-2: 0 1.25px 4px;
1506		--card-flat-box-shadow-hover: none;
1507		--card-flat-background-color-active: var(--color-neutral-1);
1508		--tab-secondary-horizontal-item-padding-x: var(--spacer-3);
1509		--tab-secondary-horizontal-item-padding-y: var(--spacer-3);
1510		--condensed-form-input-filled-label-font-size: var(--text-paragraph-sm-font-size);
1511		--tab-primary-item-font-weight-active: var(--tab-primary-item-font-weight);
1512		--text-paragraph-line-height: 24px;
1513		--table-sm-line-height: var(--text-paragraph-line-height);
1514		--label-lg-padding-x: var(--spacer-2);
1515		--label-lg-padding-y: 0.125rem;
1516		--table-sm-header-cell-padding-y: var(--spacer-2);
1517		--spacer-0: 0;
1518		--table-sm-header-cell-padding-x: var(--spacer-2);
1519		--tab-primary-item-icon-color: var(--color-neutral-7);
1520		--lead-font-size: 1.25rem;
1521		--card-outlined-box-shadow: none;
1522		--tab-secondary-horizontal-item-border-bottom-width: 0.0625rem;
1523		--spacer-9: 9rem;
1524		--tab-segment-item-icon-font-size: var(--text-paragraph-font-size);
1525		--tab-tertiary-horizontal-item-padding-y: var(--spacer-3);
1526		--tab-tertiary-horizontal-item-padding-x: var(--spacer-3);
1527		--table-sm-cell-padding-x: var(--spacer-2);
1528		--btn-lg-border-radius: var(--border-radius);
1529		--table-sm-cell-padding-y: var(--spacer-2);
1530		--tab-primary-item-color-active: var(--color-action-primary-default);
1531		--spacer-2: 0.5rem;
1532		--spacer-1: 0.25rem;
1533		--tab-tertiary-item-font-weight: var(--font-weight-normal);
1534		--color-action-secondary-active: #b95804;
1535		--spacer-4: 1.5rem;
1536		--spacer-3: 1rem;
1537		--spacer-6: 4.5rem;
1538		--spacer-5: 3rem;
1539		--form-input-border-color: var(--color-neutral-5);
1540		--spacer-8: 7.5rem;
1541		--spacer-7: 6rem;
1542		--font-family-sans-serif: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
1543		--card-outlined-border-color: var(--color-neutral-3);
1544		--tab-secondary-vertical-item-border-left-width: 0.0625rem;
1545		--tab-primary-item-icon-font-size: var(--text-paragraph-font-size);
1546		--card-flat-border-color: var(--color-neutral-1);
1547		--color-action-secondary-hover-lighten: #faf0e6;
1548		--h1-font-size: 2.3125rem;
1549		--text-link-sm-font-size: 0.875rem;
1550		--card-horizontal-aspect-ratio-default: var(--aspect-ratio-1);
1551		--custom-control-color-hover: var(--color-action-primary-active-lighten);
1552		--container-max-sm: 540px;
1553		--color-focus: var(--color-brand-primary-lighten-3);
1554		--table-lg-cell-padding-x: var(--spacer-4);
1555		--table-lg-cell-padding-y: var(--spacer-4);
1556		--card-outlined-background-color-hover: var(--color-neutral-0);
1557		--table-image-max-height: 100px;
1558		--tab-secondary-item-background-color-active: var(--color-neutral-0);
1559		--color-brand-primary: #5924eb;
1560		--tab-segment-item-font-size: var(--text-link-small-font-size);
1561		--label-lg-icon-size: 0.875rem;
1562		--card-flat-box-shadow: none;
1563		--form-input-border-width: 0.0625rem;
1564		--card-outlined-box-shadow-hover: none;
1565		--tab-tertiary-horizontal-item-border-bottom-width: 0.0625rem;
1566		--card-flat-box-shadow-active: none;
1567		--color-accent-6-lighten: #defff7;
1568		--text-link-md-line-height: 24px;
1569		--btn-padding-y: 0.75rem;
1570		--table-sm-cell-min-height: 2.5625rem;
1571		--btn-padding-x: 1rem;
1572		--tab-primary-horizontal-item-border-left-width: 0;
1573		--tab-segment-item-inline-item-spacer-x: var(--spacer-3);
1574		--form-text-color: var(--color-neutral-7);
1575		--tab-segment-item-inline-item-spacer-y: var(--spacer-3);
1576		--nav-link-vertical-active-indicator-thickness: 0.25rem;
1577		--tab-segment-item-color: var(--color-neutral-6);
1578		--text-link-lg-font-size: 1.5rem;
1579		--table-lg-line-height: var(--text-paragraph-line-height);
1580		--display3-size: 3.0625rem;
1581		--tab-segment-item-icon-color: var(--tab-segment-item-color);
1582		--tab-segment-item-font-weight: var(--font-weight-bold);
1583		--color-action-secondary-inverted-hover: #ffffff19;
1584		--display-line-height: 1.2;
1585		--color-state-info-darken-1: #234481;
1586		--elevation-fluffy-2: 0 6.25px 20px;
1587		--color-state-info-darken-2: #172d56;
1588		--elevation-fluffy-1: 0 5px 15px;
1589		--table-color: var(--color-neutral-10);
1590		--color-state-success-darken-2: #25561e;
1591		--color-state-info-lighten-1: #8ca4d1;
1592		--color-state-info-lighten-2: #eaeff7;
1593		--custom-control-label-font-weight: var(--form-input-label-font-weight);
1594		--color-state-success-darken-1: #38802c;
1595		--tab-tertiary-item-color-disabled: var(--color-action-neutral-disabled);
1596		--tab-secondary-item-font-weight: var(--font-weight-normal);
1597		--font-weight-semi-bold: 600;
1598		--condensed-form-input-label-padding-x: 0.25rem;
1599		--tab-primary-item-color-disabled: var(--color-action-neutral-disabled);
1600		--tab-secondary-item-active-bar-thickness: 0.1875rem;
1601		--blockquote-small-font-size: 80%;
1602		--color-state-success-lighten-1: #9bd193;
1603		--color-state-success-lighten-2: #edf7eb;
1604		--color-action-primary-inverted: #fff;
1605		--color-accent-2: #a7e204;
1606		--color-accent-1: #eb2453;
1607		--tab-tertiary-item-color-active: var(--tab-tertiary-item-color);
1608		--color-accent-4: #221874;
1609		--color-accent-3: #c70d95;
1610		--color-action-neutral-hover: #34465b;
1611		--text-link-lg-line-height: 28px;
1612		--tab-tertiary-item-icon-color-disabled: var(--color-action-neutral-disabled);
1613		--color-brand-secondary-darken-3: #926800;
1614		--color-accent-6: #1ce4b5;
1615		--color-state-warning-lighten-1: #eeae73;
1616		--color-brand-secondary-darken-4: #614600FF;
1617		--color-accent-5: #bc24eb;
1618		--color-state-warning-lighten-2: #fcf0e6;
1619		--color-brand-secondary-darken-1: #f3ae00;
1620		--display1-size: 6rem;
1621		--nav-link-vertical-margin: 1rem 0;
1622		--color-brand-secondary-darken-2: #c28b00;
1623		--table-box-shadow: none;
1624		--tab-primary-horizontal-item-border-right-width: 0;
1625		--tab-segment-item-background-color-active: var(--color-action-primary-active);
1626		--tab-segment-item-border-radius: var(--border-radius-pill);
1627		--table-title-link-text-decoration: var(--link-text-decoration);
1628		--form-input-color-disabled: var(--color-neutral-4);
1629		--tab-primary-vertical-item-border-bottom-width: 0;
1630		--color-action-neutral-inverted-hover: #ffffff19;
1631		--form-input-label-line-height: var(--text-paragraph-line-height);
1632		--tab-tertiary-item-icon-color: var(--color-neutral-7);
1633		--color-brand-secondary-darken-5: #312300;
1634		--box-shadow-lg: var(--elevation-fluffy-3) rgba(0, 0, 0, .175);
1635		--tab-secondary-vertical-item-padding-y: var(--spacer-3);
1636		--label-lg-border-radius: var(--border-radius-xs);
1637		--tab-primary-vertical-item-border-top-width: 0;
1638		--tab-secondary-vertical-item-padding-x: var(--spacer-3);
1639		--color-chart-9: #3a6ba1;
1640		--tab-secondary-item-background-color-hover: var(--tab-secondary-item-background-color);
1641		--form-feedback-item-font-weight: var(--font-weight-normal);
1642		--form-feedback-item-padding: 0.375rem 1rem;
1643		--tab-tertiary-item-active-bar-color-active: var(--color-action-primary-default);
1644		--color-chart-12: #00520a;
1645		--tab-primary-item-color-hover: var(--color-action-primary-hover);
1646		--color-chart-10: #4d006e;
1647		--label-sm-padding-y: 0.0625rem;
1648		--color-chart-11: #8a6a00;
1649		--h5-font-weight: var(--h1-font-weight);
1650		--label-sm-padding-x: var(--spacer-1);
1651		--table-title-link-color-hover: var(--link-hover-color);
1652		--tab-secondary-item-active-bar-color-active: var(--color-action-primary-default);
1653		--tab-tertiary-item-line-height: var(--text-paragraph-line-height);
1654		--condensed-form-text-font-weight: var(--font-weight-normal);
1655		--hr-border-width: 1px;
1656		--table-font-size: var(--text-paragraph-font-size);
1657		--table-row-background-color-hover: var(--color-action-primary-hover-lighten);
1658		--h1-font-weight: var(--font-weight-bold);
1659		--text-paragraph-xs-line-height: 20px;
1660		--form-input-font-weight: var(--font-weight-normal);
1661		--tab-secondary-item-icon-font-size: var(--text-paragraph-font-size);;
1662		--color-chart-0: #4d2ec9;
1663		--tab-secondary-item-font-weight-active: var(--font-weight-bold);
1664		--color-chart-2: #ad9ee9;
1665		--elevation-fluffy-4: 0 10px 35px;
1666		--color-chart-1: #fdcc4a;
1667		--elevation-fluffy-3: 0 10px 30px;
1668		--color-brand-secondary: #ffc124;
1669		--color-chart-4: #002c62;
1670		--elevation-fluffy-6: 0 17.5px 70px;
1671		--form-input-label-margin-left: 1rem;
1672		--color-chart-3: #fe8856;
1673		--elevation-fluffy-5: 0 15px 60px;
1674		--table-header-font-size: var(--table-font-size);
1675		--color-chart-6: #912600;
1676		--color-chart-5: #78cc88;
1677		--elevation-fluffy-7: 0 35px 90px;
1678		--color-chart-8: #41a0a6;
1679		--form-input-border-radius: var(--border-radius);
1680		--color-chart-7: #ff8585;
1681		--label-sm-border-radius: var(--border-radius-xs);
1682		--font-family-base: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
1683		--tab-tertiary-horizontal-item-active-bar-width: auto;
1684		--tab-tertiary-item-border-color: var(--color-neutral-3);
1685		--table-sm-header-line-height: var(--text-paragraph-line-height);
1686		--color-action-neutral-inverted-disabled: #ffffff80;
1687		--border-radius: 0.5rem;
1688		--table-row-background-color-alternate: var(--color-neutral-1);
1689		--table-header-line-height: var(--text-paragraph-line-height);
1690		--color-accent-1-lighten: #ffeaef;
1691		--label-sm-line-height: 1rem;
1692		--border-radius-circle: 50%;
1693		--tab-tertiary-vertical-item-border-bottom-width: 0.0625rem;
1694		--form-feedback-item-margin: 0.25rem 0 0;
1695		--table-line-height: var(--text-paragraph-line-height);
1696		--container-max-xl: 1248px;
1697		--tab-primary-vertical-item-border-left-width: 0.0625rem;
1698		--form-input-label-color: var(--color-neutral-8);
1699		--text-muted: var(--color-neutral-4);
1700		--tab-tertiary-item-active-bar-border-radius: 0.0625rem;
1701		--table-title-color: var(--color-neutral-9);
1702		--table-border-color: var(--color-neutral-3);
1703		--form-input-placeholder-color-focus: var(--color-neutral-4);
1704		--card-outlined-box-shadow-active: none;
1705		--tab-secondary-item-inline-item-spacer-y: var(--spacer-2);
1706		--tab-secondary-item-inline-item-spacer-x: var(--spacer-2);
1707		--tab-segment-background-color: var(--color-neutral-1);
1708		--card-body-padding-right: var(--spacer-4);
1709		--color-action-secondary-inverted-disabled: #ffffff80;
1710		--color-action-neutral-default: #2b3a4b;
1711		--h4-font-size: 1.5rem;
1712		--font-weight-bold: 700;
1713		--text-paragraph-xxs-font-size: 0.5625rem;
1714		--tab-tertiary-vertical-item-border-right-width: 0;
1715		--form-input-padding-x: 1rem;
1716		--form-input-padding-y: 0.6875rem;
1717		--color-action-primary-active: #3c249e;
1718		--condensed-form-input-label-font-weight: var(--font-weight-bolder);
1719		--table-header-vertical-align: middle;
1720		--card-autofit-col-md-width: 16rem;
1721		--tab-segment-item-color-hover: var(--color-action-primary-active);
1722		--card-elevated-background-color: var(--color-neutral-0);
1723		--color-action-neutral-active-lighten: #d5d8db;
1724		--color-brand-secondary-lighten-4: #ffeab6;
1725		--tab-segment-padding-y: var(--spacer-1);
1726		--color-brand-secondary-lighten-3: #ffe092;
1727		--tab-segment-padding-x: var(--spacer-1);
1728		--color-brand-secondary-lighten-6: #fffbf0;
1729		--display1-weight: var(--font-weight-light);
1730		--tab-secondary-item-active-bar-color-hover: var(--color-action-primary-default);
1731		--color-brand-secondary-lighten-5: #fff5db;
1732		--box-shadow-sm: var(--elevation-tight-1) rgba(0, 0, 0, .075);
1733		--color-brand-secondary-lighten-2: #ffd66d;
1734		--color-brand-secondary-lighten-1: #ffcb48;
1735		--color-accent-2-lighten: #f0ffc6;
1736		--form-text-font-weight: var(--font-weight-light);
1737		--tab-tertiary-item-background-color-active: var(--tab-tertiary-item-background-color);
1738		--tab-primary-item-background-color: transparent;
1739		--tab-secondary-horizontal-item-border-right-width: 0.0625rem;
1740		--font-weight-lighter: lighter;
1741		--tab-segment-item-background-color-disabled: var(--tab-segment-item-background-color);
1742		--tab-secondary-item-background-color: var(--color-neutral-1);
1743		--condensed-form-input-background-color: var(--color-neutral-2);
1744		--tab-primary-item-color: var(--color-neutral-7);
1745		--tab-primary-horizontal-item-active-bar-width: auto;
1746		--tab-tertiary-vertical-item-padding-x: var(--spacer-3);
1747		--tab-tertiary-vertical-item-padding-y: var(--spacer-3);
1748		--form-input-label-margin-bottom: 0.25rem;
1749		--color-neutral-0: #fff;
1750		--color-neutral-1: #f7f6f9;
1751		--color-neutral-2: #eeecf3;
1752		--hr-border-color: rgba(0, 0, 0, .1);
1753		--color-neutral-3: #dcd9e2;
1754		--hr-border-margin-y: 1rem;
1755		--color-neutral-4: #a7a3b2;
1756		--tab-secondary-item-background-color-disabled: var(--tab-secondary-item-background-color);
1757		--color-neutral-5: #898593;
1758		--color-neutral-6: #716c7f;
1759		--color-neutral-7: #5a5469;
1760		--color-neutral-8: #3f3851;
1761		--color-neutral-9: #332b4a;
1762		--tab-secondary-item-icon-color-active: var(--tab-secondary-item-icon-color);
1763		--tab-tertiary-item-border-color-active: transparent;
1764		--tab-segment-item-border-color-hover: var(--tab-segment-item-border-color);
1765		--text-paragraph-sm-font-size: 0.8125rem;
1766		--container-max-md: 720px;
1767		--card-elevated-box-shadow-active: var(--elevation-tight-3) rgba(89, 36, 235, 0.22);
1768		--border-radius-xxl: 1.5rem;
1769		--table-spaced-row-border-spacing: var(--spacer-2);
1770		--tab-segment-item-icon-color-hover: var(--tab-segment-item-color-hover);
1771		--table-lg-cell-min-height: 4.5625rem;
1772		--h6-font-size: 0.875rem;
1773		--h2-font-size: 2rem;
1774		--color-action-secondary-active-lighten: #f1decd;
1775		--custom-control-label-line-height: var(--text-paragraph-sm-line-height);
1776		--color-action-secondary-inverted: #fff;
1777		--form-input-placeholder-color-disabled: var(--color-neutral-3);
1778		--tab-segment-item-background-color-hover: var(--tab-segment-item-background-color);
1779		--link-visited-text-decoration: none;
1780		--border-radius-pill: 50rem;
1781		--card-outlined-border-color-active: var(--color-action-primary-active);
1782		--table-font-weight: var(--font-weight-normal);
1783		--tab-segment-item-line-height: var(--text-link-small-line-height);
1784		--display4-size: 2.6875rem;
1785		--border-radius-lg: 0.75rem;
1786		--tab-primary-horizontal-item-border-top-width: 0;
1787		--form-input-font-size: var(--text-paragraph-font-size);
1788		--tab-primary-vertical-item-border-right-width: 0;
1789		--custom-control-border-color: var(--color-action-primary-default);
1790		--label-item-spacer-x: 0.375rem;
1791		--btn-sm-inline-item-font-size: var(--btn-sm-font-size);
1792		--card-flat-border-width: 0.0625rem;
1793		--table-lg-header-line-height: var(--text-paragraph-line-height);
1794		--body-color: var(--color-neutral-9);
1795		--tab-segment-item-box-shadow-active: var(--elevation-tight-2) rgba(89, 36, 235, 0.25);
1796		--container-max-lg: 960px;
1797		--btn-sm-line-height: 20px;
1798		--table-border-radius: var(--border-radius);
1799		--box-shadow: var(--elevation-tight-3) rgba(0, 0, 0, .15);
1800		--tab-tertiary-horizontal-item-border-top-width: 0;
1801		--table-row-background-color: var(--color-neutral-0);
1802		--label-sm-font-weight: var(--font-weight-bolder);
1803		--btn-border-width: 0.0625rem;
1804		--btn-sm-padding-y: 0.5rem;
1805		--btn-sm-padding-x: 0.75rem;
1806		--table-header-cell-min-height: 3.5rem;
1807		--table-title-link-text-decoration-hover: var(--link-text-decoration-hover);
1808		--card-vertical-aspect-ratio-default: var(--aspect-ratio-3);
1809		--tab-secondary-item-color-disabled: var(--color-action-neutral-disabled);
1810		--table-spaced-row-box-shadow: none;
1811		--nav-link-horizontal-active-indicator-length: 100%;
1812		--text-paragraph-xs-font-size: 0.6875rem;
1813		--card-elevated-box-shadow-hover: var(--elevation-tight-7) rgba(89, 36, 235, 0.17);
1814		--tab-secondary-vertical-item-border-top-width: 0.0625rem;
1815		--color-brand-primary-lighten-5: #e3dbfc;
1816		--color-brand-primary-lighten-6: #fbfaff;
1817		--color-brand-primary-lighten-3: #ac92f5;
1818		--color-brand-primary-lighten-4: #c8b6f8;
1819		--tab-primary-vertical-item-active-bar-height: auto;
1820		--color-brand-primary-lighten-1: #7549ee;
1821		--color-brand-primary-lighten-2: #906df2;
1822		--btn-inline-item-font-size: var(--btn-font-size);
1823		--color-action-primary-hover-lighten: #f2f0fa;
1824		--tab-primary-item-icon-color-active: var(--color-action-primary-default);
1825		--form-feedback-item-font-size: var(--text-paragraph-sm-font-size);
1826		--tab-secondary-item-line-height: var(--text-paragraph-line-height);
1827		--form-input-label-reference-mark-color: var(--color-state-error);
1828		--card-elevated-background-color-hover: var(--color-neutral-0);
1829		--form-text-line-height: var(--text-paragraph-sm-line-height);
1830		--table-cell-min-height: 3.5rem;
1831		--table-cell-padding-x: var(--spacer-3);
1832		--card-elevated-border-color-active: transparent;
1833		--table-cell-padding-y: var(--spacer-3);
1834		--card-elevated-border-color: transparent;
1835		--color-state-warning: #e06c00;
1836		--tab-primary-item-font-size: var(--text-paragraph-font-size);
1837		--form-input-placeholder-color: var(--color-neutral-4);
1838		--table-header-font-weight: var(--font-weight-semi-bold);
1839		--color-action-secondary-hover: #d26404;
1840		--tab-primary-horizontal-item-padding-y: var(--spacer-3);
1841		--tab-primary-horizontal-item-padding-x: var(--spacer-3);
1842		--link-hover-text-decoration: underline;
1843		--font-weight-bolder: 800;
1844		--table-title-link-color: var(--link-color);
1845		--form-input-border-color-disabled: var(--color-neutral-2);
1846		--table-sm-header-font-weight: var(--font-weight-semi-bold);
1847		--table-header-background-color: var(--color-neutral-0);
1848		--tab-segment-item-border-width: 0;
1849		--tab-tertiary-item-color: var(--color-neutral-8);
1850		--color-accent-5-lighten: #f6daff;
1851		--color-action-secondary-disabled: #f6b882;
1852		--tab-primary-item-background-color-disabled: var(--tab-primary-item-background-color);
1853		--btn-sm-font-size: 0.875rem;
1854		--tab-tertiary-item-border-radius: 0;
1855		--color-action-primary-default: #5924eb;
1856		--table-title-line-height: var(--text-paragraph-line-height);
1857		--table-lg-font-weight: var(--font-weight-normal);
1858		--tab-secondary-item-border-color-active: var(--tab-secondary-item-border-color);
1859		--marked-text-background-color: var(--color-brand-secondary-lighten-5);
1860		--tab-tertiary-item-background-color: var(--color-neutral-0);
1861		--tab-secondary-item-border-color-hover: var(--tab-secondary-item-border-color);
1862		--form-text-margin: 0.25rem 1rem 0;
1863		--display4-weight: var(--font-weight-light);
1864		--card-flat-border-color-active: var(--color-action-primary-active);
1865		--nav-link-vertical-active-indicator-length: 100%;
1866		--form-input-color: var(--color-neutral-8);
1867		--body-bg: var(--color-neutral-0);
1868		--tab-segment-border-width: 0.0625rem;
1869		--display2-weight: var(--font-weight-light);
1870		--tab-tertiary-item-icon-color-active: var(--tab-tertiary-item-icon-color);
1871		--tab-secondary-item-active-bar-border-radius: 0.0625rem;
1872		--custom-control-label-padding-left: 0.75rem;
1873		--tab-secondary-item-border-color: var(--color-neutral-3);
1874		--card-elevated-box-shadow: var(--elevation-tight-3) rgba(89, 36, 235, 0.22);
1875		--form-input-placeholder-line-height: var(--text-paragraph-line-height);
1876		--tab-primary-item-line-height: var(--text-paragraph-line-height);
1877		--condensed-form-input-background-color-disabled: var(--color-neutral-1);
1878		--condensed-form-input-filled-label-font-weight: var(--font-weight-bolder);
1879		--tab-secondary-horizontal-item-active-bar-width: auto;
1880		--color-action-secondary-default: #ed7105;
1881		--table-lg-font-size: var(--text-paragraph-font-size);
1882		--label-sm-font-size: var(--text-paragraph-xs-font-size);
1883		--tab-primary-item-active-bar-color-hover: var(--color-brand-primary-darken-1);
1884		--text-small-caps-font-size: 0.875rem;
1885		--text-paragraph-lg-font-size: 1.25rem;
1886		--border-radius-sm: 0.375rem;
1887		--tab-tertiary-item-active-bar-color-hover: var(--color-action-primary-hover);
1888		--color-action-neutral-disabled: #959ca5;
1889		--condensed-form-input-label-font-size: var(--text-paragraph-font-size);
1890		--tab-tertiary-item-box-shadow-active: var(--elevation-fluffy-2) rgba(77, 133, 255, 0.1);
1891		--tab-tertiary-item-background-color-hover: var(--tab-tertiary-item-background-color);
1892		--color-accent-3-lighten: #ffeaf9;
1893		--custom-control-background-color: var(--color-neutral-0);
1894		--text-small-caps-line-height: 20px;
1895		--font-weight-normal: 500;
1896		--btn-sm-border-radius: var(--border-radius-xs);
1897		--table-lg-header-cell-padding-y: var(--spacer-4);
1898		--tab-secondary-item-icon-color: var(--color-neutral-7);
1899		--table-lg-header-cell-padding-x: var(--spacer-4);
1900		--table-spaced-row-border-width: 0;
1901		--tab-primary-item-active-bar-color-active: var(--color-brand-primary);
1902		--card-body-padding-left: var(--spacer-4);
1903		--color-action-primary-active-lighten: #ece9f5;
1904		--tab-secondary-item-icon-color-disabled: var(--color-action-neutral-disabled);
1905		--card-autofit-col-sm-width: 8rem;
1906		--tab-secondary-item-color-active: var(--color-neutral-10);
1907		--tab-secondary-vertical-item-border-right-width: 0.0625rem;
1908		--card-flat-background-color: var(--color-neutral-1);
1909		--table-lg-header-font-size: var(--text-paragraph-font-size);
1910		--tab-tertiary-item-inline-item-spacer-x: var(--spacer-2);
1911		--tab-tertiary-item-inline-item-spacer-y: var(--spacer-2);
1912		--table-header-cell-padding-x: var(--spacer-3);
1913		--table-header-cell-padding-y: var(--spacer-3);
1914		--card-outlined-border-color-hover: var(--color-action-primary-hover);
1915		--btn-font-weight: var(--font-weight-semi-bold);
1916		--form-input-label-font-size: var(--text-paragraph-font-size);
1917		--form-input-label-margin-right: 1rem;
1918		--tab-segment-item-padding-y: var(--spacer-3);
1919		--tab-segment-item-padding-x: 0.375rem;
1920		--tab-primary-vertical-item-padding-y: var(--spacer-3);
1921		--tab-primary-vertical-item-padding-x: var(--spacer-3);
1922		--table-row-background-color-active: var(--color-action-primary-active-lighten);
1923		--condensed-form-text-font-size: var(--text-paragraph-sm-font-size);
1924		--tab-primary-horizontal-item-border-bottom-width: 0.03125rem;
1925		--custom-control-border-color-disabled: var(--color-action-primary-disabled);
1926		--color-state-error-lighten-1: #eb7e7e;
1927		--nav-link-horizontal-active-indicator-thickness: 0.125rem;
1928		--color-state-error-lighten-2: #fbe8e8;
1929		--tab-tertiary-item-border-color-hover: var(--tab-tertiary-item-border-color);
1930		--color-brand-primary-darken-3: #210963;
1931		--color-accent-4-lighten: #e9e8f1;
1932		--color-brand-primary-darken-4: #110532;
1933		--condensed-form-input-label-margin-x: 0.75rem;
1934		--color-brand-primary-darken-5: #000;
1935		--tab-tertiary-horizontal-item-border-right-width: 0;
1936		--headings-line-height: 1.2;
1937		--color-action-neutral-active: #3d536b;
1938		--tab-primary-item-inline-item-spacer-x: var(--spacer-3);
1939		--tab-primary-item-inline-item-spacer-y: var(--spacer-3);
1940		--tab-tertiary-item-box-shadow-hover: none;
1941		--table-sm-header-font-size: var(--text-paragraph-font-size);
1942		--tab-secondary-item-color-hover: var(--color-neutral-10);
1943		--btn-line-height: 24px;
1944		--tab-segment-item-font-weight-active: var(--tab-segment-item-font-weight);
1945		--card-elevated-border-color-hover: transparent;
1946		--table-lg-header-font-weight: var(--font-weight-semi-bold);
1947		--link-color: var(--color-action-primary-default);
1948		--h3-font-weight: var(--h1-font-weight);
1949		--tab-secondary-item-box-shadow-hover: none;
1950		--color-brand-primary-darken-1: #4212c7;
1951		--color-brand-primary-darken-2: #320e95;
1952		--color-action-neutral-hover-lighten: #eaebed;
1953		--card-body-padding-bottom: var(--spacer-4);
1954		--card-outlined-background-color-active: var(--color-neutral-0);
1955		--btn-lg-inline-item-font-size: var(--btn-lg-font-size);
1956		--text-paragraph-lg-line-height: 24px;
1957		--table-title-font-weight: var(--font-weight-semi-bold);
1958		--tab-primary-item-background-color-hover: var(--tab-primary-item-background-color);
1959		--btn-font-size: 1rem;
1960		--tab-secondary-vertical-item-active-bar-height: auto;
1961		--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
1962		--tab-primary-item-font-weight: var(--font-weight-bold);
1963		--tab-primary-item-active-bar-thickness: 0.1875rem;
1964		--tab-primary-item-border-color-active: var(--tab-primary-item-border-color);
1965		--tab-segment-border-radius: var(--border-radius-pill);
1966		--color-action-primary-hover: #4429b3;
1967		--font-weight-light: 300;
1968		--link-hover-color: var(--color-action-primary-hover);
1969		--tab-tertiary-item-background-color-disabled: var(--tab-tertiary-item-background-color);
1970		--table-title-font-size: var(--text-small-caps-font-size);
1971		--text-link-md-font-size: 1rem;
1972		--transition-base: 0.2s ease-in-out;
1973		--nav-link-horizontal-margin: 0 1rem;
1974		--form-input-label-color-disabled: var(--color-neutral-8);
1975		--text-link-sm-line-height: 20px;
1976		--border-radius-xs: 0.25rem;
1977		--table-lg-header-cell-min-height: 4.5625rem;
1978		--table-header-color: var(--color-neutral-8);
1979		--form-feedback-item-border-radius: var(--border-radius);
1980		--text-small-caps-letter-spacing: 0.05em;
1981		--condensed-form-input-label-color-disabled: var(--color-neutral-4);
1982		--tab-secondary-item-border-radius: 0;
1983		--tab-tertiary-item-icon-font-size: var(--text-paragraph-font-size);
1984		--tab-primary-item-box-shadow-hover: none;
1985		--color-state-info: #2e5aac;
1986		--tab-tertiary-item-active-bar-thickness: 0.1875rem;
1987		--tab-secondary-vertical-item-border-bottom-width: 0.0625rem;
1988		--tab-segment-item-border-color-active: var(--tab-segment-item-border-color);
1989		--lead-font-weight: var(--font-weight-light);
1990		--table-row-color-hover: var(--table-row-color);
1991		--text-paragraph-xxs-line-height: 16px;
1992		--btn-lg-padding-y: 0.875rem;
1993		--btn-lg-padding-x: 1.125rem;
1994		--color-state-error: #da1414;
1995		--border-radius-xl: 1rem;
1996		--tab-primary-item-border-color-hover: var(--tab-primary-item-border-color);
1997		--font-size-base: var(--text-paragraph-font-size);
1998		--tab-tertiary-vertical-item-active-bar-height: auto;
1999	}
2000	:root {
2001		--font-family-base: "Lora; Nunito_Sans", sans-serif;
2002		--font-family-sans-serif: "Lora; Nunito_Sans", sans-serif;
2003		--text-paragraph-sm-font-size: 0.8125rem;
2004		--text-paragraph-xxs-font-size: 0.5625rem;
2005		--font-family-monospace: "Lora; Nunito_Sans", sans-serif;
2006		--color-brand-primary-darken-1: #4212c7;
2007		--color-neutral-0: #fff;
2008		--color-neutral-1: #FFFFFF;
2009		--color-action-primary-hover: #007BFF;
2010		--text-paragraph-xs-font-size: 0.6875rem;
2011		--color-brand-primary: #FFFFFF;
2012		--font-weight-normal: 400;
2013		--text-paragraph-xxs-line-height: 16px;
2014		--color-action-primary-default: #000000;
2015	}
2016</style>
2017<script data-senna-track="permanent" src="https://sampanews.sp.gov.br/combo?browserId=chrome&minifierType=js&languageId=pt_BR&t=1790649506512&/o/product-experience-manager-theme-contributor/js/liferay-usage-events.js" type = "text/javascript"></script>
2017
2018<link data-senna-track="temporary" href="/o/layout-common-styles/main.css?plid=24592&segmentsExperienceId=26704443&t=17609868211571789647354917" rel="stylesheet" type="text/css"><link data-senna-track="permanent" href="/o/frontend-js-aui-web/alloy_ui.css" rel="stylesheet"></link>
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031<script type="text/javascript">
2032Liferay.on(
2033	'ddmFieldBlur', function(event) {
2034		if (window.Analytics) {
2035			Analytics.send(
2036				'fieldBlurred',
2037				'Form',
2038				{
2039					fieldName: event.fieldName,
2040					focusDuration: event.focusDuration,
2041					formId: event.formId,
2042					formPageTitle: event.formPageTitle,
2043					page: event.page,
2044					title: event.title
2045				}
2046			);
2047		}
2048	}
2049);
2050
2051Liferay.on(
2052	'ddmFieldFocus', function(event) {
2053		if (window.Analytics) {
2054			Analytics.send(
2055				'fieldFocused',
2056				'Form',
2057				{
2058					fieldName: event.fieldName,
2059					formId: event.formId,
2060					formPageTitle: event.formPageTitle,
2061					page: event.page,
2062					title:event.title
2063				}
2064			);
2065		}
2066	}
2067);
2068
2069Liferay.on(
2070	'ddmFormPageShow', function(event) {
2071		if (window.Analytics) {
2072			Analytics.send(
2073				'pageViewed',
2074				'Form',
2075				{
2076					formId: event.formId,
2077					formPageTitle: event.formPageTitle,
2078					page: event.page,
2079					title: event.title
2080				}
2081			);
2082		}
2083	}
2084);
2085
2086Liferay.on(
2087	'ddmFormSubmit', function(event) {
2088		if (window.Analytics) {
2089			Analytics.send(
2090				'formSubmitted',
2091				'Form',
2092				{
2093					formId: event.formId,
2094					title: event.title
2095				}
2096			);
2097		}
2098	}
2099);
2100
2101Liferay.on(
2102	'ddmFormView', function(event) {
2103		if (window.Analytics) {
2104			Analytics.send(
2105				'formViewed',
2106				'Form',
2107				{
2108					formId: event.formId,
2109					title: event.title
2110				}
2111			);
2112		}
2113	}
2114);
2115
2116</script>
2116<script>
2117
2118</script>
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140<script type="text/javascript" data-senna-track="temporary">
2141	if (window.Analytics) {
2142		window._com_liferay_document_library_analytics_isViewFileEntry = false;
2143	}
2144</script>
2144
2145
2146<link data-senna-track="temporary" href="/o/psp-css/bundle.css" rel="stylesheet" type="text/css" /><link data-senna-track="temporary" href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=Quicksand:[email protected]&display=swap" rel="stylesheet" type="text/css" />
2147
2148</head>
2149
2150<body class="chrome controls-visible  yui3-skin-sam signed-out public-page site">
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197	<nav aria-label="Links rápidos" class="bg-dark cadmin quick-access-nav text-center text-white" id="iybi_quickAccessNav">
2198		
2199			
2200				<a class="d-block p-2 sr-only sr-only-focusable text-reset" href="#main-content">
2201		Pular para o Conteúdo principal
2202	</a>
2203			
2204			
2205		
2206	</nav>
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281<div class="d-flex flex-column min-vh-100">
2282
2283	<div class="d-flex flex-column flex-fill position-relative" id="wrapper">
2284
2285		<div class=" flex-fill" id="content">
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315	
2316	
2317
2318		
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337	
2338	
2339	
2340		<div id="master-layout-wrapper">
2341			
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371	
2372
2373	
2374
2375	<div class="lfr-layout-structure-item-header--copiar- lfr-layout-structure-item-a0077d3b-4e40-7aba-1b72-7fdf52fbfc31 " data-layout-structure-item-id="a0077d3b-4e40-7aba-1b72-7fdf52fbfc31">
2376 <div id="fragment-7a12304a-d591-0332-d595-ba74a4a601ce">
2377  <header class="header-container">
2378   <!-- Middle Bar -->
2379   <div class="middle-bar">
2380    <div class="middle-bar-content">
2381     <div class="left-section">
2382      <div class="menu-section fragment-zone">
2383       <div>
2384        <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-fd6a0a41-728e-17d3-aec4-56ee28e075dd " data-layout-structure-item-id="fd6a0a41-728e-17d3-aec4-56ee28e075dd">
2385         <div id="fragment-0c4075e0-8169-b0b3-5312-1b9f27754af4">
2386          <div class="component-image overflow-hidden">
2387           <a rel="noopener noreferrer" target="_blank" href="https://prefeitura.sp.gov.br/"><picture data-fileentryid="31096278"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/31096278/Thumbnail-300x300/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png?t=1760458447429"><source media="(max-width:903px) and (min-width:300px)" srcset="/o/adaptive-media/image/31096278/Preview-1000x0/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png?t=1760458447429"><img alt="logo da Prefeitura de São Paulo" class="w-100" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/24771855/25160874/logo_PrefSP_sem+fundo_horizontal_preto_monocrom%C3%A1tico+%281%29.png/1990a1bf-fcdc-7af9-75c5-1a0af315067d?version=1.0&amp;t=1760458447429" data-fileentryid="31096278"></picture></a>
2388          </div>
2389         </div>
2390        </div>
2391        <div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-8e89ba2d-e1d7-eaa2-c6f0-4290525fb4a2 " data-layout-structure-item-id="8e89ba2d-e1d7-eaa2-c6f0-4290525fb4a2">
2392         <div id="fragment-0684d589-87a4-dcfe-8c5a-ad5afc962fec">
2393          <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html">
2394           <!-- ========================================= -->
2395           <!-- COMPONENTE MENU HAMBÚRGUER - LIFERAY FRAGMENT -->
2396           <!-- ========================================= -->
2397           <!-- HAMBURGER MENU COMPONENT -->
2398           <div class="hamburger-menu">
2399            <!-- Botão Hambúrguer -->
2400            <button class="hamburger-btn" id="hamburgerBtn" aria-label="Abrir menu"> <span class="hamburger-line"></span> <span class="hamburger-line"></span> <span class="hamburger-line"></span> </button> <!-- Overlay -->
2401            <div class="menu-overlay" id="menuOverlay"></div>
2402            <!-- Container do Menu -->
2403            <div class="menu-container" id="menuContainer">
2404             <!-- Header do Menu -->
2405             <div class="menu-header">
2406              <h2 class="menu-title lfr-editable" data-lfr-editable-id="menu-title" data-lfr-editable-type="text" tabindex="0">Menu</h2>
2407              <button class="menu-close" id="menuClose" aria-label="Fechar menu">×</button>
2408             </div>
2409             <!-- Conteúdo do Menu - 4 Colunas -->
2410             <div class="menu-content">
2411              <!-- Coluna 1 - Menu (9 primeiros links em ordem alfabética) -->
2412              <div class="menu-column">
2413               <h3 class="column-title lfr-editable" data-lfr-editable-id="column1-title" data-lfr-editable-type="text" tabindex="0">Editorias</h3>
2414               <div class="column-links">
2415                <a href="/web/sampa-news" tabindex="0">Home</a> <a href="/web/sampa-news/artigos" tabindex="0">Artigos</a> <a href="/web/sampa-news/assistencia-social" tabindex="0">Assistência Social</a> <a href="/web/sampa-news/cidadania" tabindex="0">Cidadania</a> <a href="/web/sampa-news/cultura" tabindex="0">Cultura</a> <a href="/web/sampa-news/educacao" tabindex="0">Educação</a> <a href="/web/sampa-news/economia" tabindex="0">Economia</a> <a href="/web/sampa-news/esporte-e-lazer" tabindex="0">Esporte e Lazer</a> <a href="/web/sampa-news/habitacao" tabindex="0">Habitação</a> <a href="/web/sampa-news/inclusao" tabindex="0">Inclusão</a>
2416               </div>
2417              </div>
2418              <!-- Coluna 2 - Menu (9 últimos links em ordem alfabética) -->
2419              <div class="menu-column">
2420               <h3 class="column-title lfr-editable" data-lfr-editable-id="column2-title" data-lfr-editable-type="text" tabindex="0">Editorias</h3>
2421               <div class="column-links">
2422                <a href="/web/sampa-news/infraestrutura-obras" tabindex="0">Infraestrutura</a> <a href="/web/sampa-news/meio-ambiente" tabindex="0">Meio Ambiente</a> <a href="/web/sampa-news/mobilidade" tabindex="0">Mobilidade</a> <a href="/web/sampa-news/saude" tabindex="0">Saúde</a> <a href="/web/sampa-news/seguranca" tabindex="0">Segurança</a> <a href="/web/sampa-news/servicos" tabindex="0">Serviços</a> <a href="/web/sampa-news/tecnologia" tabindex="0">Tecnologia</a> <a href="/web/sampa-news/trabalhos" tabindex="0">Trabalho</a> <a href="/web/sampa-news/turismo-e-negocios" tabindex="0">Turismo e Negócios</a> <a href="/web/sampa-news/noticias" tabindex="0">Últimas Notícias</a>
2423               </div>
2424              </div>
2425              <!-- Coluna 3 - Links úteis -->
2426              <div class="menu-column">
2427               <h3 class="column-title lfr-editable" data-lfr-editable-id="column3-title" data-lfr-editable-type="text" tabindex="0">Links úteis</h3>
2428               <div class="column-links">
2429                <a href="http://transparencia.prefeitura.sp.gov.br/sistema-eletronico-de-informacao-ao-cidadao-e-sic/" tabindex="0">Acesso à informação</a> <a href="http://transparencia.prefeitura.sp.gov.br/" tabindex="0">Transparência São Paulo</a> <a href="https://legislacao.prefeitura.sp.gov.br/" tabindex="0">Legislação</a> <a href="https://www.prefeitura.sp.gov.br/cidade/secretarias/ouvidoria/fale_com_a_ouvidoria/index.php?p=227268" tabindex="0">Ouvidoria</a> <a href="https://sp156.prefeitura.sp.gov.br/portal " tabindex="0">SP 156</a> <a href="https://diariooficial.prefeitura.sp.gov.br/md_epubli_controlador.php?acao=inicio" tabindex="0">Diário Oficial</a>
2430               </div>
2431               <div class="column-menu-hamburguer-links">
2432                <!--   <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">Política de privacidade</a>  -->
2433                <!--  <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">Termos e Condições</a>  -->
2434                <!--  <a href="#" class="menu-hamburguer-link lfr-editable" tabindex="0">Política de Cookie</a>  -->
2435               </div>
2436              </div>
2437              <!-- Coluna 4 - Redes Sociais -->
2438              <div class="menu-column">
2439               <!-- Redes Sociais Section -->
2440               <div class="social-section-menu">
2441                <div class="social-icon-header">
2442                 <svg width="40" height="40" viewBox="0 0 24 24" fill="#000000">
2443                  <path d="M18,16.08C17.24,16.08 16.56,16.38 16.04,16.85L8.91,12.7C8.96,12.47 9,12.24 9,12C9,11.76 8.96,11.53 8.91,11.3L15.96,7.19C16.5,7.69 17.21,8 18,8A3,3 0 0,0 21,5A3,3 0 0,0 18,2A3,3 0 0,0 15,5C15,5.24 15.04,5.47 15.09,5.7L8.04,9.81C7.5,9.31 6.79,9 6,9A3,3 0 0,0 3,12A3,3 0 0,0 6,15C6.79,15 7.5,14.69 8.04,14.19L15.16,18.34C15.11,18.55 15.08,18.77 15.08,19C15.08,20.61 16.39,21.91 18,21.91C19.61,21.91 20.92,20.61 20.92,19C20.92,17.39 19.61,16.08 18,16.08Z"> </path>
2444                 </svg>
2445                </div>
2446                <h3 class="social-title lfr-editable" data-lfr-editable-id="social-title" data-lfr-editable-type="text" tabindex="0">Redes Sociais - PrefSP</h3>
2447                <p class="social-description lfr-editable" data-lfr-editable-id="social-desc" data-lfr-editable-type="text" tabindex="0">Você também pode acompanhar o Sampa News nas redes sociais para mais informações, bastidores e conteúdos exclusivos sobre a cidade.</p>
2448                <div class="social-icons-grid">
2449                 <a target="_blank" href="https://www.instagram.com/prefsp"> <picture data-fileentryid="25551374"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551374/Thumbnail-300x300/instagram.png?t=1749062970254"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254">
2449 <img src="/documents/24771855/25160874/instagram.png/cc38202f-c535-d7f7-584b-967c49655d34?version=1.0&amp;t=1749062970254" alt="Instagram" class="social-icon lfr-editable" data-lfr-editable-id="instagram-icon" data-lfr-editable-type="image" data-fileentryid="25551374" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.facebook.com/PrefSP"> <picture data-fileentryid="25551393"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551393/Thumbnail-300x300/facebook.png?t=1749062971316"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551393/Preview-1000x0/facebook.png?t=1749062971316"> <img src="/documents/24771855/25160874/facebook.png/fba28859-9a01-5ffe-814a-8db180c9f63a?version=1.0&amp;t=1749062971316" alt="Facebook" class="social-icon lfr-editable" data-lfr-editable-id="facebook-icon" data-lfr-editable-type="image" data-fileentryid="25551393" tabindex="0"> </picture> </a> <a target="_blank" href="https://twitter.com/prefsp"> <picture data-fileentryid="25551412"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551412/Thumbnail-300x300/x.png?t=1749062972685"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551412/Preview-1000x0/x.png?t=1749062972685"> <img src="/documents/24771855/25160874/x.png/b66803af-e75a-0d6f-72cc-179f82d448ef?version=1.0&amp;t=1749062972685" alt="Twitter" class="social-icon lfr-editable" data-lfr-editable-id="twitter-icon" data-lfr-editable-type="image" data-fileentryid="25551412" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"> <picture data-fileentryid="25551439"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551439/Thumbnail-300x300/youtube.png?t=1749062973818"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551439/Preview-1000x0/youtube.png?t=1749062973818"> <img src="/documents/24771855/25160874/youtube.png/15b4304e-2e21-559d-2dd2-dfe2a270a0f8?version=1.0&amp;t=1749062973818" alt="YouTube" class="social-icon lfr-editable" data-lfr-editable-id="youtube-icon" data-lfr-editable-type="image" data-fileentryid="25551439" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"> <picture data-fileentryid="25551459"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551459/Thumbnail-300x300/linkedin.png?t=1749062975256"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551459/Preview-1000x0/linkedin.png?t=1749062975256"> <img src="/documents/24771855/25160874/linkedin.png/a890e84a-9a91-45dd-2e62-abb26799ec64?version=1.0&amp;t=1749062975256" alt="LinkedIn" class="social-icon lfr-editable" data-lfr-editable-id="linkedin-icon" data-lfr-editable-type="image" data-fileentryid="25551459" tabindex="0"> </picture> </a> <a target="_blank" href="https://www.tiktok.com/@prefsp"> <picture data-fileentryid="25574861"> <source media="(max-width:300px)" srcset="/o/adaptive-media/image/25574861/Thumbnail-300x300/tiktok.png?t=1749071047834"> <source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25574861/Preview-1000x0/tiktok.png?t=1749071047834"> <img src="/documents/24771855/25160874/tiktok.png/b080cb15-99a9-e3d7-a170-4c1276aba40e?version=1.0&amp;t=1749071047834" alt="TikTok" class="social-icon lfr-editable" data-lfr-editable-id="tiktok-icon" data-lfr-editable-type="image" data-fileentryid="25574861" tabindex="0"> </picture> </a>
2450                </div>
2451               </div>
2452              </div>
2453             </div>
2454             <!-- Copyright menu-hamburguer -->
2455             <div class="menu-menu-hamburguer">
2456              <p class="copyright-text lfr-editable" data-lfr-editable-id="copyright-text" data-lfr-editable-type="text" tabindex="0">© COPYRIGHT 2023, Prefeitura Municipal de São Paulo Viaduto do Chá, 15 - Centro - CEP: 01002-020</p>
2457             </div>
2458            </div>
2459           </div>
2460           <!-- ========================================= -->
2461           <!-- CSS STYLES -->
2462           <!-- ========================================= -->
2463           <style>
2464  /* Reset para o componente */
2465  .hamburger-menu * {
2466    margin: 0;
2467    padding: 0;
2468    box-sizing: border-box;
2469  }
2470
2471  /* Container principal do componente */
2472  .hamburger-menu {
2473    position: relative;
2474    display: inline-block;
2475  }
2476
2477  /* Botão Hambúrguer */
2478  .hamburger-btn {
2479    background: transparent;
2480    border: none;
2481    cursor: pointer;
2482    padding: 8px;
2483    border-radius: 4px;
2484    transition: background-color 0.2s ease;
2485    display: flex;
2486    flex-direction: column;
2487    justify-content: center;
2488    align-items: center;
2489    width: 40px;
2490    height: 40px;
2491  }
2492
2493  .hamburger-btn:hover {
2494    background-color: rgba(0, 0, 0, 0.1);
2495  }
2496
2497  /* Linhas do hambúrguer */
2498  .hamburger-line {
2499    width: 24px;
2500    height: 3px;
2501    background-color: #495057;
2502    margin: 2px 0;
2503    transition: all 0.3s ease;
2504    border-radius: 2px;
2505  }
2506
2507  /* Animação do botão quando ativo */
2508  .hamburger-btn.active .hamburger-line:nth-child(1) {
2509    transform: rotate(45deg) translate(5px, 5px);
2510  }
2511
2512  .hamburger-btn.active .hamburger-line:nth-child(2) {
2513    opacity: 0;
2514  }
2515
2516  .hamburger-btn.active .hamburger-line:nth-child(3) {
2517    transform: rotate(-45deg) translate(7px, -6px);
2518  }
2519
2520  /* Overlay escuro */
2521  .menu-overlay {
2522    position: fixed;
2523    top: 0;
2524    left: 0;
2525    width: 100%;
2526    height: 100%;
2527    background-color: rgba(0, 0, 0, 0.5);
2528    z-index: 998;
2529    opacity: 0;
2530    visibility: hidden;
2531    transition: all 0.3s ease;
2532  }
2533
2534  .menu-overlay.active {
2535    opacity: 1;
2536    visibility: visible;
2537  }
2538
2539  /* Container do menu */
2540  .menu-container {
2541    position: fixed;
2542    top: 0;
2543    left: -100%;
2544    width: 100%;
2545    max-width: auto;
2546    height: 100vh;
2547    background-color: #ffffff;
2548    z-index: 999;
2549    transition: left 0.3s ease;
2550    overflow-y: auto;
2551    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.1);
2552    display: flex;
2553    flex-direction: column;
2554  }
2555
2556  .menu-container.active {
2557    left: 0;
2558  }
2559
2560  /* Header do menu */
2561  .menu-header {
2562    display: flex;
2563    justify-content: space-between;
2564    align-items: center;
2565    padding: 20px;
2566    border-bottom: 1px solid #e9ecef;
2567    background-color: #f8f9fa;
2568    flex-shrink: 0;
2569  }
2570
2571  .menu-title {
2572    font-size: 24px;
2573    font-weight: 700;
2574    color: #212529;
2575    margin: 0;
2576  }
2577
2578  .menu-close {
2579    background: transparent;
2580    border: none;
2581    font-size: 24px;
2582    cursor: pointer;
2583    padding: 8px;
2584    border-radius: 4px;
2585    color: #495057;
2586    transition: background-color 0.2s ease;
2587    width: 40px;
2588    height: 40px;
2589    display: flex;
2590    align-items: center;
2591    justify-content: center;
2592  }
2593
2594  .menu-close:hover {
2595    background-color: rgba(0, 0, 0, 0.1);
2596  }
2597
2598  /* Conteúdo do menu - 3 colunas */
2599  .menu-content {
2600    padding: 40px 30px;
2601    display: grid;
2602    grid-template-columns: 1fr 1fr 1fr 1fr;
2603    gap: 10px;
2604    flex-grow: 1;
2605  }
2606
2607  /* Coluna individual */
2608  .menu-column {
2609    display: flex;
2610    flex-direction: column;
2611  }
2612
2613  .column-title {
2614    font-size: 18px;
2615    font-weight: 600;
2616    color: #495057;
2617    margin-bottom: 25px;
2618    padding: 0;
2619    border: none;
2620  }
2621
2622  .column-links {
2623    display: flex;
2624    flex-direction: column;
2625    gap: 16px;
2626    margin-bottom: 30px;
2627  }
2628
2629  .menu-link {
2630    color: #212529;
2631    text-decoration: none;
2632    font-size: 16px;
2633    font-weight: 400;
2634    padding: 0;
2635    transition: color 0.2s ease;
2636    line-height: 1.5;
2637  }
2638
2639  .menu-link:hover {
2640    color: #007bff;
2641  }
2642
2643  /* Links do menu-hamburguer da coluna 2 */
2644  .column-menu-hamburguer-links {
2645    display: flex;
2646    flex-direction: column;
2647    gap: 12px;
2648    margin-top: auto;
2649    padding-top: 20px;
2650    border-top: 1px solid #e9ecef;
2651  }
2652
2653  .menu-hamburguer-link {
2654    color: #6c757d;
2655    text-decoration: none;
2656    font-size: 14px;
2657    font-weight: 400;
2658    transition: color 0.2s ease;
2659  }
2660
2661  .menu-hamburguer-link:hover {
2662    color: #007bff;
2663  }
2664
2665  /* Social Section */
2666  .social-section-menu {
2667    border-top: 1px solid #e9ecef;
2668    flex-wrap: wrap;
2669  }
2670
2671  .social-icon-header {
2672    margin-bottom: 15px;
2673  }
2674
2675  .social-title {
2676    font-size: 18px;
2677    font-weight: 700;
2678    color: #212529;
2679    margin-bottom: 15px;
2680  }
2681
2682  .social-description {
2683    color: #6c757d;
2684    font-size: 14px;
2685    line-height: 1.5;
2686    margin-bottom: 20px;
2687  }
2688
2689  .social-icons-grid {
2690    display: grid;
2691    grid-template-columns: repeat(6, 1fr);
2692    gap: 10px;
2693    width: 230px;
2694  }
2695
2696  .social-icon-menu {
2697    width: 40px;
2698    height: 40px;
2699    border-radius: 6px;
2700    transition: transform 0.2s ease;
2701    cursor: pointer;
2702  }
2703
2704  .social-icon-menu:hover {
2705    transform: scale(1.1);
2706  }
2707
2708  /* menu-hamburguer */
2709  .menu-menu-hamburguer {
2710    padding: 20px 30px;
2711    border-top: 1px solid #e9ecef;
2712    background-color: #f8f9fa;
2713    flex-shrink: 0;
2714  }
2715
2716  .copyright-text {
2717    color: #6c757d;
2718    font-size: 12px;
2719    text-align: center;
2720    line-height: 1.4;
2721  }
2722
2723  /* Responsivo - Tablet */
2724  @media (max-width: 768px) {
2725    .menu-container {
2726      max-width: 100%;
2727    }
2728
2729    .menu-content {
2730      grid-template-columns: 1fr;
2731      gap: 30px;
2732      padding: 30px 20px;
2733    }
2734
2735    .column-title {
2736      font-size: 16px;
2737      margin-bottom: 20px;
2738    }
2739
2740    .menu-link {
2741      font-size: 15px;
2742    }
2743
2744    .social-icons-grid {
2745      grid-template-columns: repeat(6, 1fr);
2746    }
2747
2748    .social-icon-menu {
2749      width: 35px;
2750      height: 35px;
2751    }
2752  }
2753
2754  /* Responsivo - Mobile */
2755  @media (max-width: 480px) {
2756    .menu-header {
2757      padding: 15px;
2758    }
2759
2760    .menu-title {
2761      font-size: 20px;
2762    }
2763
2764    .menu-content {
2765      padding: 20px 15px;
2766      gap: 25px;
2767    }
2768
2769    .menu-menu-hamburguer {
2770      padding: 15px;
2771    }
2772  }
2773
2774  /* Classes editáveis do Liferay */
2775  .lfr-editable {
2776    position: relative;
2777  }
2778
2779  /* Prevenção de scroll da página em desktop */
2780  @media (min-width: 769px) {
2781    body.menu-open {
2782      overflow: hidden;
2783    }
2784  }
2785</style>
2786           <!-- ========================================= -->
2787           <!-- JAVASCRIPT -->
2788           <!-- ========================================= -->
2789           
2789<script type="">
2790    document.addEventListener('DOMContentLoaded', function() {
2791        const hamburgerBtn = document.getElementById('hamburgerBtn');
2792        const menuOverlay = document.getElementById('menuOverlay');
2793        const menuContainer = document.getElementById('menuContainer');
2794        const menuClose = document.getElementById('menuClose');
2795
2796        // Função para detectar se é mobile
2797        function isMobile() {
2798            return window.innerWidth <= 768;
2799        }
2800
2801        // Função para abrir o menu
2802        function openMenu() {
2803            hamburgerBtn.classList.add('active');
2804            menuOverlay.classList.add('active');
2805            menuContainer.classList.add('active');
2806            
2807            // Só bloqueia scroll em desktop
2808            if (!isMobile()) {
2809                document.body.classList.add('menu-open');
2810            }
2811        }
2812
2813        // Função para fechar o menu
2814        function closeMenu() {
2815            hamburgerBtn.classList.remove('active');
2816            menuOverlay.classList.remove('active');
2817            menuContainer.classList.remove('active');
2818            
2819            // Remove o bloqueio de scroll
2820            document.body.classList.remove('menu-open');
2821        }
2822
2823        // Event listeners
2824        hamburgerBtn.addEventListener('click', openMenu);
2825        menuClose.addEventListener('click', closeMenu);
2826        menuOverlay.addEventListener('click', closeMenu);
2827
2828        // Fechar com ESC
2829        document.addEventListener('keydown', function(e) {
2830            if (e.key === 'Escape' && menuContainer.classList.contains('active')) {
2831                closeMenu();
2832            }
2833        });
2834
2835        // Fechar menu ao clicar em links (opcional)
2836        const menuLinks = document.querySelectorAll('.column-links a');
2837        menuLinks.forEach(link => {
2838            link.addEventListener('click', function() {
2839                // Remove o preventDefault para que os links funcionem
2840                closeMenu();
2841            });
2842        });
2843
2844        // Ajustar comportamento ao redimensionar tela
2845        window.addEventListener('resize', function() {
2846            if (menuContainer.classList.contains('active')) {
2847                // Se mudou para mobile durante menu aberto, remove bloqueio
2848                if (isMobile()) {
2849                    document.body.classList.remove('menu-open');
2850                } else {
2851                    document.body.classList.add('menu-open');
2852                }
2853            }
2854        });
2855    });
2856</script>
2856
2857          </div>
2858         </div>
2859         <style>.component-html img {
2860	max-width: 100%;
2861}</style>
2862        </div>
2863       </div>
2864      </div>
2865     </div>
2866     <div class="logo-section">
2867      <a href="/home"><picture data-fileentryid="27968568"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/27968568/Thumbnail-300x300/sampanews_LOGO_assinatura_500.png?t=1754334121435"><source media="(max-width:500px) and (min-width:300px)" srcset="/o/adaptive-media/image/27968568/Preview-1000x0/sampanews_LOGO_assinatura_500.png?t=1754334121435"><img class="logo lfr-editable" src="https://sampanews.sp.gov.br/documents/24771855/25160874/sampanews_LOGO_assinatura_500.png/b7e76827-8234-c797-6d5f-8da2b5389dde?version=1.0&amp;t=1754334121435" alt="Placeholder" data-lfr-editable-id="img1" data-lfr-editable-type="image" data-fileentryid="27968568" loading="lazy"></picture></a>
2868     </div>
2869     <div class="accessibility-section fragment-zone">
2870      <div class="search-section fragment-zone">
2871       <div>
2872        <div class="lfr-layout-structure-item-com-liferay-portal-search-web-search-bar-portlet-searchbarportlet lfr-layout-structure-item-b3f12b56-5f3e-97b4-d1e5-8a3a536e6844 " data-layout-structure-item-id="b3f12b56-5f3e-97b4-d1e5-8a3a536e6844">
2873         <div id="fragment-65a9961a-a4f5-aa0f-3a94-6761841df430">
2874          <div class="portlet-boundary portlet-boundary_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_  portlet-static portlet-static-end portlet-borderless portlet-search-bar " id="p_p_id_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_">
2875           <span id="p_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck"></span>
2876           <section class="portlet" id="portlet_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck">
2877            <div class="portlet-content">
2878             <div class=" portlet-content-container">
2879              <div class="portlet-body">
2880               <form action="https://sampanews.sp.gov.br/busca" id="dkrk___fm" method="get" name="dkrk___fm">
2881                <div id="_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_reactSearchBar">
2882                 <div id="vrse"></div>
2883                 
2883<script type="module">
2884import {ReactSearchBar as componentModule} from '/o/portal-search-web/__liferay__/search-bar.js';
2885import {render} from '/o/portal-template-react-renderer-impl/__liferay__/index.js';
2886{
2887render(componentModule, {"isSearchExperiencesSupported":true,"letUserChooseScope":false,"componentId":null,"selectedEverythingSearchScope":false,"retainFacetSelections":false,"scopeParameterStringEverything":"everything","locale":"{\"country\": \"BR\", \"displayCountry\": \"Brazil\", \"displayLanguage\": \"Portuguese\", \"displayName\": \"Portuguese (Brazil)\", \"displayScript\": \"\", \"displayVariant\": \"\", \"extensionKeys\":[],\"ISO3Country\": \"BRA\", \"ISO3Language\": \"por\", \"language\": \"pt\", \"script\": \"\", \"unicodeLocaleAttributes\":[], \"unicodeLocaleKeys\":[], \"variant\": \"\"}","suggestionsDisplayThreshold":2,"isDXP":true,"scopeParameterStringCurrentSite":"this-site","suggestionsContributorConfiguration":"[{\"contributorName\":\"basic\",\"displayGroupName\":\"suggestions\",\"size\":5}]","destinationFriendlyURL":"\/busca","emptySearchEnabled":false,"scopeParameterName":"scope","keywordsParameterName":"q","portletId":"com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck","paginationStartParameterName":"","searchURL":"https:\/\/sampanews.sp.gov.br\/busca","suggestionsURL":"\/o\/search\/v1.0\/suggestions","initialKeywords":"","portletNamespace":"_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_","inputPlaceholder":"Procurar..."}, 'vrse');
2888}
2889
2890</script>
2890
2891                </div>
2892               </form>
2893               
2893<script type="module">
2894import {SearchBar as ComponentModule} from '/o/portal-search-web/__liferay__/search-bar.js';
2895{
2896Liferay.component('__UNNAMED_COMPONENT__bf800fba-8f61-7fdc-5bec-3ebe49b54111', new ComponentModule({"formId":"dkrk___fm","namespace":"_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_","spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg","initialKeywords":"","retainFacetSelections":false}), { destroyOnNavigate: true, portletId: 'com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck'});
2897}
2898
2899</script>
2899
2900              </div>
2901             </div>
2902            </div>
2903           </section>
2904          </div>
2905         </div>
2906        </div>
2907       </div>
2908      </div>
2909      <div>
2910       <div class="lfr-layout-structure-item-0e85eb31-d701-204c-ec30-661d7dbe5e39 lfr-layout-structure-item-container " data-layout-structure-item-id="0e85eb31-d701-204c-ec30-661d7dbe5e39">
2911        <div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-363328d3-a3c7-59c5-cedd-66e227555fd0 " data-layout-structure-item-id="363328d3-a3c7-59c5-cedd-66e227555fd0">
2912         <div id="fragment-a0862b31-1bc5-e049-ed7e-07279806ceaa">
2913          <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html">
2914           <div class="recursos-acessibilidade">
2915            <span class="label-acessibilidade">Recursos de acessibilidade:</span>
2916            <div class="acessibilidade-toolbar-icones">
2917             <button onclick="ajustarFonte('diminuir')" aria-label="Diminuir fonte" title="Diminuir fonte">A−</button> <button onclick="ajustarFonte('aumentar')" aria-label="Aumentar fonte" title="Aumentar fonte">A+</button> <button onclick="alternarContraste()" aria-label="Alto contraste" title="Ativar alto contraste"> ◐ </button>
2918            </div>
2919           </div>
2920           <style>
2921  .recursos-acessibilidade {
2922    display: flex;
2923    align-items: center;
2924    gap: 0.75rem;
2925    font-family: Arial, sans-serif;
2926    font-size: 14px;
2927    color: #333;
2928    z-index: 9999;
2929  }
2930  .label-acessibilidade {
2931    font-weight: normal;
2932    color: #666;
2933    white-space: nowrap;
2934  }
2935  
2936  /* Media query para ocultar toda a toolbar de acessibilidade no mobile */
2937  @media (max-width: 768px) {
2938    .recursos-acessibilidade {
2939      display: none;
2940    }
2941  }
2942  
2943  .acessibilidade-toolbar-icones {
2944    display: flex;
2945    align-items: center;
2946    gap: 0.5rem;
2947  }
2948  .acessibilidade-toolbar-icones button {
2949    background: none;
2950    border: none;
2951    font-size: 16px;
2952    font-weight: bold;
2953    cursor: pointer;
2954    padding: 0.25rem 0.5rem;
2955    color: #333;
2956    transition: all 0.2s ease;
2957    border-radius: 3px;
2958    min-width: 24px;
2959    text-align: center;
2960  }
2961  .acessibilidade-toolbar-icones button:hover {
2962    background-color: #f0f0f0;
2963    transform: scale(1.05);
2964  }
2965  .acessibilidade-toolbar-icones button:focus {
2966    outline: 2px solid #007acc;
2967    outline-offset: 2px;
2968  }
2969  .modo-contraste,
2970  .modo-contraste * {
2971    background-color: #000 !important;
2972    color: #fff !important;
2973    border-color: #fff !important;
2974    fill: #fff !important;
2975  }
2976  .modo-contraste .acessibilidade-toolbar-icones button:hover {
2977    background-color: #333 !important;
2978  }
2979  main,
2980  .portlet,
2981  .portlet-body,
2982  .content,
2983  .web-content,
2984  .content-wrapper,
2985  section,
2986  article,
2987  .news-body,
2988  .summary-body,
2989  .psp-section-title__text,
2990  p,
2991  span,
2992  li,
2993  td,
2994  th,
2995  div,
2996  h1,
2997  h2,
2998  h3,
2999  h4,
3000  h5,
3001  h6,
3002  a {
3003    transition: font-size 0.2s ease;
3004  }
3005</style>
3006           
3006<script type="text/javascript">
3007  let tamanhoFonteAtualPx = 16;
3008  const tamanhoMinPx = 12;
3009  const tamanhoMaxPx = 22;
3010  function ajustarFonte(acao) {
3011    if (acao === 'aumentar' && tamanhoFonteAtualPx < tamanhoMaxPx) {
3012      tamanhoFonteAtualPx += 1;
3013    } else if (acao === 'diminuir' && tamanhoFonteAtualPx > tamanhoMinPx) {
3014      tamanhoFonteAtualPx -= 1;
3015    }
3016    const seletor = `
3017      main, .portlet, .portlet-body, .content, .web-content,
3018      .content-wrapper, section, article, .news-body, .summary-body,
3019      .psp-section-title__text, p, span, li, td, th, div,
3020      h1, h2, h3, h4, h5, h6, a
3021    `;
3022    document.querySelectorAll(seletor).forEach(el => {
3023      el.style.setProperty('font-size', `${tamanhoFonteAtualPx}px`, 'important');
3024    });
3025  }
3026  function alternarContraste() {
3027    document.documentElement.classList.toggle('modo-contraste');
3028  }
3029</script>
3029
3030          </div>
3031         </div>
3032        </div>
3033        <div class="lfr-layout-structure-item-header---social-icons lfr-layout-structure-item-0b499e44-f1cd-7525-659d-0d0af4879305 " data-layout-structure-item-id="0b499e44-f1cd-7525-659d-0d0af4879305">
3034         <div id="fragment-2f458a19-9d42-3920-92a9-8895bd5b1f11">
3035          <div class="header-social-icons">
3036           <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.instagram.com/prefsp"><picture data-fileentryid="25551374"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551374/Thumbnail-300x300/instagram.png?t=1749062970254"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551374/Preview-1000x0/instagram.png?t=1749062970254"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/instagram.png/cc38202f-c535-d7f7-584b-967c49655d34?version=1.0&amp;t=1749062970254" alt="Instagram" data-lfr-editable-id="Instagram" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551374" data-desktop-configuration="Preview-1000x0" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.facebook.com/PrefSP"><picture data-fileentryid="25551393"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551393/Thumbnail-300x300/facebook.png?t=1749062971316"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551393/Preview-1000x0/facebook.png?t=1749062971316"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/facebook.png/fba28859-9a01-5ffe-814a-8db180c9f63a?version=1.0&amp;t=1749062971316" alt="Facebook" data-lfr-editable-id="Facebook" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551393" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://twitter.com/prefsp"><picture data-fileentryid="25551412"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551412/Thumbnail-300x300/x.png?t=1749062972685"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551412/Preview-1000x0/x.png?t=1749062972685"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/x.png/b66803af-e75a-0d6f-72cc-179f82d448ef?version=1.0&amp;t=1749062972685" alt="X (Twitter)" data-lfr-editable-id="X (Twitter)" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551412" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"><picture data-fileentryid="25551439"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551439/Thumbnail-300x300/youtube.png?t=1749062973818"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551439/Preview-1000x0/youtube.png?t=1749062973818"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/youtube.png/15b4304e-2e21-559d-2dd2-dfe2a270a0f8?version=1.0&amp;t=1749062973818" alt="YouTube" data-lfr-editable-id="YouTube" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551439" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"><picture data-fileentryid="25551459"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25551459/Thumbnail-300x300/linkedin.png?t=1749062975256"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25551459/Preview-1000x0/linkedin.png?t=1749062975256"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/linkedin.png/a890e84a-9a91-45dd-2e62-abb26799ec64?version=1.0&amp;t=1749062975256" alt="LinkedIn" data-lfr-editable-id="LinkedIn" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25551459" loading="lazy"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.tiktok.com/@prefsp"><picture data-fileentryid="25574861"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/25574861/Thumbnail-300x300/tiktok.png?t=1749071047834"><source media="(max-width:1000px) and (min-width:300px)" srcset="/o/adaptive-media/image/25574861/Preview-1000x0/tiktok.png?t=1749071047834">
3036<img src="https://sampanews.sp.gov.br/documents/24771855/25160874/tiktok.png/b080cb15-99a9-e3d7-a170-4c1276aba40e?version=1.0&amp;t=1749071047834" alt="TikTok" data-lfr-editable-id="TikTok" data-lfr-editable-type="image" tabindex="0" data-fileentryid="25574861" loading="lazy"></picture></a>
3037          </div>
3038         </div>
3039         <style>.header-social-icons {
3040  display: flex;
3041  gap: 5px;
3042  align-items: center;
3043}
3044
3045.header-social-icons a {
3046  display: inline-block;
3047}
3048
3049.header-social-icons a img {
3050  width: 24px !important; /* Tamanho menor para o header */
3051  height: 24px !important;
3052  transition: transform 0.2s;
3053}
3054
3055.header-social-icons a img:hover {
3056  transform: scale(1.1);
3057}</style>
3058        </div>
3059       </div>
3060      </div>
3061     </div>
3062    </div>
3063   </div>
3064  </header>
3065 </div>
3066 <style>* {
3067  margin: 0;
3068  padding: 0;
3069  box-sizing: border-box;
3070}
3071
3072/* Header Container */
3073.header-container {
3074  background-color: #cacac0;
3075  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
3076}
3077
3078/* Middle Bar */
3079.middle-bar {
3080  padding: 16px 0;
3081}
3082
3083.middle-bar-content {
3084  max-width: 1200px;
3085  margin: 0 auto;
3086  display: grid;
3087  grid-template-columns: 1fr auto 2fr;
3088  align-items: center;
3089  padding: 0 20px;
3090  gap: 20px;
3091}
3092
3093.left-section {
3094  display: flex;
3095  align-items: center;
3096  gap: 15px;
3097  justify-self: start;
3098}
3099
3100.menu-section {
3101  display: flex;
3102  align-items: center;
3103}
3104
3105.menu-drop {
3106  background-color: #f8f9fa;
3107  border: 2px dashed #dee2e6;
3108  padding: 12px 20px;
3109  border-radius: 4px;
3110  color: #6c757d;
3111  font-size: 14px;
3112  font-weight: 500;
3113}
3114
3115.search-section {
3116  display: flex;
3117  align-items: center;
3118}
3119
3120.search-drop {
3121  background-color: #f8f9fa;
3122  border: 2px dashed #dee2e6;
3123  padding: 12px 40px;
3124  border-radius: 4px;
3125  color: #6c757d;
3126  font-size: 14px;
3127  font-weight: 500;
3128}
3129
3130.logo-section {
3131  justify-content: center;
3132  align-items: center;
3133  justify-self: center;
3134}
3135
3136.logo-section>a:hover {
3137  opacity: 0.8;
3138  text-decoration: none;
3139}
3140
3141.logo-link {
3142  display: block;
3143  text-decoration: none;
3144}
3145
3146.logo {
3147  height: 70px;
3148  max-width: 180px;
3149  object-fit: contain;
3150  display: block;
3151  padding: 4px 0;
3152}
3153
3154.accessibility-section {
3155  display: flex;
3156  justify-content: flex-end;
3157  align-items: center;
3158  justify-self: end;
3159}
3160
3161.accessibility-drop {
3162  background-color: #f8f9fa;
3163  border: 2px dashed #dee2e6;
3164  padding: 12px 24px;
3165  border-radius: 4px;
3166  color: #6c757d;
3167  font-size: 14px;
3168  font-weight: 500;
3169}
3170
3171/* Liferay Fragment Mapping Classes */
3172.lfr-editable {
3173  position: relative;
3174}
3175
3176/* Fragment zones for Liferay */
3177.fragment-zone {
3178  min-height: 20px;
3179  position: relative;
3180}
3181
3182/* Responsive adjustments for larger screens */
3183@media (min-width: 1400px) {
3184  .middle-bar-content {
3185    max-width: 1200px;
3186  }
3187}
3188
3189/* Mobile Layout - 2 linhas: primeira com 2 colunas, segunda com 1 coluna */
3190@media (max-width: 768px) {
3191
3192  /* Mobile middle bar adjustments */
3193  .middle-bar-content {
3194    max-width: none;
3195    display: grid;
3196    grid-template-columns: 1fr 1fr;
3197    grid-template-rows: auto auto;
3198    align-items: center;
3199    padding: 0 15px;
3200    gap: 12px;
3201  }
3202
3203  /* Left section (menu) - primeira linha, primeira coluna */
3204  .left-section {
3205    grid-column: 1;
3206    grid-row: 1;
3207    display: flex;
3208    align-items: center;
3209    gap: 0;
3210    justify-self: start;
3211  }
3212
3213  .left-section .search-section {
3214    display: none;
3215  }
3216
3217  .menu-section {
3218    display: flex;
3219    align-items: center;
3220  }
3221
3222  .menu-drop {
3223    background-color: transparent;
3224    border: none;
3225    padding: 8px;
3226    color: #495057;
3227    font-size: 18px;
3228    font-weight: 500;
3229  }
3230
3231  /* Logo section - primeira linha, segunda coluna */
3232  .logo-section {
3233    grid-column: 2;
3234    grid-row: 1;
3235    justify-content: center;
3236    align-items: center;
3237    justify-self: end;
3238  }
3239
3240  .logo {
3241    height: 66px;
3242    max-width: 150px;
3243    object-fit: contain;
3244    display: block;
3245  }
3246
3247  /* Accessibility section - segunda linha, ocupa as 2 colunas */
3248  .accessibility-section {
3249    grid-column: 1 / -1;
3250    grid-row: 2;
3251    display: flex;
3252    justify-content: center;
3253    align-items: center;
3254    justify-self: stretch;
3255  }
3256
3257  .accessibility-drop {
3258    background-color: transparent;
3259    border: none;
3260    padding: 8px;
3261    color: #495057;
3262    font-size: 18px;
3263    font-weight: 500;
3264  }
3265
3266  /* Mobile header styling */
3267  .middle-bar {
3268    padding: 16px 0;
3269    border-bottom: 1px solid #e9ecef;
3270    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
3271  }
3272}</style>
3273</div>
3274<div class="lfr-layout-structure-item-basic-component-html lfr-layout-structure-item-f13bb041-df34-f68b-052b-f1808d0d9d33 " data-layout-structure-item-id="f13bb041-df34-f68b-052b-f1808d0d9d33">
3275 <div id="fragment-a1bbd0ff-306a-2194-721f-0a9edfb5894b">
3276  <div class="component-html" data-lfr-editable-id="element-html" data-lfr-editable-type="html">
3277   <style>/* Alvo principal da Search Bar */
3278.portlet-search-bar {
3279  border: 1px solid #111;
3280  background-color: #cacac1 !important;
3281  max-width: 600px;
3282  display: flex;
3283  align-items: center;
3284}
3285  
3286  .input-group-inset-item{
3287    background-color: #cacac1 !important;
3288  }
3289
3290/* Ícone da lupa */
3291.portlet-search-bar .input-group-item .lexicon-icon {
3292  color: #111;
3293  font-size: 1.2rem;
3294  margin-right: 8px;
3295}
3296
3297/* Input de texto */
3298.portlet-search-bar input[type="text"],
3299.portlet-search-bar input[type="search"] {
3300  border: none;
3301  background: transparent;
3302  font-size: 1rem;
3303  flex-grow: 1;
3304  padding: 8px;
3305  outline: none;
3306}
3307
3308/* Botão Buscar */
3309.portlet-search-bar button[type="submit"],
3310.portlet-search-bar .btn[type="submit"] {
3311  color: #fff;
3312  border: none;
3313  padding: 8px 16px;
3314  font-weight: bold;
3315  cursor: pointer;
3316}
3317
3318/* Hover do botão */
3319.portlet-search-bar button[type="submit"]:hover {
3320  background-color: #cacac1;
3321}
3322  
3323  .input-group .input-group-inset-item-after {
3324  background-color: #eaeae5;
3325    border-top-width: 0px;
3326    border-bottom-width: 0px;
3327    border-right-width: 0px;
3328  }
3329  
3330  /* Banner */
3331  .psp-banner{
3332    border-radius: 0;
3333  }
3334  
3335  /*Iframe*/
3336  .embed-responsive{
3337  width: 100% !important;
3338  }
3339  
3340  /*Legenda*/
3341  figcaption {
3342  border-left: 2px solid #000;
3343    padding: 4px;
3344    margin-top: 8px;
3345  }
3346</style>
3347  </div>
3348 </div>
3349</div>
3350<div class="layout-content portlet-layout" id="main-content" role="main">
3351 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-30256ceb-62f8-1868-cbc9-a93977e96f7d " data-layout-structure-item-id="30256ceb-62f8-1868-cbc9-a93977e96f7d">
3352  <div id="fragment-f2748840-44be-2f70-58e2-5833a2d16759">
3353   <div class="py-3"></div>
3354  </div>
3355 </div>
3356 <div class="lfr-layout-structure-item-314a276c-af59-5b0c-4b83-f3dc8c4ac5ad lfr-layout-structure-item-container " data-layout-structure-item-id="314a276c-af59-5b0c-4b83-f3dc8c4ac5ad">
3357  <div class="lfr-layout-structure-item-fb0f4804-09c8-362a-4554-224fb838758e lfr-layout-structure-item-container  container-fluid container-fluid-max-xl" data-layout-structure-item-id="fb0f4804-09c8-362a-4554-224fb838758e">
3358   <div class="lfr-layout-structure-item-2b196b45-a941-1fe2-f879-a1eb3a1dd39a lfr-layout-structure-item-collection" data-layout-structure-item-id="2b196b45-a941-1fe2-f879-a1eb3a1dd39a" data-analytics-targetable-collection="com.liferay.layout.list.retriever.ClassedModelListObjectReference@3852308" id="analytics-targetable-collection-2b196b45-a941-1fe2-f879-a1eb3a1dd39a">
3359    <div class="container-fluid overflow-hidden px-0">
3360     <div class="row align-items-start">
3361      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
3362       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
3363        <div id="fragment-a14902f2-e5e4-2d70-48d7-423555c23223">
3364         <!-- News Collection Fragment - Vertical Layout -->
3365         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
3366         <div class="sp-citcr-section">
3367          <!-- News Collection Container -->
3368          <div class="sp-citcr-list">
3369           <!-- Individual News Item Template -->
3370           <div class="sp-citcr-item">
3371            <!-- News Image (Top) -->
3372            <div class="sp-citcr-image">
3373             <!-- Category Badge (Overlaid on Image) -->
3374             <div class="sp-citcr-category">
3375              <div class="sp-citcr-category-text">
3376               <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Saúde</a>
3377              </div>
3378             </div>
3379             <div class="sp-citcr-img">
3380              <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus"> <img src="https://sampanews.sp.gov.br/documents/34276/0/20261006A_Insuguracao_UPA_UBS_Residencial_+das_Orquideas_SB-03.jpg/37d2dc61-98fa-e870-1d94-718cc4ccdd9b?version=1.0&amp;t=1791308556442" alt="News Image"> </a>
3381             </div>
3382            </div>
3383            <!-- News Content (Bottom) -->
3384            <div class="sp-citcr-content">
3385             <div class="sp-citcr-publish-date">
3386              <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">06/10/26 13:51</a>
3387             </div>
3388             <!-- News Title -->
3389             <div class="sp-citcr-title">
3390              <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Prefeitura inaugura 35ª UPA e 485ª UBS da cidade com entrega de novas unidades em Perus</a>
3391             </div>
3392             <!-- News Headline/Description -->
3393             <div class="sp-citcr-headline">
3394              <a href="https://sampanews.sp.gov.br/w/prefeitura-inaugura-35%C2%AA-upa-e-485%C2%AA-ubs-da-cidade-com-entrega-de-novas-unidades-em-perus">Complexo na periferia da Zona Norte recebeu mais de R$ 14,2 milhões e reúne 326 profissionais; unidades oferecem urgência 24 horas e acompanhamento de saúde</a>
3395             </div>
3396            </div>
3397           </div>
3398          </div>
3399         </div>
3400        </div>
3401        <style>/* Reset link styles */
3402.sp-citcr-section a,
3403.sp-citcr-section a:link,
3404.sp-citcr-section a:visited,
3405.sp-citcr-section a:hover,
3406.sp-citcr-section a:active,
3407.sp-citcr-section a:focus {
3408  color: inherit;
3409  outline: none;
3410  border: none;
3411  background: none;
3412  cursor: inherit;
3413}
3414
3415/* Ensure link reset applies to all nested elements */
3416.sp-citcr-section a * {
3417  color: inherit;
3418  text-decoration: none;
3419}
3420
3421.sp-citcr-text-summary {
3422  color: #666;
3423  margin: 12px 0 0 0;
3424  padding: 0;
3425  text-decoration: none;
3426}
3427
3428.sp-citcr-text-summary::before {
3429  display: none;
3430}
3431
3432.sp-citcr-text-summary a {
3433  color: inherit;
3434  text-decoration: none;
3435}
3436
3437/* Estilos para listas dentro do resumo */
3438.sp-citcr-text-summary ul {
3439  list-style: none;
3440  padding-left: 0;
3441  margin: 8px 0;
3442}
3443
3444.sp-citcr-text-summary li {
3445  position: relative;
3446  padding-left: 20px;
3447  margin-bottom: 4px;
3448  font-size: 16px;
3449}
3450
3451.sp-citcr-text-summary li::before {
3452  content: "➜";
3453  position: absolute;
3454  left: 0;
3455  color: #007bff;
3456  font-weight: bold;
3457}
3458
3459.sp-citcr-section {
3460  padding: 0;
3461  background: #fff;
3462}
3463
3464.sp-citcr-list {
3465  display: flex;
3466  flex-direction: column;
3467  gap: 0;
3468  max-width: 100%;
3469  margin: 0;
3470}
3471
3472.sp-citcr-item {
3473  display: flex;
3474  flex-direction: column;
3475  overflow: hidden;
3476  transition: transform 0.3s ease;
3477  cursor: pointer;
3478  min-height: auto;
3479  background: #fff;
3480}
3481
3482/* News Image (Top) */
3483.sp-citcr-image {
3484  position: relative;
3485  width: 100%;
3486  overflow: hidden;
3487  background: #f8f9fa;
3488}
3489
3490.sp-citcr-img { 
3491  border-bottom: 6px solid #007bff;
3492  aspect-ratio: 100 / 62.5;
3493}
3494
3495.sp-citcr-img,
3496.sp-citcr-img img {
3497  width: 100%;
3498  height: 100%;
3499  object-fit: cover;
3500  transition: transform 0.3s ease;
3501}
3502
3503/* News Content (Bottom) */
3504.sp-citcr-content {
3505  flex: 1;
3506  padding: 15px 0px;
3507  display: flex;
3508  flex-direction: column;
3509  justify-content: flex-start;
3510  position: relative;
3511  background: #fff;
3512}
3513
3514/* Category Badge (Overlaid on Image - Top Left) */
3515.sp-citcr-category {
3516  position: absolute;
3517  top: 4px;
3518  left: 4px;
3519  z-index: 10;
3520}
3521
3522.sp-citcr-category-text {
3523  background: #007bff;
3524  color: #ffffff;
3525  padding: 5px 5px;
3526  font-size: 12px;
3527  display: inline-block;
3528}
3529
3530.sp-citcr-title {
3531  color: #1a1a1a;
3532  margin: 0 0 8px 0;
3533  display: -webkit-box;
3534  -webkit-line-clamp: 2;
3535  overflow: hidden;
3536  font-weight: bold;
3537  font-size: 18px;
3538}
3539
3540.sp-citcr-headline {
3541  color: #555;
3542  margin: 0 0 8px 0;
3543  display: -webkit-box;
3544  -webkit-line-clamp: 3;
3545  -webkit-box-orient: vertical;
3546  overflow: hidden;
3547  flex-grow: 0;
3548}
3549
3550.sp-citcr-publish-date {
3551  color: #555;
3552  font-size: .8rem;
3553  display: -webkit-box;
3554  -webkit-line-clamp: 3;
3555  -webkit-box-orient: vertical;
3556  overflow: hidden;
3557  flex-grow: 0;
3558}
3559
3560/* Responsive Design */
3561@media (max-width: 768px) {
3562
3563  .sp-citcr-list {
3564    gap: 0;
3565  }
3566
3567
3568  .sp-citcr-category {
3569    top: 5px;
3570    left: 5px;
3571  }
3572}
3573
3574@media (max-width: 480px) {
3575  .sp-citcr-image {
3576    height: 180px;
3577  }
3578
3579  .sp-citcr-category {
3580    top: 5px;
3581    left: 5px;
3582  }
3583}
3584
3585/* Animation for items appearing */
3586.sp-citcr-item {
3587  opacity: 0;
3588  animation: fadeInUpVertical 0.6s ease forwards;
3589}
3590
3591.sp-citcr-item:nth-child(1) {
3592  animation-delay: 0.1s;
3593}
3594.sp-citcr-item:nth-child(2) {
3595  animation-delay: 0.2s;
3596}
3597.sp-citcr-item:nth-child(3) {
3598  animation-delay: 0.3s;
3599}
3600.sp-citcr-item:nth-child(4) {
3601  animation-delay: 0.4s;
3602}
3603
3604@keyframes fadeInUpVertical {
3605  from {
3606    opacity: 0;
3607    transform: translateY(30px);
3608  }
3609  to {
3610    opacity: 1;
3611    transform: translateY(0);
3612  }
3613}
3614
3615/* Print styles */
3616@media print {
3617  .sp-citcr-item:hover {
3618    transform: none;
3619  }
3620
3621  .sp-citcr-category-text {
3622    background: #000000 !important;
3623    color: #ffffff !important;
3624  }
3625}</style>
3626        
3626<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-a14902f2-e5e4-2d70-48d7-423555c23223'); const fragmentElementId = 'fragment-a14902f2-e5e4-2d70-48d7-423555c23223'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
3627    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
3628    function formatDate(date) {
3629        const day = String(date.getDate()).padStart(2, '0');
3630        const month = String(date.getMonth() + 1).padStart(2, '0');
3631        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
3632        const hours = String(date.getHours()).padStart(2, '0');
3633        const minutes = String(date.getMinutes()).padStart(2, '0');
3634        
3635        return `${day}/${month}/${year} ${hours}:${minutes}`;
3636    }
3637    
3638    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
3639    function formatDateOnly(date) {
3640        const day = String(date.getDate()).padStart(2, '0');
3641        const month = String(date.getMonth() + 1).padStart(2, '0');
3642        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
3643        
3644        return `${day}/${month}/${year}`;
3645    }
3646    
3647    // Função para fazer parse de diferentes formatos de data
3648    function parseDate(dateString) {
3649        if (!dateString || dateString.trim() === '') return null;
3650        
3651        dateString = dateString.trim();
3652        
3653        try {
3654            // Se for timestamp em segundos
3655            if (/^\d{10}$/.test(dateString)) {
3656                return new Date(parseInt(dateString) * 1000);
3657            }
3658            
3659            // Se for timestamp em milissegundos
3660            if (/^\d{13}$/.test(dateString)) {
3661                return new Date(parseInt(dateString));
3662            }
3663            
3664            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
3665            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
3666                const parts = dateString.split(/[\/\s:]/);
3667                const day = parseInt(parts[0]);
3668                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
3669                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
3670                const hour = parts[3] ? parseInt(parts[3]) : 0;
3671                const minute = parts[4] ? parseInt(parts[4]) : 0;
3672                const second = parts[5] ? parseInt(parts[5]) : 0;
3673                
3674                return new Date(year, month, day, hour, minute, second);
3675            }
3676            
3677            // Para formato ISO (yyyy-MM-dd)
3678            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
3679                const parts = dateString.split(/[-T\s:]/);
3680                const year = parseInt(parts[0]);
3681                const month = parseInt(parts[1]) - 1;
3682                const day = parseInt(parts[2]);
3683                const hour = parts[3] ? parseInt(parts[3]) : 0;
3684                const minute = parts[4] ? parseInt(parts[4]) : 0;
3685                const second = parts[5] ? parseInt(parts[5]) : 0;
3686                
3687                return new Date(year, month, day, hour, minute, second);
3688            }
3689            
3690            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
3691            if (dateString.includes('T') || dateString.includes('-')) {
3692                let parsedDate = new Date(dateString);
3693                if (!isNaN(parsedDate.getTime())) {
3694                    return parsedDate;
3695                }
3696            }
3697            
3698        } catch (e) {
3699            console.warn('Erro ao fazer parse da data:', dateString, e);
3700        }
3701        
3702        return null;
3703    }
3704    
3705    // Função principal para reduzir 3 horas das datas mapeadas
3706    function reduceDatesBy3Hours() {
3707        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
3708        
3709        dateElements.forEach(function(element) {
3710            const currentText = element.textContent.trim();
3711            
3712            // Ignora se for texto padrão ou estiver vazio
3713            if (currentText === 'Data de Publicação' || currentText === '') {
3714                return;
3715            }
3716            
3717            // Verifica se já foi processado
3718            if (element.getAttribute('data-hours-reduced') === 'true') {
3719                return;
3720            }
3721            
3722            // Tenta fazer parse da data mapeada
3723            const parsedDate = parseDate(currentText);
3724            
3725            if (parsedDate && !isNaN(parsedDate.getTime())) {
3726                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
3727                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
3728                
3729                // Atualiza o elemento com a data reduzida
3730                element.textContent = formatDate(reducedDate);
3731                
3732                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
3733                // element.textContent = formatDateOnly(reducedDate);
3734                
3735                // Marca como processado para evitar reprocessamento
3736                element.setAttribute('data-hours-reduced', 'true');
3737            } else {
3738                console.warn('Não foi possível fazer parse da data:', currentText);
3739            }
3740        });
3741    }
3742    
3743    // Aguardar carregamento e processar datas
3744    setTimeout(function() {
3745        reduceDatesBy3Hours();
3746    }, 500);
3747    
3748    // Observer para detectar mudanças no DOM
3749    const observer = new MutationObserver(function(mutations) {
3750        mutations.forEach(function(mutation) {
3751            if (mutation.type === 'childList') {
3752                mutation.addedNodes.forEach(function(node) {
3753                    if (node.nodeType === Node.ELEMENT_NODE) {
3754                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
3755                        if (dateElements.length > 0) {
3756                            setTimeout(reduceDatesBy3Hours, 100);
3757                        }
3758                    }
3759                });
3760            }
3761        });
3762    });
3763    
3764    // Observa mudanças no container principal
3765    const container = document.querySelector('.sp-citcr-section');
3766    if (container) {
3767        observer.observe(container, {
3768            childList: true,
3769            subtree: true
3770        });
3771    }
3772    
3773    // Funcionalidade de clique nos itens de notícia
3774    const newsItems = document.querySelectorAll('.sp-citcr-item');
3775
3776    newsItems.forEach(function(item) {
3777        item.addEventListener('click', function() {
3778            console.log('News item clicked');
3779        });
3780
3781        item.setAttribute('tabindex', '0');
3782        item.setAttribute('role', 'article');
3783
3784        item.addEventListener('keydown', function(e) {
3785            if (e.key === 'Enter' || e.key === ' ') {
3786                e.preventDefault();
3787                item.click();
3788            }
3789        });
3790    });
3791    
3792    // Função global para reprocessar datas manualmente
3793    window.reduceDatesBy3Hours = function() {
3794        // Remove marcadores de processamento para permitir reprocessamento
3795        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
3796        dateElements.forEach(function(element) {
3797            element.removeAttribute('data-hours-reduced');
3798        });
3799        reduceDatesBy3Hours();
3800    };
3801});;</script>
3801
3802       </div>
3803       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
3804        <div id="fragment-a03d47b0-6f14-a081-0344-461fa3bd097b">
3805         <div class="py-2"></div>
3806        </div>
3807       </div>
3808      </div>
3809      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
3810       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
3811        <div id="fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144">
3812         <!-- News Collection Fragment - Vertical Layout -->
3813         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
3814         <div class="sp-citcr-section">
3815          <!-- News Collection Container -->
3816          <div class="sp-citcr-list">
3817           <!-- Individual News Item Template -->
3818           <div class="sp-citcr-item">
3819            <!-- News Image (Top) -->
3820            <div class="sp-citcr-image">
3821             <!-- Category Badge (Overlaid on Image) -->
3822             <div class="sp-citcr-category">
3823              <div class="sp-citcr-category-text">
3824               <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Trabalho</a>
3825              </div>
3826             </div>
3827             <div class="sp-citcr-img">
3828              <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a>
3829             </div>
3830            </div>
3831            <!-- News Content (Bottom) -->
3832            <div class="sp-citcr-content">
3833             <div class="sp-citcr-publish-date">
3834              <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">05/10/26 13:06</a>
3835             </div>
3836             <!-- News Title -->
3837             <div class="sp-citcr-title">
3838              <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Cate abre outubro com mais de 4.000 vagas de emprego; área de atendimento reúne 300 oportunidades</a>
3839             </div>
3840             <!-- News Headline/Description -->
3841             <div class="sp-citcr-headline">
3842              <a href="https://sampanews.sp.gov.br/w/cate-abre-outubro-com-mais-de-4.000-vagas-de-emprego-%C3%A1rea-de-atendimento-re%C3%BAne-300-oportunidades">Com salários de até R$ 4.000, oportunidades estão distribuídas por várias regiões da cidade e contemplam diferentes setores</a>
3843             </div>
3844            </div>
3845           </div>
3846          </div>
3847         </div>
3848        </div>
3849        
3849<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144'); const fragmentElementId = 'fragment-1ee64d8a-6f6f-dfa2-b247-30c479618144'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
3850    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
3851    function formatDate(date) {
3852        const day = String(date.getDate()).padStart(2, '0');
3853        const month = String(date.getMonth() + 1).padStart(2, '0');
3854        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
3855        const hours = String(date.getHours()).padStart(2, '0');
3856        const minutes = String(date.getMinutes()).padStart(2, '0');
3857        
3858        return `${day}/${month}/${year} ${hours}:${minutes}`;
3859    }
3860    
3861    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
3862    function formatDateOnly(date) {
3863        const day = String(date.getDate()).padStart(2, '0');
3864        const month = String(date.getMonth() + 1).padStart(2, '0');
3865        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
3866        
3867        return `${day}/${month}/${year}`;
3868    }
3869    
3870    // Função para fazer parse de diferentes formatos de data
3871    function parseDate(dateString) {
3872        if (!dateString || dateString.trim() === '') return null;
3873        
3874        dateString = dateString.trim();
3875        
3876        try {
3877            // Se for timestamp em segundos
3878            if (/^\d{10}$/.test(dateString)) {
3879                return new Date(parseInt(dateString) * 1000);
3880            }
3881            
3882            // Se for timestamp em milissegundos
3883            if (/^\d{13}$/.test(dateString)) {
3884                return new Date(parseInt(dateString));
3885            }
3886            
3887            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
3888            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
3889                const parts = dateString.split(/[\/\s:]/);
3890                const day = parseInt(parts[0]);
3891                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
3892                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
3893                const hour = parts[3] ? parseInt(parts[3]) : 0;
3894                const minute = parts[4] ? parseInt(parts[4]) : 0;
3895                const second = parts[5] ? parseInt(parts[5]) : 0;
3896                
3897                return new Date(year, month, day, hour, minute, second);
3898            }
3899            
3900            // Para formato ISO (yyyy-MM-dd)
3901            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
3902                const parts = dateString.split(/[-T\s:]/);
3903                const year = parseInt(parts[0]);
3904                const month = parseInt(parts[1]) - 1;
3905                const day = parseInt(parts[2]);
3906                const hour = parts[3] ? parseInt(parts[3]) : 0;
3907                const minute = parts[4] ? parseInt(parts[4]) : 0;
3908                const second = parts[5] ? parseInt(parts[5]) : 0;
3909                
3910                return new Date(year, month, day, hour, minute, second);
3911            }
3912            
3913            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
3914            if (dateString.includes('T') || dateString.includes('-')) {
3915                let parsedDate = new Date(dateString);
3916                if (!isNaN(parsedDate.getTime())) {
3917                    return parsedDate;
3918                }
3919            }
3920            
3921        } catch (e) {
3922            console.warn('Erro ao fazer parse da data:', dateString, e);
3923        }
3924        
3925        return null;
3926    }
3927    
3928    // Função principal para reduzir 3 horas das datas mapeadas
3929    function reduceDatesBy3Hours() {
3930        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
3931        
3932        dateElements.forEach(function(element) {
3933            const currentText = element.textContent.trim();
3934            
3935            // Ignora se for texto padrão ou estiver vazio
3936            if (currentText === 'Data de Publicação' || currentText === '') {
3937                return;
3938            }
3939            
3940            // Verifica se já foi processado
3941            if (element.getAttribute('data-hours-reduced') === 'true') {
3942                return;
3943            }
3944            
3945            // Tenta fazer parse da data mapeada
3946            const parsedDate = parseDate(currentText);
3947            
3948            if (parsedDate && !isNaN(parsedDate.getTime())) {
3949                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
3950                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
3951                
3952                // Atualiza o elemento com a data reduzida
3953                element.textContent = formatDate(reducedDate);
3954                
3955                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
3956                // element.textContent = formatDateOnly(reducedDate);
3957                
3958                // Marca como processado para evitar reprocessamento
3959                element.setAttribute('data-hours-reduced', 'true');
3960            } else {
3961                console.warn('Não foi possível fazer parse da data:', currentText);
3962            }
3963        });
3964    }
3965    
3966    // Aguardar carregamento e processar datas
3967    setTimeout(function() {
3968        reduceDatesBy3Hours();
3969    }, 500);
3970    
3971    // Observer para detectar mudanças no DOM
3972    const observer = new MutationObserver(function(mutations) {
3973        mutations.forEach(function(mutation) {
3974            if (mutation.type === 'childList') {
3975                mutation.addedNodes.forEach(function(node) {
3976                    if (node.nodeType === Node.ELEMENT_NODE) {
3977                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
3978                        if (dateElements.length > 0) {
3979                            setTimeout(reduceDatesBy3Hours, 100);
3980                        }
3981                    }
3982                });
3983            }
3984        });
3985    });
3986    
3987    // Observa mudanças no container principal
3988    const container = document.querySelector('.sp-citcr-section');
3989    if (container) {
3990        observer.observe(container, {
3991            childList: true,
3992            subtree: true
3993        });
3994    }
3995    
3996    // Funcionalidade de clique nos itens de notícia
3997    const newsItems = document.querySelectorAll('.sp-citcr-item');
3998
3999    newsItems.forEach(function(item) {
4000        item.addEventListener('click', function() {
4001            console.log('News item clicked');
4002        });
4003
4004        item.setAttribute('tabindex', '0');
4005        item.setAttribute('role', 'article');
4006
4007        item.addEventListener('keydown', function(e) {
4008            if (e.key === 'Enter' || e.key === ' ') {
4009                e.preventDefault();
4010                item.click();
4011            }
4012        });
4013    });
4014    
4015    // Função global para reprocessar datas manualmente
4016    window.reduceDatesBy3Hours = function() {
4017        // Remove marcadores de processamento para permitir reprocessamento
4018        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
4019        dateElements.forEach(function(element) {
4020            element.removeAttribute('data-hours-reduced');
4021        });
4022        reduceDatesBy3Hours();
4023    };
4024});;</script>
4024
4025       </div>
4026       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
4027        <div id="fragment-4d50913f-0d9e-3a12-d02f-613a18cc6480">
4028         <div class="py-2"></div>
4029        </div>
4030       </div>
4031      </div>
4032      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
4033       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
4034        <div id="fragment-16442bc8-a79d-720e-bcd1-c97699a545d7">
4035         <!-- News Collection Fragment - Vertical Layout -->
4036         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
4037         <div class="sp-citcr-section">
4038          <!-- News Collection Container -->
4039          <div class="sp-citcr-list">
4040           <!-- Individual News Item Template -->
4041           <div class="sp-citcr-item">
4042            <!-- News Image (Top) -->
4043            <div class="sp-citcr-image">
4044             <!-- Category Badge (Overlaid on Image) -->
4045             <div class="sp-citcr-category">
4046              <div class="sp-citcr-category-text">
4047               <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Cultura</a>
4048              </div>
4049             </div>
4050             <div class="sp-citcr-img">
4051              <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-10-01+at+20.35.15+%281%29.jpg/93ff2a0e-67e8-c480-dc13-0e69d6ec0de7?version=1.0&amp;t=1790947818235" alt="News Image"> </a>
4052             </div>
4053            </div>
4054            <!-- News Content (Bottom) -->
4055            <div class="sp-citcr-content">
4056             <div class="sp-citcr-publish-date">
4057              <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">02/10/26 10:30</a>
4058             </div>
4059             <!-- News Title -->
4060             <div class="sp-citcr-title">
4061              <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Carnaval 2027: Prefeitura antecipa organização e 741 blocos estão inscritos para desfilarem nas ruas da cidade, 17,6% a mais do que na última edição</a>
4062             </div>
4063             <!-- News Headline/Description -->
4064             <div class="sp-citcr-headline">
4065              <a href="https://sampanews.sp.gov.br/w/carnaval-2027-prefeitura-antecipa-organiza%C3%A7%C3%A3o-e-741-blocos-est%C3%A3o-inscritos-para-desfilarem-nas-ruas-da-cidade-17-6-a-mais-do-que-na-%C3%BAltima-edi%C3%A7%C3%A3o">Planejamento começou meses antes da folia e reúne 13 secretarias municipais, com participação de blocos e representantes dos bairros na organização da festa</a>
4066             </div>
4067            </div>
4068           </div>
4069          </div>
4070         </div>
4071        </div>
4072        
4072<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-16442bc8-a79d-720e-bcd1-c97699a545d7'); const fragmentElementId = 'fragment-16442bc8-a79d-720e-bcd1-c97699a545d7'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
4073    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
4074    function formatDate(date) {
4075        const day = String(date.getDate()).padStart(2, '0');
4076        const month = String(date.getMonth() + 1).padStart(2, '0');
4077        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4078        const hours = String(date.getHours()).padStart(2, '0');
4079        const minutes = String(date.getMinutes()).padStart(2, '0');
4080        
4081        return `${day}/${month}/${year} ${hours}:${minutes}`;
4082    }
4083    
4084    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
4085    function formatDateOnly(date) {
4086        const day = String(date.getDate()).padStart(2, '0');
4087        const month = String(date.getMonth() + 1).padStart(2, '0');
4088        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4089        
4090        return `${day}/${month}/${year}`;
4091    }
4092    
4093    // Função para fazer parse de diferentes formatos de data
4094    function parseDate(dateString) {
4095        if (!dateString || dateString.trim() === '') return null;
4096        
4097        dateString = dateString.trim();
4098        
4099        try {
4100            // Se for timestamp em segundos
4101            if (/^\d{10}$/.test(dateString)) {
4102                return new Date(parseInt(dateString) * 1000);
4103            }
4104            
4105            // Se for timestamp em milissegundos
4106            if (/^\d{13}$/.test(dateString)) {
4107                return new Date(parseInt(dateString));
4108            }
4109            
4110            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
4111            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
4112                const parts = dateString.split(/[\/\s:]/);
4113                const day = parseInt(parts[0]);
4114                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
4115                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
4116                const hour = parts[3] ? parseInt(parts[3]) : 0;
4117                const minute = parts[4] ? parseInt(parts[4]) : 0;
4118                const second = parts[5] ? parseInt(parts[5]) : 0;
4119                
4120                return new Date(year, month, day, hour, minute, second);
4121            }
4122            
4123            // Para formato ISO (yyyy-MM-dd)
4124            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
4125                const parts = dateString.split(/[-T\s:]/);
4126                const year = parseInt(parts[0]);
4127                const month = parseInt(parts[1]) - 1;
4128                const day = parseInt(parts[2]);
4129                const hour = parts[3] ? parseInt(parts[3]) : 0;
4130                const minute = parts[4] ? parseInt(parts[4]) : 0;
4131                const second = parts[5] ? parseInt(parts[5]) : 0;
4132                
4133                return new Date(year, month, day, hour, minute, second);
4134            }
4135            
4136            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
4137            if (dateString.includes('T') || dateString.includes('-')) {
4138                let parsedDate = new Date(dateString);
4139                if (!isNaN(parsedDate.getTime())) {
4140                    return parsedDate;
4141                }
4142            }
4143            
4144        } catch (e) {
4145            console.warn('Erro ao fazer parse da data:', dateString, e);
4146        }
4147        
4148        return null;
4149    }
4150    
4151    // Função principal para reduzir 3 horas das datas mapeadas
4152    function reduceDatesBy3Hours() {
4153        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
4154        
4155        dateElements.forEach(function(element) {
4156            const currentText = element.textContent.trim();
4157            
4158            // Ignora se for texto padrão ou estiver vazio
4159            if (currentText === 'Data de Publicação' || currentText === '') {
4160                return;
4161            }
4162            
4163            // Verifica se já foi processado
4164            if (element.getAttribute('data-hours-reduced') === 'true') {
4165                return;
4166            }
4167            
4168            // Tenta fazer parse da data mapeada
4169            const parsedDate = parseDate(currentText);
4170            
4171            if (parsedDate && !isNaN(parsedDate.getTime())) {
4172                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
4173                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
4174                
4175                // Atualiza o elemento com a data reduzida
4176                element.textContent = formatDate(reducedDate);
4177                
4178                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
4179                // element.textContent = formatDateOnly(reducedDate);
4180                
4181                // Marca como processado para evitar reprocessamento
4182                element.setAttribute('data-hours-reduced', 'true');
4183            } else {
4184                console.warn('Não foi possível fazer parse da data:', currentText);
4185            }
4186        });
4187    }
4188    
4189    // Aguardar carregamento e processar datas
4190    setTimeout(function() {
4191        reduceDatesBy3Hours();
4192    }, 500);
4193    
4194    // Observer para detectar mudanças no DOM
4195    const observer = new MutationObserver(function(mutations) {
4196        mutations.forEach(function(mutation) {
4197            if (mutation.type === 'childList') {
4198                mutation.addedNodes.forEach(function(node) {
4199                    if (node.nodeType === Node.ELEMENT_NODE) {
4200                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
4201                        if (dateElements.length > 0) {
4202                            setTimeout(reduceDatesBy3Hours, 100);
4203                        }
4204                    }
4205                });
4206            }
4207        });
4208    });
4209    
4210    // Observa mudanças no container principal
4211    const container = document.querySelector('.sp-citcr-section');
4212    if (container) {
4213        observer.observe(container, {
4214            childList: true,
4215            subtree: true
4216        });
4217    }
4218    
4219    // Funcionalidade de clique nos itens de notícia
4220    const newsItems = document.querySelectorAll('.sp-citcr-item');
4221
4222    newsItems.forEach(function(item) {
4223        item.addEventListener('click', function() {
4224            console.log('News item clicked');
4225        });
4226
4227        item.setAttribute('tabindex', '0');
4228        item.setAttribute('role', 'article');
4229
4230        item.addEventListener('keydown', function(e) {
4231            if (e.key === 'Enter' || e.key === ' ') {
4232                e.preventDefault();
4233                item.click();
4234            }
4235        });
4236    });
4237    
4238    // Função global para reprocessar datas manualmente
4239    window.reduceDatesBy3Hours = function() {
4240        // Remove marcadores de processamento para permitir reprocessamento
4241        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
4242        dateElements.forEach(function(element) {
4243            element.removeAttribute('data-hours-reduced');
4244        });
4245        reduceDatesBy3Hours();
4246    };
4247});;</script>
4247
4248       </div>
4249       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
4250        <div id="fragment-468764d2-5609-f915-5ab4-4bf15c339b15">
4251         <div class="py-2"></div>
4252        </div>
4253       </div>
4254      </div>
4255      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
4256       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
4257        <div id="fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2">
4258         <!-- News Collection Fragment - Vertical Layout -->
4259         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
4260         <div class="sp-citcr-section">
4261          <!-- News Collection Container -->
4262          <div class="sp-citcr-list">
4263           <!-- Individual News Item Template -->
4264           <div class="sp-citcr-item">
4265            <!-- News Image (Top) -->
4266            <div class="sp-citcr-image">
4267             <!-- Category Badge (Overlaid on Image) -->
4268             <div class="sp-citcr-category">
4269              <div class="sp-citcr-category-text">
4270               <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Gestão</a>
4271              </div>
4272             </div>
4273             <div class="sp-citcr-img">
4274              <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a>
4275             </div>
4276            </div>
4277            <!-- News Content (Bottom) -->
4278            <div class="sp-citcr-content">
4279             <div class="sp-citcr-publish-date">
4280              <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">01/10/26 18:58</a>
4281             </div>
4282             <!-- News Title -->
4283             <div class="sp-citcr-title">
4284              <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Prefeitura elabora orçamento anual recorde para o ano 2027: R$ 146,52 bilhões</a>
4285             </div>
4286             <!-- News Headline/Description -->
4287             <div class="sp-citcr-headline">
4288              <a href="https://sampanews.sp.gov.br/w/prefeitura-elabora-or%C3%A7amento-anual-recorde-para-o-ano-2027-r-146-52-bilh%C3%B5es">Valor para investimentos na capital passou de R$ 5 bilhões em 2021 para R$ 20 bilhões em 2027, resultado de gestão que alia responsabilidade fiscal e eficiência no gasto público</a>
4289             </div>
4290            </div>
4291           </div>
4292          </div>
4293         </div>
4294        </div>
4295        
4295<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2'); const fragmentElementId = 'fragment-ff989ef5-0e5b-611b-1d70-39c92de0aac2'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
4296    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
4297    function formatDate(date) {
4298        const day = String(date.getDate()).padStart(2, '0');
4299        const month = String(date.getMonth() + 1).padStart(2, '0');
4300        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4301        const hours = String(date.getHours()).padStart(2, '0');
4302        const minutes = String(date.getMinutes()).padStart(2, '0');
4303        
4304        return `${day}/${month}/${year} ${hours}:${minutes}`;
4305    }
4306    
4307    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
4308    function formatDateOnly(date) {
4309        const day = String(date.getDate()).padStart(2, '0');
4310        const month = String(date.getMonth() + 1).padStart(2, '0');
4311        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4312        
4313        return `${day}/${month}/${year}`;
4314    }
4315    
4316    // Função para fazer parse de diferentes formatos de data
4317    function parseDate(dateString) {
4318        if (!dateString || dateString.trim() === '') return null;
4319        
4320        dateString = dateString.trim();
4321        
4322        try {
4323            // Se for timestamp em segundos
4324            if (/^\d{10}$/.test(dateString)) {
4325                return new Date(parseInt(dateString) * 1000);
4326            }
4327            
4328            // Se for timestamp em milissegundos
4329            if (/^\d{13}$/.test(dateString)) {
4330                return new Date(parseInt(dateString));
4331            }
4332            
4333            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
4334            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
4335                const parts = dateString.split(/[\/\s:]/);
4336                const day = parseInt(parts[0]);
4337                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
4338                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
4339                const hour = parts[3] ? parseInt(parts[3]) : 0;
4340                const minute = parts[4] ? parseInt(parts[4]) : 0;
4341                const second = parts[5] ? parseInt(parts[5]) : 0;
4342                
4343                return new Date(year, month, day, hour, minute, second);
4344            }
4345            
4346            // Para formato ISO (yyyy-MM-dd)
4347            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
4348                const parts = dateString.split(/[-T\s:]/);
4349                const year = parseInt(parts[0]);
4350                const month = parseInt(parts[1]) - 1;
4351                const day = parseInt(parts[2]);
4352                const hour = parts[3] ? parseInt(parts[3]) : 0;
4353                const minute = parts[4] ? parseInt(parts[4]) : 0;
4354                const second = parts[5] ? parseInt(parts[5]) : 0;
4355                
4356                return new Date(year, month, day, hour, minute, second);
4357            }
4358            
4359            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
4360            if (dateString.includes('T') || dateString.includes('-')) {
4361                let parsedDate = new Date(dateString);
4362                if (!isNaN(parsedDate.getTime())) {
4363                    return parsedDate;
4364                }
4365            }
4366            
4367        } catch (e) {
4368            console.warn('Erro ao fazer parse da data:', dateString, e);
4369        }
4370        
4371        return null;
4372    }
4373    
4374    // Função principal para reduzir 3 horas das datas mapeadas
4375    function reduceDatesBy3Hours() {
4376        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
4377        
4378        dateElements.forEach(function(element) {
4379            const currentText = element.textContent.trim();
4380            
4381            // Ignora se for texto padrão ou estiver vazio
4382            if (currentText === 'Data de Publicação' || currentText === '') {
4383                return;
4384            }
4385            
4386            // Verifica se já foi processado
4387            if (element.getAttribute('data-hours-reduced') === 'true') {
4388                return;
4389            }
4390            
4391            // Tenta fazer parse da data mapeada
4392            const parsedDate = parseDate(currentText);
4393            
4394            if (parsedDate && !isNaN(parsedDate.getTime())) {
4395                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
4396                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
4397                
4398                // Atualiza o elemento com a data reduzida
4399                element.textContent = formatDate(reducedDate);
4400                
4401                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
4402                // element.textContent = formatDateOnly(reducedDate);
4403                
4404                // Marca como processado para evitar reprocessamento
4405                element.setAttribute('data-hours-reduced', 'true');
4406            } else {
4407                console.warn('Não foi possível fazer parse da data:', currentText);
4408            }
4409        });
4410    }
4411    
4412    // Aguardar carregamento e processar datas
4413    setTimeout(function() {
4414        reduceDatesBy3Hours();
4415    }, 500);
4416    
4417    // Observer para detectar mudanças no DOM
4418    const observer = new MutationObserver(function(mutations) {
4419        mutations.forEach(function(mutation) {
4420            if (mutation.type === 'childList') {
4421                mutation.addedNodes.forEach(function(node) {
4422                    if (node.nodeType === Node.ELEMENT_NODE) {
4423                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
4424                        if (dateElements.length > 0) {
4425                            setTimeout(reduceDatesBy3Hours, 100);
4426                        }
4427                    }
4428                });
4429            }
4430        });
4431    });
4432    
4433    // Observa mudanças no container principal
4434    const container = document.querySelector('.sp-citcr-section');
4435    if (container) {
4436        observer.observe(container, {
4437            childList: true,
4438            subtree: true
4439        });
4440    }
4441    
4442    // Funcionalidade de clique nos itens de notícia
4443    const newsItems = document.querySelectorAll('.sp-citcr-item');
4444
4445    newsItems.forEach(function(item) {
4446        item.addEventListener('click', function() {
4447            console.log('News item clicked');
4448        });
4449
4450        item.setAttribute('tabindex', '0');
4451        item.setAttribute('role', 'article');
4452
4453        item.addEventListener('keydown', function(e) {
4454            if (e.key === 'Enter' || e.key === ' ') {
4455                e.preventDefault();
4456                item.click();
4457            }
4458        });
4459    });
4460    
4461    // Função global para reprocessar datas manualmente
4462    window.reduceDatesBy3Hours = function() {
4463        // Remove marcadores de processamento para permitir reprocessamento
4464        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
4465        dateElements.forEach(function(element) {
4466            element.removeAttribute('data-hours-reduced');
4467        });
4468        reduceDatesBy3Hours();
4469    };
4470});;</script>
4470
4471       </div>
4472       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
4473        <div id="fragment-2ab0d724-2d37-6180-8f9d-5a88960fc5c6">
4474         <div class="py-2"></div>
4475        </div>
4476       </div>
4477      </div>
4478      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
4479       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
4480        <div id="fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66">
4481         <!-- News Collection Fragment - Vertical Layout -->
4482         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
4483         <div class="sp-citcr-section">
4484          <!-- News Collection Container -->
4485          <div class="sp-citcr-list">
4486           <!-- Individual News Item Template -->
4487           <div class="sp-citcr-item">
4488            <!-- News Image (Top) -->
4489            <div class="sp-citcr-image">
4490             <!-- Category Badge (Overlaid on Image) -->
4491             <div class="sp-citcr-category">
4492              <div class="sp-citcr-category-text">
4493               <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Saúde</a>
4494              </div>
4495             </div>
4496             <div class="sp-citcr-img">
4497              <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-09-23+at+14.17.34+%282%29.jpeg/541e8595-0ac7-3b9a-84c7-46798303da5d?version=1.0&amp;t=1790872614434" alt="News Image"> </a>
4498             </div>
4499            </div>
4500            <!-- News Content (Bottom) -->
4501            <div class="sp-citcr-content">
4502             <div class="sp-citcr-publish-date">
4503              <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">01/10/26 13:29</a>
4504             </div>
4505             <!-- News Title -->
4506             <div class="sp-citcr-title">
4507              <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Protocolo de monitoramento cerebral reduz em cerca de 54% tempo de internação de recém-nascidos em UTIs municipais de São Paulo</a>
4508             </div>
4509             <!-- News Headline/Description -->
4510             <div class="sp-citcr-headline">
4511              <a href="https://sampanews.sp.gov.br/w/protocolo-de-monitoramento-cerebral-reduz-em-cerca-de-54-tempo-de-interna%C3%A7%C3%A3o-de-rec%C3%A9m-nascidos-em-utis-municipais-de-s%C3%A3o-paulo">Tecnologia acompanha cérebro de bebês de alto risco em tempo real e identifica crises que podem não apresentar sinais visíveis</a>
4512             </div>
4513            </div>
4514           </div>
4515          </div>
4516         </div>
4517        </div>
4518        
4518<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66'); const fragmentElementId = 'fragment-f38942b5-4c56-ff41-e4ca-81eb6905aa66'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
4519    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
4520    function formatDate(date) {
4521        const day = String(date.getDate()).padStart(2, '0');
4522        const month = String(date.getMonth() + 1).padStart(2, '0');
4523        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4524        const hours = String(date.getHours()).padStart(2, '0');
4525        const minutes = String(date.getMinutes()).padStart(2, '0');
4526        
4527        return `${day}/${month}/${year} ${hours}:${minutes}`;
4528    }
4529    
4530    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
4531    function formatDateOnly(date) {
4532        const day = String(date.getDate()).padStart(2, '0');
4533        const month = String(date.getMonth() + 1).padStart(2, '0');
4534        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4535        
4536        return `${day}/${month}/${year}`;
4537    }
4538    
4539    // Função para fazer parse de diferentes formatos de data
4540    function parseDate(dateString) {
4541        if (!dateString || dateString.trim() === '') return null;
4542        
4543        dateString = dateString.trim();
4544        
4545        try {
4546            // Se for timestamp em segundos
4547            if (/^\d{10}$/.test(dateString)) {
4548                return new Date(parseInt(dateString) * 1000);
4549            }
4550            
4551            // Se for timestamp em milissegundos
4552            if (/^\d{13}$/.test(dateString)) {
4553                return new Date(parseInt(dateString));
4554            }
4555            
4556            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
4557            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
4558                const parts = dateString.split(/[\/\s:]/);
4559                const day = parseInt(parts[0]);
4560                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
4561                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
4562                const hour = parts[3] ? parseInt(parts[3]) : 0;
4563                const minute = parts[4] ? parseInt(parts[4]) : 0;
4564                const second = parts[5] ? parseInt(parts[5]) : 0;
4565                
4566                return new Date(year, month, day, hour, minute, second);
4567            }
4568            
4569            // Para formato ISO (yyyy-MM-dd)
4570            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
4571                const parts = dateString.split(/[-T\s:]/);
4572                const year = parseInt(parts[0]);
4573                const month = parseInt(parts[1]) - 1;
4574                const day = parseInt(parts[2]);
4575                const hour = parts[3] ? parseInt(parts[3]) : 0;
4576                const minute = parts[4] ? parseInt(parts[4]) : 0;
4577                const second = parts[5] ? parseInt(parts[5]) : 0;
4578                
4579                return new Date(year, month, day, hour, minute, second);
4580            }
4581            
4582            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
4583            if (dateString.includes('T') || dateString.includes('-')) {
4584                let parsedDate = new Date(dateString);
4585                if (!isNaN(parsedDate.getTime())) {
4586                    return parsedDate;
4587                }
4588            }
4589            
4590        } catch (e) {
4591            console.warn('Erro ao fazer parse da data:', dateString, e);
4592        }
4593        
4594        return null;
4595    }
4596    
4597    // Função principal para reduzir 3 horas das datas mapeadas
4598    function reduceDatesBy3Hours() {
4599        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
4600        
4601        dateElements.forEach(function(element) {
4602            const currentText = element.textContent.trim();
4603            
4604            // Ignora se for texto padrão ou estiver vazio
4605            if (currentText === 'Data de Publicação' || currentText === '') {
4606                return;
4607            }
4608            
4609            // Verifica se já foi processado
4610            if (element.getAttribute('data-hours-reduced') === 'true') {
4611                return;
4612            }
4613            
4614            // Tenta fazer parse da data mapeada
4615            const parsedDate = parseDate(currentText);
4616            
4617            if (parsedDate && !isNaN(parsedDate.getTime())) {
4618                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
4619                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
4620                
4621                // Atualiza o elemento com a data reduzida
4622                element.textContent = formatDate(reducedDate);
4623                
4624                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
4625                // element.textContent = formatDateOnly(reducedDate);
4626                
4627                // Marca como processado para evitar reprocessamento
4628                element.setAttribute('data-hours-reduced', 'true');
4629            } else {
4630                console.warn('Não foi possível fazer parse da data:', currentText);
4631            }
4632        });
4633    }
4634    
4635    // Aguardar carregamento e processar datas
4636    setTimeout(function() {
4637        reduceDatesBy3Hours();
4638    }, 500);
4639    
4640    // Observer para detectar mudanças no DOM
4641    const observer = new MutationObserver(function(mutations) {
4642        mutations.forEach(function(mutation) {
4643            if (mutation.type === 'childList') {
4644                mutation.addedNodes.forEach(function(node) {
4645                    if (node.nodeType === Node.ELEMENT_NODE) {
4646                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
4647                        if (dateElements.length > 0) {
4648                            setTimeout(reduceDatesBy3Hours, 100);
4649                        }
4650                    }
4651                });
4652            }
4653        });
4654    });
4655    
4656    // Observa mudanças no container principal
4657    const container = document.querySelector('.sp-citcr-section');
4658    if (container) {
4659        observer.observe(container, {
4660            childList: true,
4661            subtree: true
4662        });
4663    }
4664    
4665    // Funcionalidade de clique nos itens de notícia
4666    const newsItems = document.querySelectorAll('.sp-citcr-item');
4667
4668    newsItems.forEach(function(item) {
4669        item.addEventListener('click', function() {
4670            console.log('News item clicked');
4671        });
4672
4673        item.setAttribute('tabindex', '0');
4674        item.setAttribute('role', 'article');
4675
4676        item.addEventListener('keydown', function(e) {
4677            if (e.key === 'Enter' || e.key === ' ') {
4678                e.preventDefault();
4679                item.click();
4680            }
4681        });
4682    });
4683    
4684    // Função global para reprocessar datas manualmente
4685    window.reduceDatesBy3Hours = function() {
4686        // Remove marcadores de processamento para permitir reprocessamento
4687        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
4688        dateElements.forEach(function(element) {
4689            element.removeAttribute('data-hours-reduced');
4690        });
4691        reduceDatesBy3Hours();
4692    };
4693});;</script>
4693
4694       </div>
4695       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
4696        <div id="fragment-816ac632-d92d-bc77-2051-25308a733d0b">
4697         <div class="py-2"></div>
4698        </div>
4699       </div>
4700      </div>
4701      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
4702       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
4703        <div id="fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88">
4704         <!-- News Collection Fragment - Vertical Layout -->
4705         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
4706         <div class="sp-citcr-section">
4707          <!-- News Collection Container -->
4708          <div class="sp-citcr-list">
4709           <!-- Individual News Item Template -->
4710           <div class="sp-citcr-item">
4711            <!-- News Image (Top) -->
4712            <div class="sp-citcr-image">
4713             <!-- Category Badge (Overlaid on Image) -->
4714             <div class="sp-citcr-category">
4715              <div class="sp-citcr-category-text">
4716               <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Mobilidade</a>
4717              </div>
4718             </div>
4719             <div class="sp-citcr-img">
4720              <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/6c2143a3-ea27-4a7b-9b43-41da83c4cb25.jpg/67f9a484-3869-40e9-ef19-189379a4a73e?version=1.0&amp;t=1790792199636" alt="News Image"> </a>
4721             </div>
4722            </div>
4723            <!-- News Content (Bottom) -->
4724            <div class="sp-citcr-content">
4725             <div class="sp-citcr-publish-date">
4726              <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">30/09/26 15:20</a>
4727             </div>
4728             <!-- News Title -->
4729             <div class="sp-citcr-title">
4730              <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Prefeitura atinge marco histórico de 2 mil ônibus elétricos na frota de São Paulo com entrega de mais 250 veículos</a>
4731             </div>
4732             <!-- News Headline/Description -->
4733             <div class="sp-citcr-headline">
4734              <a href="https://sampanews.sp.gov.br/w/prefeitura-atinge-marco-hist%C3%B3rico-de-2-mil-%C3%B4nibus-el%C3%A9tricos-na-frota-de-s%C3%A3o-paulo-com-entrega-de-mais-250-ve%C3%ADculos">Cidade já lidera a eletromobilidade no Brasil; na América Latina, só fica atrás da soma da frota de todo o Chile e agora supera Nova York, Madri, Roma, Berlim, Los Angeles, Chicago e Lisboa juntas</a>
4735             </div>
4736            </div>
4737           </div>
4738          </div>
4739         </div>
4740        </div>
4741        
4741<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88'); const fragmentElementId = 'fragment-cd3de3dc-e8f6-e9ed-a3c7-c034a2b2fb88'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
4742    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
4743    function formatDate(date) {
4744        const day = String(date.getDate()).padStart(2, '0');
4745        const month = String(date.getMonth() + 1).padStart(2, '0');
4746        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4747        const hours = String(date.getHours()).padStart(2, '0');
4748        const minutes = String(date.getMinutes()).padStart(2, '0');
4749        
4750        return `${day}/${month}/${year} ${hours}:${minutes}`;
4751    }
4752    
4753    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
4754    function formatDateOnly(date) {
4755        const day = String(date.getDate()).padStart(2, '0');
4756        const month = String(date.getMonth() + 1).padStart(2, '0');
4757        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4758        
4759        return `${day}/${month}/${year}`;
4760    }
4761    
4762    // Função para fazer parse de diferentes formatos de data
4763    function parseDate(dateString) {
4764        if (!dateString || dateString.trim() === '') return null;
4765        
4766        dateString = dateString.trim();
4767        
4768        try {
4769            // Se for timestamp em segundos
4770            if (/^\d{10}$/.test(dateString)) {
4771                return new Date(parseInt(dateString) * 1000);
4772            }
4773            
4774            // Se for timestamp em milissegundos
4775            if (/^\d{13}$/.test(dateString)) {
4776                return new Date(parseInt(dateString));
4777            }
4778            
4779            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
4780            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
4781                const parts = dateString.split(/[\/\s:]/);
4782                const day = parseInt(parts[0]);
4783                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
4784                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
4785                const hour = parts[3] ? parseInt(parts[3]) : 0;
4786                const minute = parts[4] ? parseInt(parts[4]) : 0;
4787                const second = parts[5] ? parseInt(parts[5]) : 0;
4788                
4789                return new Date(year, month, day, hour, minute, second);
4790            }
4791            
4792            // Para formato ISO (yyyy-MM-dd)
4793            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
4794                const parts = dateString.split(/[-T\s:]/);
4795                const year = parseInt(parts[0]);
4796                const month = parseInt(parts[1]) - 1;
4797                const day = parseInt(parts[2]);
4798                const hour = parts[3] ? parseInt(parts[3]) : 0;
4799                const minute = parts[4] ? parseInt(parts[4]) : 0;
4800                const second = parts[5] ? parseInt(parts[5]) : 0;
4801                
4802                return new Date(year, month, day, hour, minute, second);
4803            }
4804            
4805            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
4806            if (dateString.includes('T') || dateString.includes('-')) {
4807                let parsedDate = new Date(dateString);
4808                if (!isNaN(parsedDate.getTime())) {
4809                    return parsedDate;
4810                }
4811            }
4812            
4813        } catch (e) {
4814            console.warn('Erro ao fazer parse da data:', dateString, e);
4815        }
4816        
4817        return null;
4818    }
4819    
4820    // Função principal para reduzir 3 horas das datas mapeadas
4821    function reduceDatesBy3Hours() {
4822        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
4823        
4824        dateElements.forEach(function(element) {
4825            const currentText = element.textContent.trim();
4826            
4827            // Ignora se for texto padrão ou estiver vazio
4828            if (currentText === 'Data de Publicação' || currentText === '') {
4829                return;
4830            }
4831            
4832            // Verifica se já foi processado
4833            if (element.getAttribute('data-hours-reduced') === 'true') {
4834                return;
4835            }
4836            
4837            // Tenta fazer parse da data mapeada
4838            const parsedDate = parseDate(currentText);
4839            
4840            if (parsedDate && !isNaN(parsedDate.getTime())) {
4841                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
4842                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
4843                
4844                // Atualiza o elemento com a data reduzida
4845                element.textContent = formatDate(reducedDate);
4846                
4847                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
4848                // element.textContent = formatDateOnly(reducedDate);
4849                
4850                // Marca como processado para evitar reprocessamento
4851                element.setAttribute('data-hours-reduced', 'true');
4852            } else {
4853                console.warn('Não foi possível fazer parse da data:', currentText);
4854            }
4855        });
4856    }
4857    
4858    // Aguardar carregamento e processar datas
4859    setTimeout(function() {
4860        reduceDatesBy3Hours();
4861    }, 500);
4862    
4863    // Observer para detectar mudanças no DOM
4864    const observer = new MutationObserver(function(mutations) {
4865        mutations.forEach(function(mutation) {
4866            if (mutation.type === 'childList') {
4867                mutation.addedNodes.forEach(function(node) {
4868                    if (node.nodeType === Node.ELEMENT_NODE) {
4869                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
4870                        if (dateElements.length > 0) {
4871                            setTimeout(reduceDatesBy3Hours, 100);
4872                        }
4873                    }
4874                });
4875            }
4876        });
4877    });
4878    
4879    // Observa mudanças no container principal
4880    const container = document.querySelector('.sp-citcr-section');
4881    if (container) {
4882        observer.observe(container, {
4883            childList: true,
4884            subtree: true
4885        });
4886    }
4887    
4888    // Funcionalidade de clique nos itens de notícia
4889    const newsItems = document.querySelectorAll('.sp-citcr-item');
4890
4891    newsItems.forEach(function(item) {
4892        item.addEventListener('click', function() {
4893            console.log('News item clicked');
4894        });
4895
4896        item.setAttribute('tabindex', '0');
4897        item.setAttribute('role', 'article');
4898
4899        item.addEventListener('keydown', function(e) {
4900            if (e.key === 'Enter' || e.key === ' ') {
4901                e.preventDefault();
4902                item.click();
4903            }
4904        });
4905    });
4906    
4907    // Função global para reprocessar datas manualmente
4908    window.reduceDatesBy3Hours = function() {
4909        // Remove marcadores de processamento para permitir reprocessamento
4910        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
4911        dateElements.forEach(function(element) {
4912            element.removeAttribute('data-hours-reduced');
4913        });
4914        reduceDatesBy3Hours();
4915    };
4916});;</script>
4916
4917       </div>
4918       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
4919        <div id="fragment-5c888b2d-4fd2-de82-eb62-6419a727c674">
4920         <div class="py-2"></div>
4921        </div>
4922       </div>
4923      </div>
4924      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
4925       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
4926        <div id="fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea">
4927         <!-- News Collection Fragment - Vertical Layout -->
4928         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
4929         <div class="sp-citcr-section">
4930          <!-- News Collection Container -->
4931          <div class="sp-citcr-list">
4932           <!-- Individual News Item Template -->
4933           <div class="sp-citcr-item">
4934            <!-- News Image (Top) -->
4935            <div class="sp-citcr-image">
4936             <!-- Category Badge (Overlaid on Image) -->
4937             <div class="sp-citcr-category">
4938              <div class="sp-citcr-category-text">
4939               <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Trabalho</a>
4940              </div>
4941             </div>
4942             <div class="sp-citcr-img">
4943              <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300"> <img src="https://sampanews.sp.gov.br/documents/24771855/0/WhatsApp+Image+2026-09-28+at+09.14.39.jpeg/82e230d2-3f81-35f1-45e6-24dedbcb551a?version=1.0&amp;t=1790598668799" alt="News Image"> </a>
4944             </div>
4945            </div>
4946            <!-- News Content (Bottom) -->
4947            <div class="sp-citcr-content">
4948             <div class="sp-citcr-publish-date">
4949              <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">28/09/26 09:23</a>
4950             </div>
4951             <!-- News Title -->
4952             <div class="sp-citcr-title">
4953              <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Última semana de setembro tem mais de 4.500 vagas de emprego no Cate, com salários de até R$ 4.300</a>
4954             </div>
4955             <!-- News Headline/Description -->
4956             <div class="sp-citcr-headline">
4957              <a href="https://sampanews.sp.gov.br/w/%C3%BAltima-semana-de-setembro-tem-mais-de-4.500-vagas-de-emprego-no-cate-com-sal%C3%A1rios-de-at%C3%A9-r-4.300">Seleções contemplam candidatos em início de carreira e profissionais com experiência em diferentes áreas</a>
4958             </div>
4959            </div>
4960           </div>
4961          </div>
4962         </div>
4963        </div>
4964        
4964<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea'); const fragmentElementId = 'fragment-981fa4fa-e4e3-5fbd-c229-5fe0803d0cea'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
4965    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
4966    function formatDate(date) {
4967        const day = String(date.getDate()).padStart(2, '0');
4968        const month = String(date.getMonth() + 1).padStart(2, '0');
4969        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4970        const hours = String(date.getHours()).padStart(2, '0');
4971        const minutes = String(date.getMinutes()).padStart(2, '0');
4972        
4973        return `${day}/${month}/${year} ${hours}:${minutes}`;
4974    }
4975    
4976    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
4977    function formatDateOnly(date) {
4978        const day = String(date.getDate()).padStart(2, '0');
4979        const month = String(date.getMonth() + 1).padStart(2, '0');
4980        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
4981        
4982        return `${day}/${month}/${year}`;
4983    }
4984    
4985    // Função para fazer parse de diferentes formatos de data
4986    function parseDate(dateString) {
4987        if (!dateString || dateString.trim() === '') return null;
4988        
4989        dateString = dateString.trim();
4990        
4991        try {
4992            // Se for timestamp em segundos
4993            if (/^\d{10}$/.test(dateString)) {
4994                return new Date(parseInt(dateString) * 1000);
4995            }
4996            
4997            // Se for timestamp em milissegundos
4998            if (/^\d{13}$/.test(dateString)) {
4999                return new Date(parseInt(dateString));
5000            }
5001            
5002            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
5003            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
5004                const parts = dateString.split(/[\/\s:]/);
5005                const day = parseInt(parts[0]);
5006                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
5007                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
5008                const hour = parts[3] ? parseInt(parts[3]) : 0;
5009                const minute = parts[4] ? parseInt(parts[4]) : 0;
5010                const second = parts[5] ? parseInt(parts[5]) : 0;
5011                
5012                return new Date(year, month, day, hour, minute, second);
5013            }
5014            
5015            // Para formato ISO (yyyy-MM-dd)
5016            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
5017                const parts = dateString.split(/[-T\s:]/);
5018                const year = parseInt(parts[0]);
5019                const month = parseInt(parts[1]) - 1;
5020                const day = parseInt(parts[2]);
5021                const hour = parts[3] ? parseInt(parts[3]) : 0;
5022                const minute = parts[4] ? parseInt(parts[4]) : 0;
5023                const second = parts[5] ? parseInt(parts[5]) : 0;
5024                
5025                return new Date(year, month, day, hour, minute, second);
5026            }
5027            
5028            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
5029            if (dateString.includes('T') || dateString.includes('-')) {
5030                let parsedDate = new Date(dateString);
5031                if (!isNaN(parsedDate.getTime())) {
5032                    return parsedDate;
5033                }
5034            }
5035            
5036        } catch (e) {
5037            console.warn('Erro ao fazer parse da data:', dateString, e);
5038        }
5039        
5040        return null;
5041    }
5042    
5043    // Função principal para reduzir 3 horas das datas mapeadas
5044    function reduceDatesBy3Hours() {
5045        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
5046        
5047        dateElements.forEach(function(element) {
5048            const currentText = element.textContent.trim();
5049            
5050            // Ignora se for texto padrão ou estiver vazio
5051            if (currentText === 'Data de Publicação' || currentText === '') {
5052                return;
5053            }
5054            
5055            // Verifica se já foi processado
5056            if (element.getAttribute('data-hours-reduced') === 'true') {
5057                return;
5058            }
5059            
5060            // Tenta fazer parse da data mapeada
5061            const parsedDate = parseDate(currentText);
5062            
5063            if (parsedDate && !isNaN(parsedDate.getTime())) {
5064                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
5065                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
5066                
5067                // Atualiza o elemento com a data reduzida
5068                element.textContent = formatDate(reducedDate);
5069                
5070                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
5071                // element.textContent = formatDateOnly(reducedDate);
5072                
5073                // Marca como processado para evitar reprocessamento
5074                element.setAttribute('data-hours-reduced', 'true');
5075            } else {
5076                console.warn('Não foi possível fazer parse da data:', currentText);
5077            }
5078        });
5079    }
5080    
5081    // Aguardar carregamento e processar datas
5082    setTimeout(function() {
5083        reduceDatesBy3Hours();
5084    }, 500);
5085    
5086    // Observer para detectar mudanças no DOM
5087    const observer = new MutationObserver(function(mutations) {
5088        mutations.forEach(function(mutation) {
5089            if (mutation.type === 'childList') {
5090                mutation.addedNodes.forEach(function(node) {
5091                    if (node.nodeType === Node.ELEMENT_NODE) {
5092                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
5093                        if (dateElements.length > 0) {
5094                            setTimeout(reduceDatesBy3Hours, 100);
5095                        }
5096                    }
5097                });
5098            }
5099        });
5100    });
5101    
5102    // Observa mudanças no container principal
5103    const container = document.querySelector('.sp-citcr-section');
5104    if (container) {
5105        observer.observe(container, {
5106            childList: true,
5107            subtree: true
5108        });
5109    }
5110    
5111    // Funcionalidade de clique nos itens de notícia
5112    const newsItems = document.querySelectorAll('.sp-citcr-item');
5113
5114    newsItems.forEach(function(item) {
5115        item.addEventListener('click', function() {
5116            console.log('News item clicked');
5117        });
5118
5119        item.setAttribute('tabindex', '0');
5120        item.setAttribute('role', 'article');
5121
5122        item.addEventListener('keydown', function(e) {
5123            if (e.key === 'Enter' || e.key === ' ') {
5124                e.preventDefault();
5125                item.click();
5126            }
5127        });
5128    });
5129    
5130    // Função global para reprocessar datas manualmente
5131    window.reduceDatesBy3Hours = function() {
5132        // Remove marcadores de processamento para permitir reprocessamento
5133        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
5134        dateElements.forEach(function(element) {
5135            element.removeAttribute('data-hours-reduced');
5136        });
5137        reduceDatesBy3Hours();
5138    };
5139});;</script>
5139
5140       </div>
5141       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
5142        <div id="fragment-90637ee2-f3a7-05ad-723b-08cc7050ac2a">
5143         <div class="py-2"></div>
5144        </div>
5145       </div>
5146      </div>
5147      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
5148       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
5149        <div id="fragment-6304fb08-2c1e-c984-848e-e14f085972b3">
5150         <!-- News Collection Fragment - Vertical Layout -->
5151         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
5152         <div class="sp-citcr-section">
5153          <!-- News Collection Container -->
5154          <div class="sp-citcr-list">
5155           <!-- Individual News Item Template -->
5156           <div class="sp-citcr-item">
5157            <!-- News Image (Top) -->
5158            <div class="sp-citcr-image">
5159             <!-- Category Badge (Overlaid on Image) -->
5160             <div class="sp-citcr-category">
5161              <div class="sp-citcr-category-text">
5162               <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">Habitação</a>
5163              </div>
5164             </div>
5165             <div class="sp-citcr-img">
5166              <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a>
5167             </div>
5168            </div>
5169            <!-- News Content (Bottom) -->
5170            <div class="sp-citcr-content">
5171             <div class="sp-citcr-publish-date">
5172              <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">25/09/26 19:18</a>
5173             </div>
5174             <!-- News Title -->
5175             <div class="sp-citcr-title">
5176              <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">Prefeitura entrega mais de 1,2 mil escrituras para moradores de Heliópolis, na Zona Sul</a>
5177             </div>
5178             <!-- News Headline/Description -->
5179             <div class="sp-citcr-headline">
5180              <a href="https://sampanews.sp.gov.br/w/prefeitura-entrega-mais-de-1-2-mil-escrituras-para-moradores-de-heli%C3%B3polis-na-zona-sul">Famílias contempladas são residentes da Gleba K; cidade atinge mais de 101 mil documentos entregues</a>
5181             </div>
5182            </div>
5183           </div>
5184          </div>
5185         </div>
5186        </div>
5187        
5187<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-6304fb08-2c1e-c984-848e-e14f085972b3'); const fragmentElementId = 'fragment-6304fb08-2c1e-c984-848e-e14f085972b3'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
5188    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
5189    function formatDate(date) {
5190        const day = String(date.getDate()).padStart(2, '0');
5191        const month = String(date.getMonth() + 1).padStart(2, '0');
5192        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
5193        const hours = String(date.getHours()).padStart(2, '0');
5194        const minutes = String(date.getMinutes()).padStart(2, '0');
5195        
5196        return `${day}/${month}/${year} ${hours}:${minutes}`;
5197    }
5198    
5199    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
5200    function formatDateOnly(date) {
5201        const day = String(date.getDate()).padStart(2, '0');
5202        const month = String(date.getMonth() + 1).padStart(2, '0');
5203        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
5204        
5205        return `${day}/${month}/${year}`;
5206    }
5207    
5208    // Função para fazer parse de diferentes formatos de data
5209    function parseDate(dateString) {
5210        if (!dateString || dateString.trim() === '') return null;
5211        
5212        dateString = dateString.trim();
5213        
5214        try {
5215            // Se for timestamp em segundos
5216            if (/^\d{10}$/.test(dateString)) {
5217                return new Date(parseInt(dateString) * 1000);
5218            }
5219            
5220            // Se for timestamp em milissegundos
5221            if (/^\d{13}$/.test(dateString)) {
5222                return new Date(parseInt(dateString));
5223            }
5224            
5225            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
5226            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
5227                const parts = dateString.split(/[\/\s:]/);
5228                const day = parseInt(parts[0]);
5229                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
5230                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
5231                const hour = parts[3] ? parseInt(parts[3]) : 0;
5232                const minute = parts[4] ? parseInt(parts[4]) : 0;
5233                const second = parts[5] ? parseInt(parts[5]) : 0;
5234                
5235                return new Date(year, month, day, hour, minute, second);
5236            }
5237            
5238            // Para formato ISO (yyyy-MM-dd)
5239            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
5240                const parts = dateString.split(/[-T\s:]/);
5241                const year = parseInt(parts[0]);
5242                const month = parseInt(parts[1]) - 1;
5243                const day = parseInt(parts[2]);
5244                const hour = parts[3] ? parseInt(parts[3]) : 0;
5245                const minute = parts[4] ? parseInt(parts[4]) : 0;
5246                const second = parts[5] ? parseInt(parts[5]) : 0;
5247                
5248                return new Date(year, month, day, hour, minute, second);
5249            }
5250            
5251            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
5252            if (dateString.includes('T') || dateString.includes('-')) {
5253                let parsedDate = new Date(dateString);
5254                if (!isNaN(parsedDate.getTime())) {
5255                    return parsedDate;
5256                }
5257            }
5258            
5259        } catch (e) {
5260            console.warn('Erro ao fazer parse da data:', dateString, e);
5261        }
5262        
5263        return null;
5264    }
5265    
5266    // Função principal para reduzir 3 horas das datas mapeadas
5267    function reduceDatesBy3Hours() {
5268        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
5269        
5270        dateElements.forEach(function(element) {
5271            const currentText = element.textContent.trim();
5272            
5273            // Ignora se for texto padrão ou estiver vazio
5274            if (currentText === 'Data de Publicação' || currentText === '') {
5275                return;
5276            }
5277            
5278            // Verifica se já foi processado
5279            if (element.getAttribute('data-hours-reduced') === 'true') {
5280                return;
5281            }
5282            
5283            // Tenta fazer parse da data mapeada
5284            const parsedDate = parseDate(currentText);
5285            
5286            if (parsedDate && !isNaN(parsedDate.getTime())) {
5287                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
5288                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
5289                
5290                // Atualiza o elemento com a data reduzida
5291                element.textContent = formatDate(reducedDate);
5292                
5293                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
5294                // element.textContent = formatDateOnly(reducedDate);
5295                
5296                // Marca como processado para evitar reprocessamento
5297                element.setAttribute('data-hours-reduced', 'true');
5298            } else {
5299                console.warn('Não foi possível fazer parse da data:', currentText);
5300            }
5301        });
5302    }
5303    
5304    // Aguardar carregamento e processar datas
5305    setTimeout(function() {
5306        reduceDatesBy3Hours();
5307    }, 500);
5308    
5309    // Observer para detectar mudanças no DOM
5310    const observer = new MutationObserver(function(mutations) {
5311        mutations.forEach(function(mutation) {
5312            if (mutation.type === 'childList') {
5313                mutation.addedNodes.forEach(function(node) {
5314                    if (node.nodeType === Node.ELEMENT_NODE) {
5315                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
5316                        if (dateElements.length > 0) {
5317                            setTimeout(reduceDatesBy3Hours, 100);
5318                        }
5319                    }
5320                });
5321            }
5322        });
5323    });
5324    
5325    // Observa mudanças no container principal
5326    const container = document.querySelector('.sp-citcr-section');
5327    if (container) {
5328        observer.observe(container, {
5329            childList: true,
5330            subtree: true
5331        });
5332    }
5333    
5334    // Funcionalidade de clique nos itens de notícia
5335    const newsItems = document.querySelectorAll('.sp-citcr-item');
5336
5337    newsItems.forEach(function(item) {
5338        item.addEventListener('click', function() {
5339            console.log('News item clicked');
5340        });
5341
5342        item.setAttribute('tabindex', '0');
5343        item.setAttribute('role', 'article');
5344
5345        item.addEventListener('keydown', function(e) {
5346            if (e.key === 'Enter' || e.key === ' ') {
5347                e.preventDefault();
5348                item.click();
5349            }
5350        });
5351    });
5352    
5353    // Função global para reprocessar datas manualmente
5354    window.reduceDatesBy3Hours = function() {
5355        // Remove marcadores de processamento para permitir reprocessamento
5356        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
5357        dateElements.forEach(function(element) {
5358            element.removeAttribute('data-hours-reduced');
5359        });
5360        reduceDatesBy3Hours();
5361    };
5362});;</script>
5362
5363       </div>
5364       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
5365        <div id="fragment-02c3ccd3-0bf5-b4ca-d7e6-9e1abfbbc265">
5366         <div class="py-2"></div>
5367        </div>
5368       </div>
5369      </div>
5370      <div class="col col-lg-4 col-sm-12 col-12 col-md-12">
5371       <div class="lfr-layout-structure-item-card-imagem-topo-com-resumo--copiar- lfr-layout-structure-item-daad7b45-be24-1eea-7893-ea2c3436acc1 " data-layout-structure-item-id="daad7b45-be24-1eea-7893-ea2c3436acc1">
5372        <div id="fragment-ea342903-e3e3-88d6-b65c-d7670578c448">
5373         <!-- News Collection Fragment - Vertical Layout -->
5374         <!-- This fragment displays a collection of news items in vertical layout with mappable fields -->
5375         <div class="sp-citcr-section">
5376          <!-- News Collection Container -->
5377          <div class="sp-citcr-list">
5378           <!-- Individual News Item Template -->
5379           <div class="sp-citcr-item">
5380            <!-- News Image (Top) -->
5381            <div class="sp-citcr-image">
5382             <!-- Category Badge (Overlaid on Image) -->
5383             <div class="sp-citcr-category">
5384              <div class="sp-citcr-category-text">
5385               <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Esportes</a>
5386              </div>
5387             </div>
5388             <div class="sp-citcr-img">
5389              <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca"> <img src="https://prefeitura.sp.gov.br/documents/24771855/26522825/LOGO_PREF.png" alt="News Image"> </a>
5390             </div>
5391            </div>
5392            <!-- News Content (Bottom) -->
5393            <div class="sp-citcr-content">
5394             <div class="sp-citcr-publish-date">
5395              <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">25/09/26 17:35</a>
5396             </div>
5397             <!-- News Title -->
5398             <div class="sp-citcr-title">
5399              <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Com piscina semiolímpica coberta e aquecida, Prefeitura entrega recuperação e modernização completa do Centro Esportivo Carioca</a>
5400             </div>
5401             <!-- News Headline/Description -->
5402             <div class="sp-citcr-headline">
5403              <a href="https://sampanews.sp.gov.br/w/com-piscina-semiol%C3%ADmpica-coberta-e-aquecida-prefeitura-entrega-recupera%C3%A7%C3%A3o-e-moderniza%C3%A7%C3%A3o-completa-do-centro-esportivo-carioca">Equipamento esportivo, que atende os moradores da área do Ipiranga, também ganhou vestiários adaptados para pessoas com deficiência e outras melhorias</a>
5404             </div>
5405            </div>
5406           </div>
5407          </div>
5408         </div>
5409        </div>
5410        
5410<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-ea342903-e3e3-88d6-b65c-d7670578c448'); const fragmentElementId = 'fragment-ea342903-e3e3-88d6-b65c-d7670578c448'; const fragmentEntryLinkNamespace = 'prld'; const fragmentNamespace = 'prld'; const layoutMode = 'view';document.addEventListener('DOMContentLoaded', function() {
5411    // Função para formatar data após redução de 3 horas - Formato DD/MM/AA HH:MM
5412    function formatDate(date) {
5413        const day = String(date.getDate()).padStart(2, '0');
5414        const month = String(date.getMonth() + 1).padStart(2, '0');
5415        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
5416        const hours = String(date.getHours()).padStart(2, '0');
5417        const minutes = String(date.getMinutes()).padStart(2, '0');
5418        
5419        return `${day}/${month}/${year} ${hours}:${minutes}`;
5420    }
5421    
5422    // Função alternativa usando apenas data (sem hora) - Formato DD/MM/AA
5423    function formatDateOnly(date) {
5424        const day = String(date.getDate()).padStart(2, '0');
5425        const month = String(date.getMonth() + 1).padStart(2, '0');
5426        const year = String(date.getFullYear()).slice(-2); // Pega apenas os 2 últimos dígitos do ano
5427        
5428        return `${day}/${month}/${year}`;
5429    }
5430    
5431    // Função para fazer parse de diferentes formatos de data
5432    function parseDate(dateString) {
5433        if (!dateString || dateString.trim() === '') return null;
5434        
5435        dateString = dateString.trim();
5436        
5437        try {
5438            // Se for timestamp em segundos
5439            if (/^\d{10}$/.test(dateString)) {
5440                return new Date(parseInt(dateString) * 1000);
5441            }
5442            
5443            // Se for timestamp em milissegundos
5444            if (/^\d{13}$/.test(dateString)) {
5445                return new Date(parseInt(dateString));
5446            }
5447            
5448            // Para formato brasileiro dd/MM/yyyy (PRIORIDADE)
5449            if (/^\d{1,2}\/\d{1,2}\/\d{2,4}/.test(dateString)) {
5450                const parts = dateString.split(/[\/\s:]/);
5451                const day = parseInt(parts[0]);
5452                const month = parseInt(parts[1]) - 1; // JavaScript months are 0-indexed
5453                const year = parts[2].length === 2 ? 2000 + parseInt(parts[2]) : parseInt(parts[2]);
5454                const hour = parts[3] ? parseInt(parts[3]) : 0;
5455                const minute = parts[4] ? parseInt(parts[4]) : 0;
5456                const second = parts[5] ? parseInt(parts[5]) : 0;
5457                
5458                return new Date(year, month, day, hour, minute, second);
5459            }
5460            
5461            // Para formato ISO (yyyy-MM-dd)
5462            if (/^\d{4}-\d{2}-\d{2}/.test(dateString)) {
5463                const parts = dateString.split(/[-T\s:]/);
5464                const year = parseInt(parts[0]);
5465                const month = parseInt(parts[1]) - 1;
5466                const day = parseInt(parts[2]);
5467                const hour = parts[3] ? parseInt(parts[3]) : 0;
5468                const minute = parts[4] ? parseInt(parts[4]) : 0;
5469                const second = parts[5] ? parseInt(parts[5]) : 0;
5470                
5471                return new Date(year, month, day, hour, minute, second);
5472            }
5473            
5474            // Último recurso: tenta parse direto (apenas para formatos ISO válidos)
5475            if (dateString.includes('T') || dateString.includes('-')) {
5476                let parsedDate = new Date(dateString);
5477                if (!isNaN(parsedDate.getTime())) {
5478                    return parsedDate;
5479                }
5480            }
5481            
5482        } catch (e) {
5483            console.warn('Erro ao fazer parse da data:', dateString, e);
5484        }
5485        
5486        return null;
5487    }
5488    
5489    // Função principal para reduzir 3 horas das datas mapeadas
5490    function reduceDatesBy3Hours() {
5491        const dateElements = document.querySelectorAll('.sp-citcr-publish-date');
5492        
5493        dateElements.forEach(function(element) {
5494            const currentText = element.textContent.trim();
5495            
5496            // Ignora se for texto padrão ou estiver vazio
5497            if (currentText === 'Data de Publicação' || currentText === '') {
5498                return;
5499            }
5500            
5501            // Verifica se já foi processado
5502            if (element.getAttribute('data-hours-reduced') === 'true') {
5503                return;
5504            }
5505            
5506            // Tenta fazer parse da data mapeada
5507            const parsedDate = parseDate(currentText);
5508            
5509            if (parsedDate && !isNaN(parsedDate.getTime())) {
5510                // Subtrai 3 horas (3 * 60 * 60 * 1000 milissegundos)
5511                const reducedDate = new Date(parsedDate.getTime() - (3 * 60 * 60 * 1000));
5512                
5513                // Atualiza o elemento com a data reduzida
5514                element.textContent = formatDate(reducedDate);
5515                
5516                // Para usar apenas data (sem hora), descomente a linha abaixo e comente a de cima
5517                // element.textContent = formatDateOnly(reducedDate);
5518                
5519                // Marca como processado para evitar reprocessamento
5520                element.setAttribute('data-hours-reduced', 'true');
5521            } else {
5522                console.warn('Não foi possível fazer parse da data:', currentText);
5523            }
5524        });
5525    }
5526    
5527    // Aguardar carregamento e processar datas
5528    setTimeout(function() {
5529        reduceDatesBy3Hours();
5530    }, 500);
5531    
5532    // Observer para detectar mudanças no DOM
5533    const observer = new MutationObserver(function(mutations) {
5534        mutations.forEach(function(mutation) {
5535            if (mutation.type === 'childList') {
5536                mutation.addedNodes.forEach(function(node) {
5537                    if (node.nodeType === Node.ELEMENT_NODE) {
5538                        const dateElements = node.querySelectorAll('.sp-citcr-publish-date:not([data-hours-reduced])');
5539                        if (dateElements.length > 0) {
5540                            setTimeout(reduceDatesBy3Hours, 100);
5541                        }
5542                    }
5543                });
5544            }
5545        });
5546    });
5547    
5548    // Observa mudanças no container principal
5549    const container = document.querySelector('.sp-citcr-section');
5550    if (container) {
5551        observer.observe(container, {
5552            childList: true,
5553            subtree: true
5554        });
5555    }
5556    
5557    // Funcionalidade de clique nos itens de notícia
5558    const newsItems = document.querySelectorAll('.sp-citcr-item');
5559
5560    newsItems.forEach(function(item) {
5561        item.addEventListener('click', function() {
5562            console.log('News item clicked');
5563        });
5564
5565        item.setAttribute('tabindex', '0');
5566        item.setAttribute('role', 'article');
5567
5568        item.addEventListener('keydown', function(e) {
5569            if (e.key === 'Enter' || e.key === ' ') {
5570                e.preventDefault();
5571                item.click();
5572            }
5573        });
5574    });
5575    
5576    // Função global para reprocessar datas manualmente
5577    window.reduceDatesBy3Hours = function() {
5578        // Remove marcadores de processamento para permitir reprocessamento
5579        const dateElements = document.querySelectorAll('.sp-citcr-publish-date[data-hours-reduced]');
5580        dateElements.forEach(function(element) {
5581            element.removeAttribute('data-hours-reduced');
5582        });
5583        reduceDatesBy3Hours();
5584    };
5585});;</script>
5585
5586       </div>
5587       <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-fb065081-d280-663e-d2bd-55ad52e60217 " data-layout-structure-item-id="fb065081-d280-663e-d2bd-55ad52e60217">
5588        <div id="fragment-6fc23c20-c9bc-4c41-4079-7ea2967fdbd8">
5589         <div class="py-2"></div>
5590        </div>
5591       </div>
5592      </div>
5593     </div>
5594    </div>
5595    <div>
5596     <div class="pagination-bar pb-2 pt-3">
5597      <div class="pagination-results">Exibindo 1 - 9 de 788 resultados.</div>
5598      <ul class="pagination pagination-root">
5599       <li class="disabled page-item">
5600        <div class="page-link">
5601         <svg class="lexicon-icon lexicon-icon-angle-left" role="presentation">
5602          <use xlink:href="https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg#angle-left" />
5603         </svg>
5604        </div>
5605       </li>
5606       <li class="active page-item"><a class="link-unstyled page-link">1</a></li>
5607       <li class="page-item"><a class="link-unstyled page-link">2</a></li>
5608       <li class="page-item"><a class="link-unstyled page-link">3</a></li>
5609       <li class="dropdown page-item"><button class="btn btn-unstyled dropdown-toggle page-link" type="button">...</button></li>
5610       <li class="page-item"><a class="link-unstyled page-link">88</a></li>
5611       <li class="page-item"><a class="link-unstyled page-link">
5612         <svg class="lexicon-icon lexicon-icon-angle-right" role="presentation">
5613          <use xlink:href="https://sampanews.sp.gov.br/o/dialect-theme/images/clay/icons.svg#angle-right" />
5614         </svg>
5615        </a></li>
5616      </ul>
5617     </div>
5618     <div id="jxxl"></div>
5619    </div>
5620   </div>
5621  </div>
5622 </div>
5623 <div class="lfr-layout-structure-item-basic-component-spacer lfr-layout-structure-item-879ce55c-0d52-f67e-653e-325399a2a191 " data-layout-structure-item-id="879ce55c-0d52-f67e-653e-325399a2a191">
5624  <div id="fragment-02d24d3a-20b4-97b8-3983-045044d0de9d">
5625   <div class="py-3"></div>
5626  </div>
5627 </div>
5628</div>
5629<div class="lfr-layout-structure-item-0e4e0286-2d3d-6105-292a-481c7b3628ac lfr-layout-structure-item-container " data-layout-structure-item-id="0e4e0286-2d3d-6105-292a-481c7b3628ac">
5630 <div class="lfr-layout-structure-item-f63c70f8-2fda-8aa8-817c-809b3dfa0582 lfr-layout-structure-item-container  container-fluid container-fluid-max-xl" data-layout-structure-item-id="f63c70f8-2fda-8aa8-817c-809b3dfa0582">
5631  <div class="lfr-layout-structure-item-c073f31e-8df3-6785-2db6-155ced8b712d lfr-layout-structure-item-row " data-layout-structure-item-id="c073f31e-8df3-6785-2db6-155ced8b712d">
5632   <div class="row align-items-lg-center align-items-sm-center align-items-center align-items-md-center flex-lg-row flex-sm-row flex-row flex-md-row">
5633    <div class="col col-lg-4 col-sm-7 col-7 col-md-4 d-flex flex-column">
5634     <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-f1af4e0e-942a-a376-58dd-f3d180ff9c38 " data-layout-structure-item-id="f1af4e0e-942a-a376-58dd-f3d180ff9c38">
5635      <div id="fragment-99790c53-aaea-37ab-c7ad-eed939fe370a">
5636       <div class="component-image overflow-hidden">
5637        <a href="/home"><picture data-fileentryid="29066958"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/29066958/Thumbnail-300x300/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><source media="(max-width:300px)" srcset="/o/adaptive-media/image/29066958/Preview-1000x0/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><source media="(max-width:300px) and (min-width:300px)" srcset="/o/adaptive-media/image/29066958/Thumbnail-300x300/sampanews_LOGO_final_fundo_preto.png?t=1756835438113"><img alt="" class="w-0" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/24771855/26522825/sampanews_LOGO_final_fundo_preto.png/5ab6573f-38dc-40dc-6d3b-a6cf98372dd3?version=1.0&amp;t=1756835438113" data-fileentryid="29066958" data-desktop-configuration="Thumbnail-300x300"></picture></a>
5638       </div>
5639      </div>
5640     </div>
5641    </div>
5642    <div class="col col-lg-8 col-sm-5 col-5 col-md-8 d-flex flex-column">
5643     <div class="lfr-layout-structure-item-basic-component-image lfr-layout-structure-item-ae4cf244-dac1-f2cb-bc24-fbc8b3fb3b9a " data-layout-structure-item-id="ae4cf244-dac1-f2cb-bc24-fbc8b3fb3b9a">
5644      <div id="fragment-63bedb1d-7a2b-b2f0-a229-b5e4180a312b">
5645       <div class="component-image overflow-hidden">
5646        <a href="https://prefeitura.sp.gov.br/"><picture data-fileentryid="26571306"><source media="(min-width:960px)" srcset="/o/adaptive-media/image/26571306/Thumbnail-300x300/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><source media="(max-width:171px)" srcset="/o/adaptive-media/image/26571306/Preview-1000x0/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><source media="(max-width:171px) and (min-width:171px)" srcset="/o/adaptive-media/image/26571306/Thumbnail-300x300/LOGO_PREFEITURA_COLOR.png?t=1750450063978"><img alt="" class="w-0" data-lfr-editable-id="image-square" data-lfr-editable-type="image" src="https://sampanews.sp.gov.br/documents/2477185
56465/25160874/LOGO_PREFEITURA_COLOR.png/8f4791d6-b89f-0902-de12-455983038e88?version=1.0&amp;t=1750450063978" data-fileentryid="26571306" data-desktop-configuration="Thumbnail-300x300"></picture></a>
5647       </div>
5648      </div>
5649     </div>
5650    </div>
5651   </div>
5652  </div>
5653  <div class="lfr-layout-structure-item-ce69843b-d12d-0fff-ea90-3244c32c44a6 lfr-layout-structure-item-row " data-layout-structure-item-id="ce69843b-d12d-0fff-ea90-3244c32c44a6">
5654   <div class="row align-items-lg-start align-items-sm-start align-items-start align-items-md-start flex-lg-row flex-sm-row flex-row flex-md-row">
5655    <div class="col col-lg-12 col-sm-12 col-12 col-md-12">
5656     <div class="lfr-layout-structure-item-footer--copiar- lfr-layout-structure-item-4f7ef626-8090-d7c5-0a6f-e11c0b076aa1 " data-layout-structure-item-id="4f7ef626-8090-d7c5-0a6f-e11c0b076aa1">
5657      <div id="fragment-c4bdb226-bbe5-8dc2-4a7a-d78e565f505b">
5658       <!-- Layout em três colunas -->
5659       <div class="footer-three-columns">
5660        <!-- Primeira coluna - Mapa do Site (Parte 1) -->
5661        <div class="footer-column">
5662         <h3>Mapa do Site</h3>
5663         <ul>
5664          <li><a class="site-map-link" href="/home" tabindex="0" data-lfr-editable-id="home-link" data-lfr-editable-type="link"><b>Home</b></a></li>
5665          <li><a class="site-map-link" href="/noticias" tabindex="0" data-lfr-editable-id="lasted-news-link" data-lfr-editable-type="link">Ultimas Noticias</a></li>
5666          <li><a class="site-map-link" href="/web/sampa-news/animais" tabindex="0" data-lfr-editable-id="animais-link" data-lfr-editable-type="link">Animais</a></li>
5667          <li><a class="site-map-link" href="/artigos" tabindex="0" data-lfr-editable-id="artigos-link" data-lfr-editable-type="link">Artigos</a></li>
5668          <li><a class="site-map-link" href="/assistencia-social" tabindex="0" data-lfr-editable-id="assistencia-social-link" data-lfr-editable-type="link">Assistência Social</a></li>
5669          <li><a class="site-map-link" href="/cidadania" tabindex="0" data-lfr-editable-id="cidadania-link" data-lfr-editable-type="link">Cidadania</a></li>
5670          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/cultura" tabindex="0" data-lfr-editable-id="cultura-link" data-lfr-editable-type="link">Cultura</a></li>
5671          <li><a class="site-map-link" href="/economia" tabindex="0" data-lfr-editable-id="economia-link" data-lfr-editable-type="link">Economia</a></li>
5672          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/educacao" tabindex="0" data-lfr-editable-id="education-link" data-lfr-editable-type="link">Educação</a></li>
5673          <li><a class="site-map-link" href="/esporte-e-lazer" tabindex="0" data-lfr-editable-id="esporte-lazer-link" data-lfr-editable-type="link">Esporte e Lazer</a></li>
5674          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/gestao" tabindex="0" data-lfr-editable-id="gestao-link" data-lfr-editable-type="link">Gestão</a></li>
5675          <li><a class="site-map-link" href="/meio-ambiente" tabindex="0" data-lfr-editable-id="meio-ambiente-link" data-lfr-editable-type="link">Meio Ambiente</a></li>
5676          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/mobilidade" tabindex="0" data-lfr-editable-id="mobilidade-link" data-lfr-editable-type="link">Mobilidade</a></li>
5677         </ul>
5678        </div>
5679        <!-- Segunda coluna - Mapa do Site (Parte 2) -->
5680        <div class="footer-column">
5681         <h3>&nbsp;</h3>
5682         <!-- Espaço para alinhamento visual -->
5683         <ul>
5684          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/habitacao" tabindex="0" data-lfr-editable-id="habitacao-link" data-lfr-editable-type="link">Habitação</a></li>
5685          <li><a class="site-map-link" href="/inclusao" tabindex="0" data-lfr-editable-id="inclusao-link" data-lfr-editable-type="link">Inclusão</a></li>
5686          <li><a class="site-map-link" href="/infraestrutura-obras" tabindex="0" data-lfr-editable-id="infraestrutura-link" data-lfr-editable-type="link">Infraestrutura</a></li>
5687          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/saude" tabindex="0" data-lfr-editable-id="saude-link" data-lfr-editable-type="link">Saúde</a></li>
5688          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/seguranca" tabindex="0" data-lfr-editable-id="seguranca-link" data-lfr-editable-type="link">Segurança</a></li>
5689          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/servicos" tabindex="0" data-lfr-editable-id="servicos-link" data-lfr-editable-type="link">Serviços</a></li>
5690          <li><a class="site-map-link" href="/tecnologia" tabindex="0" data-lfr-editable-id="tecnologia-link" data-lfr-editable-type="link">Tecnologia</a></li>
5691          <li><a class="site-map-link" href="/trabalhos" tabindex="0" data-lfr-editable-id="trabalho-link" data-lfr-editable-type="link">Trabalho</a></li>
5692          <li><a class="site-map-link" href="https://prefeitura.sp.gov.br/web/sampa-news/turismo-e-negocios" tabindex="0" data-lfr-editable-id="turismo-negocios-link" data-lfr-editable-type="link">Turismo e Negócios</a></li>
5693          <!-- 
5694       <li><a class="site-map-link" href="/web/sampa-news/urbanismo" tabindex="0"
5695          data-lfr-editable-id="urban-link" data-lfr-editable-type="link">Urbanismo</a> 
5696			</li>
5697       -->
5698          <li><a class="site-map-link" href="/zeladoria" tabindex="0" data-lfr-editable-id="janitorial-link" data-lfr-editable-type="link">Zeladoria</a></li>
5699         </ul>
5700        </div>
5701        <!-- Terceira coluna - Links Úteis -->
5702        <div class="footer-column">
5703         <h3>Links Úteis</h3>
5704         <ul>
5705          <li><a class="useful-link" href="http://transparencia.prefeitura.sp.gov.br/sistema-eletronico-de-informacao-ao-cidadao-e-sic/" tabindex="0" data-lfr-editable-id="acesso-informacao-l
5705ink" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Acesso à informação</a></li>
5706          <li><a class="useful-link" href="http://transparencia.prefeitura.sp.gov.br/" tabindex="0" data-lfr-editable-id="transparencia-sp-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Transparência São Paulo</a></li>
5707          <li><a class="useful-link" href="https://legislacao.prefeitura.sp.gov.br/" tabindex="0" data-lfr-editable-id="legislacao-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Legislação</a></li>
5708          <li><a class="useful-link" href="https://www.prefeitura.sp.gov.br/cidade/secretarias/ouvidoria/fale_com_a_ouvidoria/index.php?p=227268" tabindex="0" data-lfr-editable-id="ouvidoria-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Ouvidoria</a></li>
5709          <li><a class="useful-link" href="https://sp156.prefeitura.sp.gov.br/portal " tabindex="0" data-lfr-editable-id="sp156-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">SP 156</a></li>
5710          <li><a class="useful-link" href="https://diariooficial.prefeitura.sp.gov.br/md_epubli_controlador.php?acao=inicio" tabindex="0" data-lfr-editable-id="diario-oficial-link" data-lfr-editable-type="link" target="_blank" rel="noopener noreferrer">Diário Oficial</a></li>
5711         </ul>
5712        </div>
5713       </div>
5714      </div>
5715      <style> /* Layout de três colunas */
5716  .footer-three-columns {
5717    display: flex;
5718    gap: 40px;
5719    margin-bottom: 40px;
5720  }
5721
5722  .footer-column {
5723    flex: 1;
5724    min-width: 0;
5725    /* Permite que o flex funcione corretamente */
5726  }
5727
5728  .footer-column h3 {
5729    font-size: 18px;
5730    margin-bottom: 15px;
5731    color: #FFF;
5732    font-weight: bold;
5733  }
5734
5735  .footer-column ul {
5736    list-style: none;
5737    padding: 0;
5738    margin: 0;
5739  }
5740
5741  .footer-column ul li {
5742    margin-bottom: 10px;
5743    font-size: 14px;
5744  }
5745
5746  /* Estilos para links do mapa do site */
5747  .site-map-link {
5748    color: #FFF;
5749    text-decoration: none;
5750    transition: color 0.2s;
5751  }
5752
5753  .site-map-link:hover {
5754    color: #0066cc;
5755  }
5756
5757  /* Estilos para links úteis */
5758  .useful-link {
5759    color: #FFF;
5760    text-decoration: none;
5761    transition: color 0.2s;
5762  }
5763
5764  .useful-link:hover {
5765    color: #0066cc;
5766  }
5767
5768  /* Layout responsivo */
5769  @media (max-width: 768px) {
5770    .footer-three-columns {
5771      flex-wrap: wrap;
5772      gap: 20px;
5773    }
5774    
5775    .footer-column {
5776      flex: 1 1 calc(50% - 10px); /* Duas colunas por linha */
5777      min-width: calc(50% - 10px);
5778    }
5779    
5780    .footer-column:nth-child(3) {
5781      flex: 1 1 100%; /* Terceira coluna ocupa linha inteira */
5782      min-width: 100%;
5783    }
5784
5785    .footer-column h3 {
5786      font-size: 16px;
5787    }
5788    
5789    .social-media-icons {
5790      justify-content: center;
5791    }
5792  }
5793
5794  @media (max-width: 480px) {
5795    .footer-three-columns {
5796      flex-direction: column;
5797      gap: 15px;
5798    }
5799    
5800    .footer-column {
5801      flex: 1 1 100%;
5802      min-width: 100%;
5803    }
5804    
5805    .footer-column ul li {
5806      font-size: 13px;
5807      margin-bottom: 8px;
5808    }
5809  }</style>
5810     </div>
5811    </div>
5812   </div>
5813  </div>
5814  <div class="lfr-layout-structure-item-90db2e82-84d8-cf24-4229-41ba02937a9b lfr-layout-structure-item-row " data-layout-structure-item-id="90db2e82-84d8-cf24-4229-41ba02937a9b">
5815   <div class="row align-items-lg-start align-items-sm-start align-items-start align-items-md-start flex-lg-row flex-sm-row flex-row flex-md-row">
5816    <div class="col col-lg-4 col-sm-12 col-12 col-md-4">
5817     <div class="lfr-layout-structure-item-basic-component-heading lfr-layout-structure-item-b880f6cc-95de-e23e-36ec-2c2c9a613f7b " data-layout-structure-item-id="b880f6cc-95de-e23e-36ec-2c2c9a613f7b">
5818      <div id="fragment-3f9ab8dc-f49a-acce-158d-fce4ffbbb459">
5819       <h5 class="component-heading mb-0 text-break" data-lfr-editable-id="element-text" data-lfr-editable-type="text">Redes Sociais</h5>
5820      </div>
5821     </div>
5822     <div class="lfr-layout-structure-item-header---social-icons lfr-layout-structure-item-a032e5b8-7c93-33cc-6f97-0dc2c85bca3d " data-layout-structure-item-id="a032e5b8-7c93-33cc-6f97-0dc2c85bca3d">
5823      <div id="fragment-dde74449-ca08-6bd9-c477-55d211c44b04">
5824       <div class="header-social-icons">
5825        <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.instagram.com/prefsp"><picture data-fileentryid="26457610"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457610/Preview-1000x0/instagram-white.png?t=1750161447746"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457610/Thumbnail-300x300/instagram-white.png?t=1750161447746">
5825<img src="https://sampanews.sp.gov.br/documents/24771855/25160874/instagram-white.png/aee303e5-2ac4-2da3-251f-8a75e09dbbef?version=1.0&amp;t=1750161447746" alt="Instagram" data-lfr-editable-id="Instagram" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457610"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.facebook.com/PrefSP"><picture data-fileentryid="26457593"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457593/Preview-1000x0/facebook-white.png?t=1750161447373"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457593/Thumbnail-300x300/facebook-white.png?t=1750161447373"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/facebook-white.png/9479f073-7635-32cd-094f-ca53f89d33fe?version=1.0&amp;t=1750161447373" alt="Facebook" data-lfr-editable-id="Facebook" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457593"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://twitter.com/prefsp"><picture data-fileentryid="26457576"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457576/Preview-1000x0/x-white.png?t=1750161446938"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457576/Thumbnail-300x300/x-white.png?t=1750161446938"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/x-white.png/5d0e454f-1c52-3e70-e906-1c782ed7a36d?version=1.0&amp;t=1750161446938" alt="X (Twitter)" data-lfr-editable-id="X (Twitter)" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457576"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/prefeiturasaopaulo"><picture data-fileentryid="26457559"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457559/Preview-1000x0/youtube-white.png?t=1750161446597"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457559/Thumbnail-300x300/youtube-white.png?t=1750161446597"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/youtube-white.png/a1726933-d532-ae73-9f7d-4ff01c427a67?version=1.0&amp;t=1750161446597" alt="YouTube" data-lfr-editable-id="YouTube" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457559"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/cidade-de-sao-paulo/"><picture data-fileentryid="26457542"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457542/Preview-1000x0/linkedin-white.png?t=1750161446196"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457542/Thumbnail-300x300/linkedin-white.png?t=1750161446196"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/linkedin-white.png/df01a457-dfef-1749-3c33-a553bd222984?version=1.0&amp;t=1750161446196" alt="LinkedIn" data-lfr-editable-id="LinkedIn" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457542"></picture></a> <a href="#" target="_blank" rel="noopener noreferrer"> </a><a rel="noopener noreferrer" target="_blank" href="https://www.tiktok.com/@prefsp"><picture data-fileentryid="26457525"><source media="(max-width:40px)" srcset="/o/adaptive-media/image/26457525/Preview-1000x0/tiktio-white.png?t=1750161445875"><source media="(max-width:40px) and (min-width:40px)" srcset="/o/adaptive-media/image/26457525/Thumbnail-300x300/tiktio-white.png?t=1750161445875"><img src="https://sampanews.sp.gov.br/documents/24771855/25160874/tiktio-white.png/1839d1b0-c830-d9cd-774a-491b83fcb26c?version=1.0&amp;t=1750161445875" alt="TikTok" data-lfr-editable-id="TikTok" data-lfr-editable-type="image" tabindex="0" data-fileentryid="26457525"></picture></a>
5826       </div>
5827      </div>
5828     </div>
5829    </div>
5830    <div class="col col-lg-8 col-sm-12 col-12 col-md-8"></div>
5831   </div>
5832  </div>
5833  <div class="lfr-layout-structure-item-basic-component-paragraph lfr-layout-structure-item-2314d530-f758-24d2-1905-25772952756d " data-layout-structure-item-id="2314d530-f758-24d2-1905-25772952756d">
5834   <div id="fragment-93b94519-10b2-f451-4153-b3e9b723053e">
5835    <div class="clearfix component-paragraph text-break" data-lfr-editable-id="element-text" data-lfr-editable-type="rich-text">© COPYRIGHT 2025, Prefeitura Municipal de São Paulo, Viaduto do Chá, 15 - Centro - CEP: 01002-020</div>
5836   </div>
5837   <style>.component-paragraph img {
5838	max-width: 100%;
5839}</style>
5840  </div>
5841 </div>
5842</div>
5843<div class="lfr-layout-structure-item-hand-talk lfr-layout-structure-item-ef5f7ea5-1f45-7376-416f-03a425189823 " data-layout-structure-item-id="ef5f7ea5-1f45-7376-416f-03a425189823">
5844 <div id="fragment-8ac397bc-56ea-77a6-afde-b393e328fe41">
5845  
5845<script src="https://plugin.handtalk.me/web/latest/handtalk.min.js"></script>
5845
5846  <div class="psp-handTalk-plugin alert alert-primary w-100 page-editor-only" role="alert">
5847   <h2 class="psp-heading psp-heading--size-4 text-uppercase font-weight-bold">HAND TALK</h2>
5848   <p>Clique neste componente para ter acesso as configurações do plugin Hand Talk</p>
5849  </div>
5850 </div>
5851 
5851<script type="module">const configuration = {"sideMobile":"right","side":"right","buttonColor":"a11yColorMain","highContrast":false,"mobileEnabled":true,"language":"ptBR-bzs","avatar":"HUGO","textEnabled":true,"alignAsDesktop":true,"align":"default","opacity":100,"alignMobile":"default"}; const fragmentElement = document.querySelector('#fragment-8ac397bc-56ea-77a6-afde-b393e328fe41'); const fragmentElementId = 'fragment-8ac397bc-56ea-77a6-afde-b393e328fe41'; const fragmentEntryLinkNamespace = 'fayq'; const fragmentNamespace = 'fayq'; const layoutMode = 'view';// Token estático - substitua pelo seu token real
5852const HANDTALK_TOKEN = "aa1f4871439ba18dabef482aae5fd934";
5853
5854let ht = new HT({
5855	//general
5856	token: HANDTALK_TOKEN, // Token agora é estático
5857	avatar: configuration.avatar,
5858	textEnabled: configuration.textEnabled,
5859
5860	//mobile
5861	mobileEnabled: configuration.mobileEnabled,
5862	mobileConfig: {
5863		align: configuration.alignAsDesktop ? configuration.align : configuration.alignMobile,
5864		side:  configuration.alignAsDesktop ? configuration.side : configuration.sideMobile,
5865		opacity: configuration.opacity,
5866		highContrast: configuration.highContrast,
5867		colorButton: configuration.colorButton,
5868	},
5869	maxTextSize: 500,
5870	//styles
5871	align: configuration.align,
5872	side: configuration.side,
5873	opacity: configuration.opacity,
5874	highContrast: configuration.highContrast,
5875	colorButton: configuration.colorButton,
5876	parentElement: document.querySelector("body")
5877});
5878
5879if(document.querySelector(".has-edit-mode-menu")){
5880  fragmentElement.querySelector(".psp-handTalk-plugin").classList.remove("d-none");
5881};</script>
5881
5882</div>
5883<div class="lfr-layout-structure-item-atualiza--o-din-mica-de-cores-e-fonte lfr-layout-structure-item-7cb7f005-b2e8-496f-a9f6-a1fe16a5b4af " data-layout-structure-item-id="7cb7f005-b2e8-496f-a9f6-a1fe16a5b4af">
5884 <div id="fragment-0879bbd8-5da9-a143-799c-a48fa4fce216">
5885  <div></div>
5886 </div>
5887 <style>@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400..700;1,400..700&family=Nunito+Sans:ital,opsz,wght@0,6..12,200..1000;1,6..12,200..1000&display=swap');
5888
5889body, h1, h2, h3, h4, h5, a  {
5890font-family: "lora", sans-serif !important;  
5891}
5892  
5893p, span, strong, i, b, button, p > a {
5894font-family: "Nunito Sans", sans-serif !important;  
5895}
5896
5897.logo-section span {
5898font-family: "lora", sans-serif !important;  	
5899}</style>
5900 
5900<script type="module">const configuration = {}; const fragmentElement = document.querySelector('#fragment-0879bbd8-5da9-a143-799c-a48fa4fce216'); const fragmentElementId = 'fragment-0879bbd8-5da9-a143-799c-a48fa4fce216'; const fragmentEntryLinkNamespace = 'rykv'; const fragmentNamespace = 'rykv'; const layoutMode = 'view';(() => {
5901  // Mapeamento de categorias e cores
5902  const colors = {
5903    animais: "#bea8c2",
5904    "meio ambiente": "#4CAF50",
5905    serviços: "#CDDC39",
5906    servicos: "#CDDC39",
5907    mobilidade: "#907895",
5908    transporte: "#907895",
5909    educação: "#A4D0D1",
5910    educacao: "#A4D0D1",
5911    "urbanismo e infraestrutura": "#795548",
5912		urbanismo: "#795548",
5913    cultura: "#BC9C87",
5914    infraestrutura: "#795548",
5915    saúde: "#5084C1",
5916    saude: "#5084C1",
5917    "assistência social": "#D0BDBE",
5918    "assistencia social": "#D0BDBE",
5919    "trabalho e tecnologia": "#03A9F4",
5920    trabalho: "#03A9F4",
5921    segurança: "#B9D4C5",
5922    seguranca: "#B9D4C5",
5923    "esportes e lazer": "#2854C5",
5924    esportes: "#2854C5",
5925    lazer: "#2854C5",
5926    cidadania: "#EAC452",
5927    habitação: "#DA954B",
5928    habitacao: "#DA954B",
5929    economia: "#78A75A",
5930    "turismo e negócios": "#00BCD4",
5931    "turismo e negocios": "#00BCD4",
5932    turismo: "#00BCD4",
5933    inclusão: "#DA954B",
5934    inclusao: "#DA954B",
5935    zeladoria: "#8D6E63",
5936    artigos: "#795548",
5937    obras: "#795548",
5938		gestão: "#982442",
5939		gestao: "#982442",
5940		"Prefeitura Presente": "#ec6608",
5941  };
5942
5943  const selectors = {
5944    background: [
5945      ".card-image-top-category-tag",
5946      ".card-sidebar-news-geral-text-category-tag",
5947      ".card-news-image-top-vertical-category-text",
5948      ".cil-category-text",
5949      ".sampa-podcast-category",
5950      ".text-category-tag",
5951      ".sp-citcr-category",
5952      ".sp-citcr-category-text",
5953			".destacador-image-top-category-tag",
5954    ].join(","),
5955
5956    border: [
5957      ".card-news-image-top-news-vertical-image",
5958      ".card-image-top-image-container",
5959      ".cil-image",
5960      ".sampa-podcast-thumbnail",
5961      ".sp-citcr-img",
5962			".destacador-image-top-image-wrapper-home",
5963    ].join(","),
5964
5965    underline: ".card-sidebar-news-geral-title-underline",
5966    linkBefore: ".card-sidebar-news-geral-text-link",
5967    listItems: ".sp-citcr-text-summary li",
5968  };
5969
5970  // Cache unificado
5971  const processedElements = new WeakSet();
5972
5973  let timeoutId = null;
5974  let observer = null;
5975  let dynamicStyleSheet = null;
5976  let ruleIndex = 0;
5977
5978  // Função para criar/obter stylesheet dinâmica
5979  function getDynamicStyleSheet() {
5980    if (!dynamicStyleSheet) {
5981      const style = document.createElement("style");
5982      style.id = "category-dynamic-styles";
5983      document.head.appendChild(style);
5984      dynamicStyleSheet = style.sheet;
5985    }
5986    return dynamicStyleSheet;
5987  }
5988
5989  // Função para extrair a primeira categoria
5990  function getFirstCategory(text) {
5991    if (!text) return null;
5992    return text.trim().toLowerCase().split(",")[0].trim();
5993  }
5994
5995  // Função para encontrar categoria em um elemento
5996  function findCategoryForElement(el) {
5997    let parent = el;
5998    for (let i = 0; i < 5; i++) {
5999      const categoryEl = parent.querySelector
6000        ? parent.querySelector(selectors.background)
6001        : null;
6002      if (categoryEl) {
6003        return getFirstCategory(categoryEl.textContent);
6004      }
6005      parent = parent.parentElement;
6006      if (!parent) break;
6007    }
6008    return null;
6009  }
6010
6011  // Função para aplicar cor no ::before
6012  function applyBeforeColor(el, category, prefix = "category") {
6013    const uniqueClass = `${prefix}-${category.replace(
6014      /[^a-z0-9]/g,
6015      "-"
6016    )}-${ruleIndex++}`;
6017    el.classList.add(uniqueClass);
6018
6019    const stylesheet = getDynamicStyleSheet();
6020    const content =
6021      prefix === "category-li" ? 'content: "• "; margin-right: 8px;' : "";
6022    const rule = `.${uniqueClass}::before { ${content} color: ${colors[category]} !important; }`;
6023
6024    try {
6025      stylesheet.insertRule(rule, stylesheet.cssRules.length);
6026    } catch (e) {
6027      // Silently handle errors
6028    }
6029  }
6030
6031  function applyStyles() {
6032    // Apply background colors
6033    document.querySelectorAll(selectors.background).forEach((el) => {
6034      if (processedElements.has(el)) return;
6035
6036      const category = getFirstCategory(el.textContent);
6037      if (category && colors[category]) {
6038        el.style.backgroundColor = colors[category];
6039        el.style.color = "#000000";
6040        processedElements.add(el);
6041      }
6042    });
6043
6044    // Apply borders
6045    document.querySelectorAll(selectors.border).forEach((el) => {
6046      if (processedElements.has(el)) return;
6047
6048      const category = findCategoryForElement(el);
6049      if (category && colors[category]) {
6050        el.style.borderBottom = `6px solid ${colors[category]}`;
6051        processedElements.add(el);
6052      }
6053    });
6054
6055    // Apply underline background
6056    document.querySelectorAll(selectors.underline).forEach((el) => {
6057      if (processedElements.has(el)) return;
6058
6059      const category = findCategoryForElement(el);
6060      if (category && colors[category]) {
6061        el.style.backgroundColor = colors[category];
6062        el.style.setProperty("background-color", colors[category], "important");
6063        processedElements.add(el);
6064      }
6065    });
6066
6067    // Apply color to ::before of link elements
6068    document.querySelectorAll(selectors.linkBefore).forEach((el) => {
6069      if (processedElements.has(el)) return;
6070
6071      const category = findCategoryForElement(el);
6072      if (category && colors[category]) {
6073        applyBeforeColor(el, category, "category-link");
6074        processedElements.add(el);
6075      }
6076    });
6077
6078    // Apply color to ::before of li elements in sp-citcr-text-summary
6079    document.querySelectorAll(selectors.listItems).forEach((li) => {
6080      if (processedElements.has(li)) return;
6081
6082      const category = findCategoryForElement(li);
6083      if (category && colors[category]) {
6084        applyBeforeColor(li, category, "category-li");
6085        processedElements.add(li);
6086      }
6087    });
6088  }
6089
6090  // Função para limpar cache
6091  function clearCache() {
6092    processedElements.clear();
6093  }
6094
6095  // Debounced version
6096  function debouncedApplyStyles() {
6097    if (timeoutId) clearTimeout(timeoutId);
6098    timeoutId = setTimeout(() => {
6099      clearCache();
6100      applyStyles();
6101    }, 150);
6102  }
6103
6104  // Inicializar observer
6105  function initObserver() {
6106    if (observer) observer.disconnect();
6107    observer = new MutationObserver(debouncedApplyStyles);
6108    observer.observe(document.body, {
6109      childList: true,
6110      subtree: true,
6111      attributes: false,
6112      characterData: false,
6113    });
6114  }
6115
6116  // Cleanup
6117  function cleanup() {
6118    if (timeoutId) {
6119      clearTimeout(timeoutId);
6120      timeoutId = null;
6121    }
6122    if (observer) {
6123      observer.disconnect();
6124      observer = null;
6125    }
6126    const styleEl = document.getElementById("category-dynamic-styles");
6127    if (styleEl) {
6128      styleEl.remove();
6129      dynamicStyleSheet = null;
6130    }
6131  }
6132
6133  // Inicialização
6134  if (document.readyState === "loading") {
6135    document.addEventListener("DOMContentLoaded", () => {
6136      applyStyles();
6137      initObserver();
6138    });
6139  } else {
6140    applyStyles();
6141    initObserver();
6142  }
6143
6144  // Event listeners
6145  window.addEventListener("beforeunload", cleanup);
6146  window.addEventListener("popstate", cleanup);
6147
6148  document.addEventListener("visibilitychange", () => {
6149    if (document.hidden) {
6150      cleanup();
6151    } else {
6152      initObserver();
6153    }
6154  });
6155
6156  // Debug function
6157  window.forceApplyStyles = () => {
6158    clearCache();
6159    applyStyles();
6160  };
6161})();
6162;</script>
6162
6163</div>
6164
6165
6166
6167
6168		</div>
6169	
6170	
6171
6172
6173<form action="#" aria-hidden="true" class="hide" id="hrefFm" method="post" name="hrefFm"><span></span><button hidden type="submit">Oculto</button></form>
6174
6175	
6176		</div>
6177
6178	</div>
6179</div>
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284	
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294	
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304<script type="text/javascript">
6305
6306	
6307		
6308		
6309
6310			
6311
6312			
6313		
6314	
6315
6316
6317</script>
6317<script>
6318
6319</script>
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335	
6336
6337	
6338
6339	
6340
6341	
6342
6343	
6344
6345	
6346
6347	
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361	
6361<script type="module">
6362		import {Session} from '/o/frontend-js-web/__liferay__/legacy.js';
6363
6364		if (Liferay.Session && Liferay.Session.destructor) {
6365			Liferay.Session.destructor();
6366		}
6367
6368		Liferay.Session = new Session(
6369			{
6370				autoExtend: true,
6371				redirectOnExpire: false,
6372				redirectUrl: 'https\x3a\x2f\x2fsampanews\x2esp\x2egov\x2ebr\x2fweb\x2fprefeitura-de-sao-paulo\x2f',
6373				rememberMe: false,
6374				sessionLength: 900,
6375				sessionTimeoutOffset: 250,
6376				warningLength: 60
6377			})
6378	</script>
6378
6379
6380
6381<script type="text/javascript">
6382
6383					window.dataLayer = window.dataLayer || [];
6384					function gtag(){dataLayer.push(arguments);}
6385					gtag('js', new Date());
6386					gtag('config', 'GFQF2C97ZC');
6387
6388					
6389
6390					
6391				
6392(function() {var $ = AUI.$;var _ = AUI._;
6393	var onShare = function (data) {
6394		if (window.Analytics) {
6395			Analytics.send('shared', 'SocialBookmarks', {
6396				className: data.className,
6397				classPK: data.classPK,
6398				type: data.type,
6399				url: data.url,
6400			});
6401		}
6402	};
6403
6404	var onDestroyPortlet = function () {
6405		Liferay.detach('socialBookmarks:share', onShare);
6406		Liferay.detach('destroyPortlet', onDestroyPortlet);
6407	};
6408
6409	Liferay.on('socialBookmarks:share', onShare);
6410	Liferay.on('destroyPortlet', onDestroyPortlet);
6411})();
6412(function() {var $ = AUI.$;var _ = AUI._;
6413	var onVote = function (event) {
6414		if (window.Analytics) {
6415			let title = event.contentTitle;
6416
6417			if (!title) {
6418				const dmNode = document.querySelector(
6419					'[data-analytics-file-entry-id="' + event.classPK + '"]'
6420				);
6421
6422				if (dmNode) {
6423					title = dmNode.dataset.analyticsFileEntryTitle;
6424				}
6425			}
6426
6427			Analytics.send('VOTE', 'Ratings', {
6428				className: event.className,
6429				classPK: event.classPK,
6430				externalReferenceCode: event.externalReferenceCode,
6431				ratingType: event.ratingType,
6432				score: event.score,
6433				title,
6434			});
6435		}
6436	};
6437
6438	var onDestroyPortlet = function () {
6439		Liferay.detach('ratings:vote', onVote);
6440		Liferay.detach('destroyPortlet', onDestroyPortlet);
6441	};
6442
6443	Liferay.on('ratings:vote', onVote);
6444	Liferay.on('destroyPortlet', onDestroyPortlet);
6445})();
6446(function() {var $ = AUI.$;var _ = AUI._;
6447	var onDestroyPortlet = function () {
6448		Liferay.detach('messagePosted', onMessagePosted);
6449		Liferay.detach('destroyPortlet', onDestroyPortlet);
6450	};
6451
6452	Liferay.on('destroyPortlet', onDestroyPortlet);
6453
6454	var onMessagePosted = function (event) {
6455		if (window.Analytics) {
6456			const eventProperties = {
6457				className: event.className,
6458				classPK: event.classPK,
6459				commentId: event.commentId,
6460				externalReferenceCode: event.externalReferenceCode,
6461				text: event.text,
6462			};
6463
6464			const blogNode = document.querySelector(
6465				'[data-analytics-asset-id="' + event.classPK + '"]'
6466			);
6467
6468			const dmNode = document.querySelector(
6469				'[data-analytics-file-entry-id="' + event.classPK + '"]'
6470			);
6471
6472			if (blogNode) {
6473				eventProperties.title = blogNode.dataset.analyticsAssetTitle;
6474			}
6475			else if (dmNode) {
6476				eventProperties.title = dmNode.dataset.analyticsFileEntryTitle;
6477			}
6478
6479			Analytics.send('posted', 'Comment', eventProperties);
6480		}
6481	};
6482
6483	Liferay.on('messagePosted', onMessagePosted);
6484})();
6485
6486	function getValueByAttribute(node, attr) {
6487		return (
6488			node.dataset[attr] ||
6489			(node.parentElement && node.parentElement.dataset[attr])
6490		);
6491	}
6492
6493	function sendDocumentDownloadedAnalyticsEvent(anchor) {
6494		var fileEntryId = getValueByAttribute(
6495			anchor,
6496			'analyticsFileEntryId'
6497		);
6498		var title = getValueByAttribute(
6499			anchor,
6500			'analyticsFileEntryTitle'
6501		);
6502		var version = getValueByAttribute(
6503			anchor,
6504			'analyticsFileEntryVersion'
6505		);
6506		var externalReferenceCode = getValueByAttribute(
6507			anchor,
6508			'analyticsExternalReferenceCode'
6509		);
6510
6511		if (fileEntryId) {
6512			Analytics.send('documentDownloaded', 'Document', {
6513				externalReferenceCode,
6514				fileEntryId,
6515				groupId: themeDisplay.getScopeGroupId(),
6516				preview:
6517					!!window._com_liferay_document_library_analytics_isViewFileEntry,
6518				title,
6519				version,
6520			});
6521		}
6522	}
6523
6524	function handleDownloadClick(event) {
6525		if (window.Analytics) {
6526			if (event.target.nodeName.toLowerCase() === 'a') {
6527				sendDocumentDownloadedAnalyticsEvent(
6528					event.target
6529				);
6530			}
6531			else if (
6532				event.target.parentNode &&
6533				event.target.parentNode.nodeName.toLowerCase() === 'a'
6534			) {
6535				sendDocumentDownloadedAnalyticsEvent(
6536					event.target.parentNode
6537				);
6538			}
6539			else {
6540				var target = event.target;
6541				var matchTextContent =
6542					target.textContent &&
6543					target.textContent.toLowerCase() ===
6544						'baixar';
6545				var matchTitle =
6546					target.title && target.title.toLowerCase() === 'download';
6547				var matchAction = target.action === 'download';
6548				var matchLexiconIcon = !!target.querySelector(
6549					'.lexicon-icon-download'
6550				);
6551				var matchLexiconClassName = target.classList.contains(
6552					'lexicon-icon-download'
6553				);
6554				var matchParentTitle =
6555					target.parentNode &&
6556					target.parentNode.title &&
6557					target.parentNode.title.toLowerCase() === 'download';
6558				var matchParentLexiconClassName =
6559					target.parentNode &&
6560					target.parentNode.classList.contains('lexicon-icon-download');
6561
6562				if (
6563					matchTextContent ||
6564					matchTitle ||
6565					matchParentTitle ||
6566					matchAction ||
6567					matchLexiconIcon ||
6568					matchLexiconClassName ||
6569					matchParentLexiconClassName
6570				) {
6571					var selectedFiles = document.querySelectorAll(
6572						'.form .custom-control-input:checked'
6573					);
6574
6575					selectedFiles.forEach(({value}) => {
6576						var selectedFile = document.querySelector(
6577							'[data-analytics-file-entry-id="' + value + '"]'
6578						);
6579
6580						sendDocumentDownloadedAnalyticsEvent(
6581							selectedFile
6582						);
6583					});
6584				}
6585			}
6586		}
6587	}
6588
6589	Liferay.once('destroyPortlet', () => {
6590		document.body.removeEventListener(
6591			'click',
6592			handleDownloadClick
6593		);
6594	});
6595
6596	Liferay.once('portletReady', () => {
6597		document.body.addEventListener(
6598			'click',
6599			handleDownloadClick
6600		);
6601	});
6602
6603
6604	if (window.svg4everybody && Liferay.Data.ICONS_INLINE_SVG) {
6605		svg4everybody(
6606			{
6607				polyfill: true,
6608				validate: function (src, svg, use) {
6609					return !src || !src.startsWith('#');
6610				}
6611			}
6612		);
6613	}
6614
6615(function() {var $ = AUI.$;var _ = AUI._;
6616	Liferay.Util.delegate(
6617		document,
6618		'focusin',
6619		'.portlet',
6620		function(event) {
6621			event.delegateTarget.closest('.portlet').classList.add('open');
6622		}
6623	);
6624
6625	Liferay.Util.delegate(
6626		document,
6627		'focusout',
6628		'.portlet',
6629		function(event) {
6630			event.delegateTarget.closest('.portlet').classList.remove('open');
6631		}
6632	);
6633})();
6634
6635	// <![CDATA[
6636
6637		
6638
6639		Liferay.currentURL = '\x2fnoticias';
6640		Liferay.currentURLEncoded = '\x252Fnoticias';
6641
6642	// ]]>
6643
6644
6645	
6646		Liferay.Portlet.register('com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck');
6647	
6648
6649	Liferay.Portlet.onLoad(
6650		{
6651			canEditTitle: false,
6652			columnPos: 0,
6653			isAjaxable: true,
6654			isStatic: 'end',
6655			namespacedId: 'p_p_id_com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck_',
6656			portletId: 'com_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck',
6657			refreshURL: '\x2fc\x2fportal\x2frender_portlet\x3fp_l_id\x3d24592\x26p_p_id\x3dcom_liferay_portal_search_web_search_bar_portlet_SearchBarPortlet_INSTANCE_vbck\x26p_p_lifecycle\x3d0\x26p_t_lifecycle\x3d0\x26p_p_state\x3dnormal\x26p_p_mode\x3dview\x26p_p_col_id\x3dnull\x26p_p_col_pos\x3dnull\x26p_p_col_count\x3dnull\x26p_p_static\x3d1\x26p_p_isolated\x3d1\x26currentURL\x3d\x252Fnoticias',
6658			refreshURLData: {}
6659		}
6660	);
6661
6662
6663</script>
6663<script type="module">
6664import {InfoItemActionHandler as ComponentModule} from '/o/layout-taglib/__liferay__/render.js';
6665import {PaginationBar as componentModule} from '/o/frontend-taglib-clay/__liferay__/index.js';
6666import {NumericCollectionPaginationPropsTransformer as propsTransformer} from '/o/layout-taglib/__liferay__/render.js';
6667import {render} from '/o/portal-template-react-renderer-impl/__liferay__/index.js';
6668AUI().use(
6669  'liferay-menu',
6670function(A) {
6671{
6672render(componentModule, propsTransformer({"activeDelta":9,"totalItems":788,"componentId":null,"activePage":1,"hasBodyContent":false,"additionalProps":{"collectionId":"2b196b45-a941-1fe2-f879-a1eb3a1dd39a"},"locale":"{\"country\": \"BR\", \"displayCountry\": \"Brazil\", \"displayLanguage\": \"Portuguese\", \"displayName\": \"Portuguese (Brazil)\", \"displayScript\": \"\", \"displayVariant\": \"\", \"extensionKeys\":[],\"ISO3Country\": \"BRA\", \"ISO3Language\": \"por\", \"language\": \"pt\", \"script\": \"\", \"unicodeLocaleAttributes\":[], \"unicodeLocaleKeys\":[], \"variant\": \"\"}","labels":{"perPageItems":"{0} Itens","selectPerPageItems":"{0} Itens","paginationResults":"Exibindo {0} - {1} de {2} resultados."},"disabledPages":null,"cssClass":"pb-2 pt-3","portletId":null,"showDeltasDropDown":false,"id":null,"deltas":[{"label":10},{"label":20},{"label":30},{"label":50}],"ellipsisBuffer":2}), 'jxxl');
6673}
6674{
6675Liferay.component('infoItemActionComponent', new ComponentModule({"executeInfoItemActionURL":"https:\/\/sampanews.sp.gov.br\/c\/portal\/execute_info_item_action?p_l_mode=view&plid=24592","namespace":"","spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg"}), { destroyOnNavigate: true, portletId: ''});
6676}
6677(function() {
6678var $ = AUI.$;var _ = AUI._;
6679	new Liferay.Menu();
6680
6681	var liferayNotices = Liferay.Data.notices;
6682
6683	for (var i = 0; i < liferayNotices.length; i++) {
6684		Liferay.Util.openToast(liferayNotices[i]);
6685	}
6686
6687})();
6688});
6689
6690</script>
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700<script src="/o/dialect-theme/js/main.(Dqv62sm20Lg).js" type="text/javascript"></script>
6700
6701
6702
6703
6704
6705<script type="module">
6706import {main} from '/o/frontend-js-tooltip-support-web/__liferay__/index.js';
6707{
6708main();
6709}
6710
6711</script>
6711<script type="module">
6712import {main} from '/o/frontend-js-bootstrap-support-web/__liferay__/index.js';
6713{
6714main();
6715}
6716
6717</script>
6717<script type="text/javascript">
6718Liferay.CustomDialogs = {enabled: false};
6719
6720</script>
6720<script>
6721
6722</script>
6722<script type="module">
6723import {runThirdPartyCookiesInterval} from '/o/cookies-banner-web/__liferay__/index.js';
6724{
6725runThirdPartyCookiesInterval();
6726}
6727
6728</script>
6728
6729
6730
6731
6732
6733
6734
6735
6736<div aria-label="banner cookies" class="cookies-banner cookies-banner-bottom" role="dialog">
6737	
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807	
6808
6809	<div class="portlet-boundary portlet-boundary_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_  portlet-static portlet-static-end portlet-borderless portlet-cookies-banner " id="p_p_id_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_">
6810		<span id="p_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet"></span>
6811
6812
6813
6814
6815	
6816
6817	
6818		
6819		
6820			
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844<div class="container-fluid container-fluid-max-xl container-view">
6845	<div class="row">
6846		<div class="autofit-row autofit-padded-no-gutters autofit-row-center autofit-float-sm-down px-2 px-md-0">
6847			<div class="autofit-col autofit-col-expand">
6848				<p class="mb-2 text-5 text-weight-semi-bold">
6849					A Prefeitura de São Paulo valoriza sua privacidade!
6850				</p>
6851
6852				<p class="mb-0">
6853					Em nosso site, utilizamos cookies, que são arquivos salvos no seu computador para auxiliar a coletar informações sobre suas preferências e sobre outras páginas da internet visitadas por você a fim de otimizar sua experiência de navegação em nosso site, apresentando conteúdos personalizados. Ao selecionar &#34;Aceitar todos&#34;, você consente com a utilização de cookies.
6854
6855					<a class="" href="https://prefeitura.sp.gov.br/web/controladoria_geral/w/acesso-%C3%A0-prote%C3%A7%C3%A3o-de-dados-pessoais" >Saiba mais</a>
6856				</p>
6857			</div>
6858
6859			<div class="autofit-col">
6860				<button class="btn btn-sm btn-link" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_configurationButton" type="button" >Configuração</button>
6861			</div>
6862
6863			<div class="autofit-col">
6864				<button class="btn btn-sm btn-secondary" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_acceptAllButton" type="button" >Aceitar tudo</button>
6865			</div>
6866
6867			
6868				<div class="autofit-col">
6869					<button class="btn btn-sm btn-secondary" id="_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_declineAllButton" type="button" >Recusar tudo</button>
6870				</div>
6871			
6872		</div>
6873	</div>
6874</div>
6875
6876<script type="module">
6877import {CookiesBanner as ComponentModule} from '/o/cookies-banner-web/__liferay__/index.js';
6878{
6879Liferay.component('CookiesBanner', new ComponentModule({"configurationURL":"https:\/\/sampanews.sp.gov.br\/noticias?p_p_id=com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet&p_p_lifecycle=0&p_p_state=pop_up&_com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet_mvcPath=%2Fcookies_banner_configuration%2Fview.jsp&p_p_auth=DEj90x1c","consentRenewalPeriod":12,"optionalConsentCookieTypeNames":["CONSENT_TYPE_FUNCTIONAL","CONSENT_TYPE_PERFORMANCE","CONSENT_TYPE_PERSONALIZATION"],"spritemap":"https:\/\/sampanews.sp.gov.br\/o\/dialect-theme\/images\/clay\/icons.svg","configurationNamespace":"com_liferay_cookies_banner_web_portlet_CookiesBannerConfigurationPortlet","modifiedDate":"1789563948751","namespace":"_com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet_","requiredConsentCookieTypeNames":["CONSENT_TYPE_NECESSARY"],"includeDeclineAllButton":true,"title":"Configuração de cookie"}), { destroyOnNavigate: true, portletId: 'com_liferay_cookies_banner_web_portlet_CookiesBannerPortlet'});
6880}
6881
6882</script>
6882
6883		
6884	
6885
6886
6887
6888
6889
6890
6891
6892	</div>
6893
6894
6895
6896
6897
6898
6899
6900</div>
6900<script data-senna-track="temporary" type="text/javascript"  src="https://plugin.handtalk.me/web/latest/handtalk.min.js"></script>
6900<script data-senna-track="temporary" type="text/javascript"  src="/o/psp-js/main.js"></script>
6900
6901</body>
6902
6903</html>
6904		
6905	
6906

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.