1<!doctype html> 2<html lang="pt-PT"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <link rel="profile" href="https://gmpg.org/xfn/11"> 7 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 8 <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> 9
9<script> 10 // TARGETED: Only protect visible, interactive elements from focus interference 11 (function() { 12 if (window.targetedFocusProtection) return; 13 window.targetedFocusProtection = true; 14 15 console.log('ð¯ TARGETED FOCUS PROTECTION ACTIVE'); 16 17 // Function to check if element should be protected 18 function shouldProtectElement(element) { 19 if (!element || !element.tagName) return false; 20 21 // Don't protect hidden elements (aria-hidden, display:none, etc.) 22 if (element.getAttribute('aria-hidden') === 'true' || 23 element.style.display === 'none' || 24 element.style.visibility === 'hidden' || 25 element.hidden) { 26 return false; 27 } 28 29 // Only protect visible, interactive elements 30 const interactiveTags = ['A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; 31 const isInteractive = interactiveTags.includes(element.tagName) || 32 element.getAttribute('tabindex') || 33 element.getAttribute('role') === 'button' || 34 element.getAttribute('role') === 'link'; 35 36 return isInteractive; 37 } 38 39 // Store original functions 40 const ORIGINALS = { 41 preventDefault: Event.prototype.preventDefault, 42 stopPropagation: Event.prototype.stopPropagation, 43 stopImmediatePropagation: Event.prototype.stopImmediatePropagation 44 }; 45 46 let blockedCount = 0; 47 48 // TARGETED OVERRIDE: Only block focus interference on visible interactive elements 49 Event.prototype.preventDefault = function() { 50 if ((this.type === 'focus' || this.type === 'blur' || 51 this.type === 'focusin' || this.type === 'focusout') && 52 shouldProtectElement(this.target)) { 53 console.log('ð¯ BLOCKED preventDefault on visible element:', this.target); 54 blockedCount++; 55 return false; 56 } 57 return ORIGINALS.preventDefault.call(this); 58 }; 59 60 Event.prototype.stopPropagation = function() { 61 if ((this.type === 'focus' || this.type === 'blur' || 62 this.type === 'focusin' || this.type === 'focusout') && 63 shouldProtectElement(this.target)) { 64 console.log('ð¯ BLOCKED stopPropagation on visible element:', this.target); 65 blockedCount++; 66 return false; 67 } 68 return ORIGINALS.stopPropagation.call(this); 69 }; 70 71 Event.prototype.stopImmediatePropagation = function() { 72 if ((this.type === 'focus' || this.type === 'blur' || 73 this.type === 'focusin' || this.type === 'focusout') && 74 shouldProtectElement(this.target)) { 75 console.log('ð¯ BLOCKED stopImmediatePropagation on visible element:', this.target); 76 blockedCount++; 77 return false; 78 } 79 return ORIGINALS.stopImmediatePropagation.call(this); 80 }; 81 82 // Report status 83 setInterval(function() { 84 if (blockedCount > 0) { 85 console.log('ð¯ Targeted Protection: Blocked ' + blockedCount + ' focus interferences'); 86 } 87 }, 10000); 88 89 console.log('ð¯ Targeted focus protection initialized - only protecting visible interactive elements'); 90 })(); 91 </script>
91 92 93 <!-- This site is optimized with the Yoast SEO plugin v25.8 - https://yoast.com/wordpress/plugins/seo/ --> 94 <title>Informação Financeira - MunicÃpio de Penalva do Castelo</title> 95 <link rel="canonical" href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/" /> 96 <meta property="og:locale" content="pt_PT" /> 97 <meta property="og:type" content="article" /> 98 <meta property="og:title" content="Informação Financeira - MunicÃpio de Penalva do Castelo" /> 99 <meta property="og:description" content="Documentos" /> 100 <meta property="og:url" content="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/" /> 101 <meta property="og:site_name" content="MunicÃpio de Penalva do Castelo" /> 102 <meta property="article:modified_time" content="2021-02-10T11:28:33+00:00" /> 103 <meta name="twitter:card" content="summary_large_image" /> 104 <meta name="twitter:label1" content="Tempo estimado de leitura" /> 105 <meta name="twitter:data1" content="1 minuto" /> 106
106<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/","url":"https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/","name":"Informação Financeira - MunicÃpio de Penalva do Castelo","isPartOf":{"@id":"https://www.cm-penalvadocastelo.pt/#website"},"datePublished":"2021-02-10T11:00:14+00:00","dateModified":"2021-02-10T11:28:33+00:00","breadcrumb":{"@id":"https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/"]}]},{"@type":"BreadcrumbList","@id":"https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"INÃCIO","item":"https://www.cm-penalvadocastelo.pt/"},{"@type":"ListItem","position":2,"name":"MUNICÃPIO","item":"https://www.cm-penalvadocastelo.pt/municipio/"},{"@type":"ListItem","position":3,"name":"Informação Financeira"}]},{"@type":"WebSite","@id":"https://www.cm-penalvadocastelo.pt/#website","url":"https://www.cm-penalvadocastelo.pt/","name":"MunicÃpio de Penalva do Castelo","description":"Câmara Municipal","publisher":{"@id":"https://www.cm-penalvadocastelo.pt/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.cm-penalvadocastelo.pt/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https://www.cm-penalvadocastelo.pt/#organization","name":"MunicÃpio de Penalva do Castelo","url":"https://www.cm-penalvadocastelo.pt/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https://www.cm-penalvadocastelo.pt/#/schema/logo/image/","url":"https://www.cm-penalvadocastelo.pt/wp-content/uploads/2011/12/logo2_GTF.jpg","contentUrl":"https://www.cm-penalvadocastelo.pt/wp-content/uploads/2011/12/logo2_GTF.jpg","width":250,"height":320,"caption":"MunicÃpio de Penalva do Castelo"},"image":{"@id":"https://www.cm-penalvadocastelo.pt/#/schema/logo/image/"}}]}</script>
106 107 <!-- / Yoast SEO plugin. --> 108 109 110<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 111<link rel="alternate" type="application/rss+xml" title="MunicÃpio de Penalva do Castelo » Feed" href="https://www.cm-penalvadocastelo.pt/feed/" /> 112<link rel="alternate" type="application/rss+xml" title="MunicÃpio de Penalva do Castelo » Feed de comentários" href="https://www.cm-penalvadocastelo.pt/comments/feed/" />
113<script> 114window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/16.0.1\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.cm-penalvadocastelo.pt\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.10"}}; 115/*! This file is auto-generated */ 116!function(s,n){var o,i,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),a=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===a[t]})}function u(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);for(var n=e.getImageData(16,16,1,1),a=0;a<n.data.length;a++)if(0!==n.data[a])return!1;return!0}function f(e,t,n,a){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!a(e,"\ud83e\udedf")}return!1}function g(e,t,n,a){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):s.createElement("canvas"),o=r.getContext("2d",{willReadFrequently:!0}),i=(o.textBaseline="top",o.font="600 32px Arial",{});return e.forEach(function(e){i[e]=t(o,e,n,a)}),i}function t(e){var t=s.createElement("script");t.src=e,t.defer=!0,s.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",i=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){s.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+g.toString()+"("+[JSON.stringify(i),f.toString(),p.toString(),u.toString()].join(",")+"));",a=new Blob([e],{type:"text/javascript"}),r=new Worker(URL.createObjectURL(a),{name:"wpTestEmojiSupports"});return void(r.onmessage=function(e){c(n=e.data),r.terminate(),t(n)})}catch(e){}c(n=g(i,f,p,u))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); 117</script>
117 118<link rel='stylesheet' id='mec-select2-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/select2/select2.min.css?ver=7.36.4.1790945426.1789571096' media='all' /> 119<link rel='stylesheet' id='mec-font-icons-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/css/iconfonts.css?ver=7.36.4.1790945426.1789571096' media='all' /> 120<link rel='stylesheet' id='mec-frontend-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/css/frontend.min.css?ver=7.36.4.1790945426.1789571096' media='all' /> 121<link rel='stylesheet' id='accessibility-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/css/a11y.min.css?ver=7.36.4.1790945426.1789571096' media='all' /> 122<link rel='stylesheet' id='mec-tooltip-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/tooltip/tooltip.css?ver=7.36.4.1790945426.1789571096' media='all' /> 123<link rel='stylesheet' id='mec-tooltip-shadow-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/tooltip/tooltipster-sideTip-shadow.min.css?ver=7.36.4.1790945426.1789571096' media='all' /> 124<link rel='stylesheet' id='featherlight-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/featherlight/featherlight.css?ver=7.36.4.1790945426.1789571096' media='all' /> 125<link rel='stylesheet' id='mec-custom-google-font-css' href='https://fonts.googleapis.com/css?family=Nunito%3A300%2C+regular%2C+700%2C+%7CNunito%3A700%2C+700%2C+700%2C+&subset=latin%2Clatin-ext&ver=7.36.4.1790945426' media='all' /> 126<link rel='stylesheet' id='mec-lity-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/lity/lity.min.css?ver=7.36.4.1790945426.1789571096' media='all' /> 127<link rel='stylesheet' id='mec-general-calendar-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/css/mec-general-calendar.css?ver=7.36.4.1790945426.1789571096' media='all' /> 128<link rel='stylesheet' id='wpfd-modal-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/css/leanmodal.css?ver=6.8.10' media='all' /> 129<link rel='stylesheet' id='wpfd-elementor-widget-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/includes/elementor/assets/css/elementor.widgets.css?ver=6.0.5' media='all' /> 130<link rel='stylesheet' id='wpfd-jquery-tagit-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/css/jquery.tagit.css?ver=6.8.10' media='all' /> 131<link rel='stylesheet' id='wpfd-daterangepicker-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/ui/css/daterangepicker.css?ver=6.0.5' media='all' /> 132<link rel='stylesheet' id='wpfd-chosen-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/css/chosen.css?ver=6.0.5' media='all' /> 133<link rel='stylesheet' id='wpfd-jquery-qtip-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/ui/css/jquery.qtip.css?ver=6.0.5' media='all' /> 134<link rel='stylesheet' id='wpfd-elementor-widget-dark-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/includes/elementor/assets/css/elementor.dark.css?ver=4.2.4' media='(prefers-color-scheme: dark)' /> 135<link rel='stylesheet' id='wpfd-elementor-widget-light-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/includes/elementor/assets/css/elementor.light.css?ver=4.2.4' media='(prefers-color-scheme: light)' /> 136<style id='wp-emoji-styles-inline-css'> 137 138 img.wp-smiley, img.emoji { 139 display: inline !important; 140 border: none !important; 141 box-shadow: none !important; 142 height: 1em !important; 143 width: 1em !important; 144 margin: 0 0.07em !important; 145 vertical-align: -0.1em !important; 146 background: none !important; 147 padding: 0 !important; 148 } 149</style> 150<link rel='stylesheet' id='wp-block-library-css' href='https://www.cm-penalvadocastelo.pt/wp-includes/css/dist/block-library/style.min.css?ver=6.8.10' media='all' /> 151<style id='global-styles-inline-css'> 152:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,
1520,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:root { --wp--style--global--content-size: 800px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}
152a:where(:not(.wp-element-button)){text-decoration: underline;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;line-height: inherit;padding: calc(0.667em + 2px) calc(1.333em + 2px);text-decoration: none;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
152.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 153:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} 154</style> 155<link rel='stylesheet' id='image-map-pro-dist-css-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/image-map-pro-wordpress/css/image-map-pro.min.css?ver=5.3.2' media='' /> 156<link rel='stylesheet' id='dashicons-css' href='https://www.cm-penalvadocastelo.pt/wp-includes/css/dashicons.min.css?ver=6.8.10' media='all' /> 157<link rel='stylesheet' id='wpfd-viewer-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/site/assets/css/viewer.css?ver=6.0.5' media='all' /> 158<link rel='stylesheet' id='hello-elementor-css' href='https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-elementor/assets/css/reset.css?ver=3.4.4' media='all' /> 159<link rel='stylesheet' id='hello-elementor-theme-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-elementor/assets/css/theme.css?ver=3.4.4' media='all' /> 160<link rel='stylesheet' id='hello-elementor-header-footer-css' href='https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-elementor/assets/css/header-footer.css?ver=3.4.4' media='all' /> 161<link rel='stylesheet' id='elementor-frontend-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/frontend.min.css?ver=4.2.4' media='all' /> 162<link rel='stylesheet' id='elementor-post-9270-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/css/post-9270.css?ver=1790256878' media='all' /> 163<link rel='stylesheet' id='widget-image-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-image.min.css?ver=4.2.4' media='all' /> 164<link rel='stylesheet' id='widget-social-icons-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-social-icons.min.css?ver=4.2.4' media='all' /> 165<link rel='stylesheet' id='e-apple-webkit-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/conditionals/apple-webkit.min.css?ver=4.2.4' media='all' /> 166<link rel='stylesheet' id='widget-search-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/css/widget-search.min.css?ver=4.2.3' media='all' /> 167<link rel='stylesheet' id='widget-heading-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-heading.min.css?ver=4.2.4' media='all' /> 168<link rel='stylesheet' id='widget-divider-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-divider.min.css?ver=4.2.4' media='all' /> 169<link rel='stylesheet' id='widget-icon-list-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-icon-list.min.css?ver=4.2.4' media='all' /> 170<link rel='stylesheet' id='e-shapes-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/conditionals/shapes.min.css?ver=4.2.4' media='all' /> 171<link rel='stylesheet' id='widget-spacer-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-spacer.min.css?ver=4.2.4' media='all' /> 172<link rel='stylesheet' id='widget-breadcrumbs-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/css/widget-breadcrumbs.min.css?ver=4.2.3' media='all' /> 173<link rel='stylesheet' id='widget-icon-box-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/css/widget-icon-box.min.css?ver=4.2.4' media='all' /> 174<link rel='stylesheet' id='elementor-icons-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/eicons/css/elementor-icons.min.css?ver=5.53.0' media='all' /> 175<link rel='stylesheet' id='elementor-post-7-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/css/post-7.css?ver=1790256878' media='all' /> 176<link rel='stylesheet' id='wb-slick-library-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/post-carousel-slider-for-elementor-pro//assets/vendors/slick/slick.css?ver=1.0.0' media='all' /> 177<link rel='stylesheet' id='wb-slick-theme-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/post-carousel-slider-for-elementor-pro//assets/vendors/slick/slick-theme.css?ver=1.0.0' media='all' /> 178<link rel='stylesheet' id='wb-ps-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/post-carousel-slider-for-elementor-pro//assets/css/style.css?ver=1.0.0' media='all' /> 179<link rel='stylesheet' id='she-header-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/sticky-header-effects-for-elementor/assets/css/she-header-style.css?ver=2.1.0' media='all' /> 180<link rel='stylesheet' id='elementor-post-2913-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/css/post-2913.css?ver=1790257010' media='all' /> 181<link rel='stylesheet' id='elementor-post-14-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/css/post-14.css?ver=1790256878' media='all' /> 182<link rel='stylesheet' id='elementor-post-2812-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/css/post-2812.css?ver=1790257303' media='all' /> 183<link rel='stylesheet' id='hello-elementor-child-style-css' href='https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-theme-child-master/style.css?ver=2.0.0' media='all' /> 184<link rel='stylesheet' id='the-grid-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/the-grid/frontend/assets/css/the-grid.min.css?ver=2.7.9.1' media='all' /> 185<style id='the-grid-inline-css'> 186.tolb-holder{background:rgba(0,0,0,0.8)}.tolb-holder .tolb-close,.tolb-holder .tolb-title,.tolb-holder .tolb-counter,.tolb-holder .tolb-next i,.tolb-holder .tolb-prev i{color:#ffffff}.tolb-holder .tolb-load{border-color:rgba(255,255,255,0.2);border-left:3px solid #ffffff} 187.to-heart-icon,.to-heart-icon svg,.to-post-like,.to-post-like .to-like-count{position:relative;display:inline-block}.to-post-like{width:auto;cursor:pointer;font-weight:400}.to-heart-icon{float:left;margin:0 4px 0 0}.to-heart-icon svg{overflow:visible;width:15px;height:14px}.to-heart-icon g{-webkit-transform:scale(1);transform:scale(1)}.to-heart-icon path{-webkit-transform:scale(1);transform:scale(1);transition:fill .4s ease,stroke .4s ease}.no-liked .to-heart-icon path{fill:#999;stroke:#999}.empty-heart .to-heart-icon path{fill:transparent!important;stroke:#999}
187.liked .to-heart-icon path,.to-heart-icon svg:hover path{fill:#ff6863!important;stroke:#ff6863!important}@keyframes heartBeat{0%{transform:scale(1)}20%{transform:scale(.8)}30%{transform:scale(.95)}45%{transform:scale(.75)}50%{transform:scale(.85)}100%{transform:scale(.9)}}@-webkit-keyframes heartBeat{0%,100%,50%{-webkit-transform:scale(1)}20%{-webkit-transform:scale(.8)}30%{-webkit-transform:scale(.95)}45%{-webkit-transform:scale(.75)}}.heart-pulse g{-webkit-animation-name:heartBeat;animation-name:heartBeat;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.to-post-like a{color:inherit!important;fill:inherit!important;stroke:inherit!important} 188</style> 189<link rel='stylesheet' id='elementor-gf-local-nunitosans-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/elementor/google-fonts/css/nunitosans.css?ver=1752050469' media='all' /> 190<link rel='stylesheet' id='elementor-icons-shared-0-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/font-awesome/css/fontawesome.min.css?ver=5.15.3' media='all' /> 191<link rel='stylesheet' id='elementor-icons-fa-brands-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/font-awesome/css/brands.min.css?ver=5.15.3' media='all' /> 192<link rel='stylesheet' id='elementor-icons-fa-regular-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/font-awesome/css/regular.min.css?ver=5.15.3' media='all' /> 193<link rel='stylesheet' id='elementor-icons-fa-solid-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/font-awesome/css/solid.min.css?ver=5.15.3' media='all' /> 194<link rel='stylesheet' id='myStyleSheets-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-latest-posts/css/wplp_front.css?ver=5.0.11' media='all' />
195<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script>
vendor: 1 bytes, line 195
195
196<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script>
vendor: 1 bytes, line 196
196
197<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script>
vendor: 1 bytes, line 197
197
198<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/js/jquery.leanModal.min.js?ver=6.8.10" id="wpfd-modal-js"></script>
vendor: 1 bytes, line 198
198
199<script id="wpfd-elementor-js-extra"> 200var wpfd_elemetor_vars = {"dir":"https:\/\/www.cm-penalvadocastelo.pt\/wp-content\/plugins\/wp-file-download\/"}; 201</script>
vendor: 1 bytes, line 201
201
202<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/includes/elementor/assets/js/jquery.elementor.js?ver=6.8.10" id="wpfd-elementor-js"></script>
vendor: 1 bytes, line 202
202
203<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/ui/menu.min.js?ver=1.13.3" id="jquery-ui-menu-js"></script>
vendor: 1 bytes, line 203
203
204<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/dist/dom-ready.min.js?ver=f77871ff7694fffea381" id="wp-dom-ready-js"></script>
vendor: 1 bytes, line 204
204
205<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script>
vendor: 1 bytes, line 205
205
206<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script>
vendor: 1 bytes, line 206
206
207<script id="wp-i18n-js-after"> 208wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 209</script>
vendor: 1 bytes, line 209
209
210<script id="wp-a11y-js-translations"> 211( function( domain, translations ) { 212 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 213 localeData[""].domain = domain; 214 wp.i18n.setLocaleData( localeData, domain ); 215} )( "default", {"translation-revision-date":"2026-04-06 08:44:19+0000","generator":"GlotPress\/4.1.0","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"pt"},"Notifications":["Notifica\u00e7\u00f5es"]}},"comment":{"reference":"wp-includes\/js\/dist\/a11y.js"}} ); 216</script>
vendor: 1 bytes, line 216
216
217<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/dist/a11y.min.js?ver=3156534cc54473497e14" id="wp-a11y-js"></script>
vendor: 1 bytes, line 217
217
218<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/ui/autocomplete.min.js?ver=1.13.3" id="jquery-ui-autocomplete-js"></script>
vendor: 1 bytes, line 218
218
219<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/js/jquery.tagit.js?ver=6.8.10" id="wpfd-jquery-tagit-js"></script>
vendor: 1 bytes, line 219
219
220<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/ui/js/moment.min.js?ver=6.0.5" id="wpfd-moment-js"></script>
vendor: 1 bytes, line 220
220
221<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/ui/js/daterangepicker.min.js?ver=6.0.5" id="wpfd-daterangepicker-js"></script>
vendor: 1 bytes, line 221
221
222<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/js/chosen.jquery.min.js?ver=6.0.5" id="wpfd-chosen-js"></script>
vendor: 1 bytes, line 222
222
223<script id="wpfd-search_filter-js-extra"> 224var wpfdvars = {"downloadSelected":"","dateFormat":"DD-MM-YYYY","locale":"pt","msg_search_box_placeholder":"Input tags here...","msg_file_category":"DIRET\u00d3RIO","msg_filter_by_tags":"Filter by Tags","msg_no_tag_in_this_category_found":"No tags in this category found!","msg_to_date_greater_than_from_date":"The To date must be greater than the From date.","msg_overlap_date":"You have selected a date that has been overlapped with the previous date.","search_file_suggestion":"1","translates":{"download_selected":"Download selected","msg_upload_file":"Novo(s) Ficheiro(s) carregados com sucesso!","msg_loading":"Please wait while your file(s) is uploaded!","msg_search_file_category_placeholder":"Search in file category...","msg_search_file_category_search":"Pesquisar","wpfd_all_categories":"All Categories"}}; 225</script>
vendor: 1 bytes, line 225
225
226<script id="wpfd-search_filter-js-before"> 227var wpfdLocaleSettings = { 228 "format": "DD-MM-YYYY", 229 "separator": " - ", 230 "applyLabel": "Apply", 231 "cancelLabel": "Cancelar", 232 "fromLabel": "Desde", 233 "toLabel": "A", 234 "customRangeLabel": "Custom", 235 "weekLabel": "W", 236 "daysOfWeek": [ 237 "Su", 238 "Mo", 239 "Tu", 240 "We", 241 "Th", 242 "Fr", 243 "Sa", 244 ], 245 "monthNames": [ 246 "Janeiro", 247 "Fevereiro", 248 "Março", 249 "Abril", 250 "Maio", 251 "Junho", 252 "Julho", 253 "Agosto", 254 "Setembro", 255 "Outubro", 256 "Novembro", 257 "Dezembro", 258 ], 259 "firstDay": 1, 260 } 261</script>
vendor: 1 bytes, line 261
261
262<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/site/assets/js/search_filter.js?ver=6.0.5" id="wpfd-search_filter-js"></script>
vendor: 1 bytes, line 262
262
263<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/admin/assets/ui/js/jquery.qtip.min.js?ver=6.0.5" id="wpfd-jquery-qtip-js"></script>
vendor: 1 bytes, line 263
263
264<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/includes/elementor/assets/js/jquery.elementor.widgets.js?ver=6.0.5" id="jquery-elementor-widgets-js"></script>
vendor: 1 bytes, line 264
264
265<script id="wpfd-mediaTable-js-extra"> 266var wpfd_var = {"adminurl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin.php","wpfdajaxurl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php?juwpfisadmin=false&action=wpfd&"}; 267</script>
vendor: 1 bytes, line 267
267
268<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/site/themes/wpfd-table/js/jquery.mediaTable.js?ver=6.8.10" id="wpfd-mediaTable-js"></script>
vendor: 1 bytes, line 268
268
269<script id="wpfd-modal-init-js-extra"> 270var wpfdmodalvars = {"adminurl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/"}; 271</script>
vendor: 1 bytes, line 271
271
272<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/wp-file-download/app/site/assets/js/leanmodal.init.js?ver=6.8.10" id="wpfd-modal-init-js"></script>
vendor: 1 bytes, line 272
272
273<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/sticky-header-effects-for-elementor/assets/js/she-header.js?ver=2.1.0" id="she-header-js"></script>
273 274<link rel="https://api.w.org/" href="https://www.cm-penalvadocastelo.pt/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.cm-penalvadocastelo.pt/wp-json/wp/v2/pages/3063" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.cm-penalvadocastelo.pt/xmlrpc.php?rsd" /> 275<meta name="generator" content="WordPress 6.8.10" /> 276<link rel='shortlink' href='https://www.cm-penalvadocastelo.pt/?p=3063' /> 277<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.cm-penalvadocastelo.pt/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.cm-penalvadocastelo.pt%2Fmunicipio%2Finformacao-financeira%2F" /> 278<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.cm-penalvadocastelo.pt/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.cm-penalvadocastelo.pt%2Fmunicipio%2Finformacao-financeira%2F&format=xml" /> 279<meta name="generator" content="Elementor 4.2.4; features: additional_custom_breakpoints; settings: css_print_method-external, google_font-enabled, font_display-auto"> 280 <style> 281 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload), 282 .e-con.e-parent:nth-of-type(n+4):not(.e-lazyloaded):not(.e-no-lazyload) * { 283 background-image: none !important; 284 } 285 @media screen and (max-height: 1024px) { 286 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload), 287 .e-con.e-parent:nth-of-type(n+3):not(.e-lazyloaded):not(.e-no-lazyload) * { 288 background-image: none !important; 289 } 290 } 291 @media screen and (max-height: 640px) { 292 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload), 293 .e-con.e-parent:nth-of-type(n+2):not(.e-lazyloaded):not(.e-no-lazyload) * { 294 background-image: none !important; 295 } 296 } 297 </style> 298
298<script>document.addEventListener('DOMContentLoaded', function() { 299 // 1. Localiza todas as etapas do formulário 300 var steps = document.querySelectorAll('.e-field-step'); 301 302 steps.forEach(function(step, index) { 303 // Obtém o nome da etapa que definiu no Elementor (data-label) 304 var stepLabel = step.getAttribute('data-label'); 305 306 if (stepLabel) { 307 // Adiciona a semântica correta para tecnologias de apoio 308 step.setAttribute('role', 'region'); 309 step.setAttribute('aria-label', 'Etapa: ' + stepLabel); 310 311 // Opcional: Adiciona um ID único para cada etapa se não existir 312 if (!step.id) { 313 step.setAttribute('id', 'elementor-step-' + index); 314 } 315 } 316 }); 317 318 // 2. Correção para o cabeçalho de progresso (as bolinhas/números no topo) 319 var progressHeader = document.querySelector('.elementor-field-type-step'); 320 if (progressHeader) { 321 progressHeader.setAttribute('role', 'navigation'); 322 progressHeader.setAttribute('aria-label', 'Progresso do formulário'); 323 } 324});</script>
324<script>document.addEventListener('DOMContentLoaded', function() { 325 // IDs corrigidos com o prefixo que o Elementor injeta automaticamente 326 const ids = ['form-field-codigo_postal_sinalizada_label', 'form-field-codigo_postal_label']; 327 328 ids.forEach(id => { 329 const input = document.getElementById(id); 330 if (!input) return; 331 332 // 1. Bloqueio Imediato de teclas não numéricas 333 input.addEventListener('keypress', function(e) { 334 // Permite apenas números. Bloqueia letras e sÃmbolos. 335 if (!/[0-9]/.test(e.key)) { 336 e.preventDefault(); 337 } 338 }); 339 340 // 2. Máscara Automática 0000-000 341 input.addEventListener('input', function(e) { 342 let value = e.target.value.replace(/\D/g, ''); 343 if (value.length > 4) { 344 value = value.slice(0, 4) + '-' + value.slice(4, 7); 345 } 346 e.target.value = value; 347 348 // Feedback visual de validação 349 if (value.length === 9) { 350 input.style.setProperty('border', '2px solid #A4C639', 'important'); 351 input.setAttribute('aria-invalid', 'false'); 352 } else { 353 input.style.border = ""; 354 } 355 }); 356 357 // Configurações de Acessibilidade 358 input.setAttribute('maxlength', '9'); 359 input.setAttribute('inputmode', 'numeric'); 360 input.setAttribute('placeholder', '0000-000'); 361 }); 362 363 // 3. Validação robusta no Submit 364 document.addEventListener('submit', function(e) { 365 if (e.target.classList.contains('elementor-form')) { 366 let isValid = true; 367 const regexCP = /^\d{4}-\d{3}$/; 368 369 ids.forEach(id => { 370 const input = document.getElementById(id); 371 if (input && input.value !== "" && !regexCP.test(input.value)) { 372 isValid = false; 373 input.style.setProperty('border', '2px solid red', 'important'); 374 input.setAttribute('aria-invalid', 'true'); 375 } 376 }); 377 378 if (!isValid) { 379 e.preventDefault(); 380 e.stopImmediatePropagation(); 381 alert('Por favor, corrija o formato do Código Postal (0000-000)'); 382 } 383 } 384 }, true); 385});</script>
385<script> 386document.addEventListener('DOMContentLoaded', function() { 387 // Encontra todos os elementos de abreviatura do plugin de eventos 388 const abbrElements = document.querySelectorAll('.mec-events-abbr'); 389 390 abbrElements.forEach(abbr => { 391 const text = abbr.textContent.trim(); 392 393 // Corrige o problema da hora (pm) 394 if (text === '8:30 pm - 11:00 pm') { 395 abbr.setAttribute('title', 'Das 20:30 Ã s 23:00'); 396 } 397 398 // Corrige o uso incorreto da tag na data, substituindo-a por <time> 399 if (text === 'Agosto 09 2025') { 400 const newTimeElement = document.createElement('time'); 401 newTimeElement.setAttribute('datetime', '2025-08-09'); 402 newTimeElement.textContent = text; 403 404 // Copia a classe do elemento original, se houver 405 if (abbr.className) { 406 newTimeElement.className = abbr.className; 407 } 408 409 // Substitui o <abbr> incorreto pelo <time> correto 410 abbr.parentNode.replaceChild(newTimeElement, abbr); 411 } 412 }); 413}); 414</script>
414<script> 415document.addEventListener('DOMContentLoaded', function() { 416 // 1. Encontrar a div principal que contém os elementos. 417 const container = document.querySelector('.single-mec-events'); 418 419 // 2. Executar o código apenas se a div existir na página. 420 if (container) { 421 // 3. Encontrar todos os H3 dentro daquela div. 422 const h3sToReplace = container.querySelectorAll('h3'); 423 424 // 4. Percorrer cada H3 encontrado. 425 h3sToReplace.forEach(h3 => { 426 // a. Criar um novo elemento span. 427 const newSpan = document.createElement('span'); 428 429 // b. Adicionar a nova classe 'titleagenda1'. 430 newSpan.classList.add('titleagenda1'); 431 432 // c. Copiar outras classes que o H3 original possa ter. 433 if (h3.className) { 434 h3.classList.forEach(cls => { 435 // Garante que não adicionamos a mesma classe duas vezes se já existir 436 if (!newSpan.classList.contains(cls)) { 437 newSpan.classList.add(cls); 438 } 439 }); 440 } 441 442 // d. Copiar todo o conteúdo do H3 para o novo span. 443 newSpan.innerHTML = h3.innerHTML; 444 445 // e. Copiar outros atributos como 'id' ou 'data-*'. 446 for (const attr of h3.attributes) { 447 if (attr.name !== 'class') { // A classe já foi tratada 448 newSpan.setAttribute(attr.name, attr.value); 449 } 450 } 451 452 // f. Substituir o H3 pelo novo span na página. 453 h3.parentNode.replaceChild(newSpan, h3); 454 }); 455 } 456}); 457</script>
457<script> 458// Executa o código apenas quando o documento estiver pronto 459document.addEventListener('DOMContentLoaded', function() { 460 461 // 1. O alvo que vamos vigiar: o corpo (body) da página, onde os overlays são adicionados. 462 const targetNode = document.body; 463 464 // 2. A função que será executada sempre que uma mudança ocorrer. 465 const callback = function(mutationsList, observer) { 466 // Vamos verificar se um overlay duplicado foi adicionado. 467 const overlays = document.querySelectorAll('#lean_overlay'); 468 469 // Se houver mais de um... 470 if (overlays.length > 1) { 471 // ...percorremos a lista, a partir do segundo elemento (Ãndice 1), e removemos os extras. 472 for (let i = 1; i < overlays.length; i++) { 473 overlays[i].remove(); 474 // console.log('Overlay duplicado removido.'); // Linha de teste, pode ser removida. 475 } 476 } 477 }; 478 479 // 3. Criamos o "observador" com a nossa função de callback. 480 const observer = new MutationObserver(callback); 481 482 // 4. Configuramos o observador para vigiar a adição de novos elementos no body. 483 const config = { childList: true, subtree: true }; 484 485 // 5. Iniciamos a vigilância. 486 observer.observe(targetNode, config); 487 488}); 489</script>
489<script>module.exports = { 490 plugins: [ 491 { 492 name: 'cleanupIDs', 493 params: { 494 prefix: { 495 toString() { 496 // Gera um prefixo aleatório para cada ficheiro para garantir a unicidade 497 return `svg-icon-${Math.random().toString(36).substr(2, 9)}`; 498 } 499 }, 500 minify: true, 501 } 502 } 503 ] 504};</script>
504<script>function replaceMecH4WithSpan() { 505 document.querySelectorAll('h4.mec-event-title').forEach(h4 => { 506 const span = document.createElement('span'); 507 span.innerHTML = h4.innerHTML; 508 span.className = h4.className; 509 span.style.cssText = h4.style.cssText; 510 h4.replaceWith(span); 511 }); 512} 513 514// Executa ao carregar a página 515document.addEventListener('DOMContentLoaded', () => { 516 replaceMecH4WithSpan(); 517 518 // Se o conteúdo for carregado dinamicamente via AJAX, observa mudanças no DOM 519 const observer = new MutationObserver(replaceMecH4WithSpan); 520 observer.observe(document.body, { childList: true, subtree: true }); 521}); 522</script>
522<script>document.addEventListener('DOMContentLoaded', () => { 523 const main = document.querySelector('main.site-main'); 524 if (!main) return; 525 526 // Cria um novo elemento <div> com os mesmos atributos 527 const div = document.createElement('div'); 528 div.className = main.className; 529 div.id = main.id; 530 div.innerHTML = main.innerHTML; 531 532 // Substitui o <main> pelo <div> 533 main.replaceWith(div); 534}); 535</script>
535<script>// Seleciona a div especÃfica (se quiser por classe, por exemplo) 536const divPai = document.querySelector('div.squares-element.sq-col-lg-12'); 537 538if (divPai) { 539 // Seleciona todos os elementos dentro dela (inclusive a própria div) que tenham font-size inline 14px 540 const todos = divPai.querySelectorAll('*'); 541 542 // Também inclui a própria div pai pra conferir 543 if (divPai.style.fontSize === '14px') { 544 divPai.style.fontSize = '1rem'; 545 } 546 547 todos.forEach(el => { 548 if (el.style.fontSize === '14px') { 549 el.style.fontSize = '1rem'; 550 } 551 }); 552} 553</script>
553<script>function corrigirLinksSemNomeAcessivel() { 554 document.querySelectorAll('a').forEach(link => { 555 const hasText = link.textContent.trim().length > 0; 556 const hasAriaLabel = link.hasAttribute('aria-label'); 557 const hasTitle = link.hasAttribute('title'); 558 559 if (!hasText && !hasAriaLabel && !hasTitle) { 560 let url = link.getAttribute('href'); 561 if (url) { 562 let label = url.replace(/^https?:\/\/(www\.)?/, '').split('/')[0]; 563 label = label.replace(/[-_]/g, ' '); 564 label = 'Link para ' + label; 565 566 link.setAttribute('aria-label', label); 567 } 568 } 569 }); 570} 571 572// Rodar a função depois de um tempo para garantir carregamento do Ajax 573setTimeout(corrigirLinksSemNomeAcessivel, 3000); 574 575// Se for Ajax dinâmico constante, observe mudanças no DOM e corrija em tempo real 576const observer = new MutationObserver(() => { 577 corrigirLinksSemNomeAcessivel(); 578}); 579 580observer.observe(document.body, { childList: true, subtree: true }); 581</script>
581<script>window.addEventListener('DOMContentLoaded', () => { 582 const form = document.getElementById('adminForm-0'); 583 if (form && !form.querySelector('button[type="submit"]')) { 584 const btn = document.createElement('button'); 585 btn.type = 'submit'; 586 btn.style.display = 'none'; // invisÃvel 587 form.appendChild(btn); 588 } 589}); 590</script>
590<script>document.addEventListener('DOMContentLoaded', function () { 591 const input = document.getElementById('txtfilename'); 592 if (input) { 593 // Remove o font-size inline se existir 594 input.style.removeProperty('font-size'); 595 596 // Define novo tamanho de letra com prioridade 597 input.style.setProperty('font-size', '1rem', 'important'); 598 } 599}); 600</script>
600<script>function updateTitlesInWpfd() { 601 // Atualiza tÃtulos em .wpfd-content 602 const wpfdContent = document.querySelector('.wpfd-content'); 603 if (wpfdContent) { 604 wpfdContent.querySelectorAll('a').forEach(link => { 605 link.setAttribute('title', 'Documentos'); 606 }); 607 } 608 609 // Atualiza tÃtulos em .wpfd-all-file-category 610 const wpfdCategory = document.querySelector('.wpfd-all-file-category'); 611 if (wpfdCategory) { 612 wpfdCategory.querySelectorAll('a').forEach(link => { 613 link.setAttribute('title', 'Documentos'); 614 }); 615 } 616} 617 618// Executa ao carregar a página 619document.addEventListener('DOMContentLoaded', function () { 620 updateTitlesInWpfd(); 621 622 // Observa alterações na .wpfd-content 623 const wpfdContent = document.querySelector('.wpfd-content'); 624 if (wpfdContent) { 625 const observer1 = new MutationObserver(updateTitlesInWpfd); 626 observer1.observe(wpfdContent, { childList: true, subtree: true }); 627 } 628 629 // Observa alterações na .wpfd-all-file-category 630 const wpfdCategory = document.querySelector('.wpfd-all-file-category'); 631 if (wpfdCategory) { 632 const observer2 = new MutationObserver(updateTitlesInWpfd); 633 observer2.observe(wpfdCategory, { childList: true, subtree: true }); 634 } 635}); 636</script>
636<script>function replaceHeadingsWithSpan() { 637 document.querySelectorAll('.wpfd-content h3, .wpfd-content h4').forEach(heading => { 638 const span = document.createElement('span'); 639 span.innerHTML = heading.innerHTML; 640 span.className = heading.className; 641 span.style.cssText = heading.style.cssText; 642 heading.replaceWith(span); 643 }); 644} 645 646// Esperar até o .wpfd-content existir 647function waitForWpfdContent() { 648 const container = document.querySelector('.wpfd-content'); 649 if (!container) { 650 setTimeout(waitForWpfdContent, 300); 651 return; 652 } 653 654 // Aplica substituição inicial 655 replaceHeadingsWithSpan(); 656 657 // Observa toda a página para detectar quando os <h3> ou <h4> são inseridos na .wpfd-content 658 const bodyObserver = new MutationObserver((mutations) => { 659 mutations.forEach(mutation => { 660 if (mutation.addedNodes.length > 0) { 661 replaceHeadingsWithSpan(); 662 } 663 }); 664 }); 665 666 bodyObserver.observe(document.body, { 667 childList: true, 668 subtree: true 669 }); 670} 671 672document.addEventListener('DOMContentLoaded', waitForWpfdContent); 673</script>
673<script>document.addEventListener('DOMContentLoaded', function () { 674 const tagsToReplace = ['b', 'strike', 's', 'font', 'big', 'blink', 'strong']; 675 676 tagsToReplace.forEach(tag => { 677 document.querySelectorAll(tag).forEach(el => { 678 const span = document.createElement('span'); 679 span.className = `replaced-${tag}`; 680 span.innerHTML = el.innerHTML; 681 el.parentNode.replaceChild(span, el); 682 }); 683 }); 684}); 685</script>
685<script>function updateTitlesInWpfd() { 686 const wpfdContainer = document.querySelector('.wpfd-content'); 687 if (wpfdContainer) { 688 wpfdContainer.querySelectorAll('a').forEach(link => { 689 link.setAttribute('title', 'Documentos'); 690 }); 691 } 692} 693 694function removeTitlesInMec() { 695 const mecContainer = document.querySelector('.mec-wrap'); 696 if (mecContainer) { 697 mecContainer.querySelectorAll('a[title]').forEach(link => { 698 link.removeAttribute('title'); 699 }); 700 } 701} 702 703document.addEventListener('DOMContentLoaded', function () { 704 updateTitlesInWpfd(); 705 removeTitlesInMec(); 706 707 // Observa alterações na .wpfd-content 708 const wpfdTarget = document.querySelector('.wpfd-content'); 709 if (wpfdTarget) { 710 const wpfdObserver = new MutationObserver(updateTitlesInWpfd); 711 wpfdObserver.observe(wpfdTarget, { childList: true, subtree: true }); 712 } 713 714 // Observa alterações na .mec-wrap 715 const mecTarget = document.querySelector('.mec-wrap'); 716 if (mecTarget) { 717 const mecObserver = new MutationObserver(removeTitlesInMec); 718 mecObserver.observe(mecTarget, { childList: true, subtree: true }); 719 } 720}); 721</script>
721<script>document.addEventListener('DOMContentLoaded', function() { 722 // Função para corrigir o 'role' em modais do Elementor 723 const fixElementorModals = () => { 724 // Encontra todos os popups e lightboxes com o 'role' errado 725 const modals = document.querySelectorAll('.elementor-popup-modal[role="document"], .elementor-lightbox[role="document"]'); 726 727 // Itera sobre cada um e corrige o 'role' para 'dialog' 728 modals.forEach(modal => { 729 modal.setAttribute('role', 'dialog'); 730 }); 731 }; 732 733 // Usa um 'MutationObserver' para vigiar quando novos elementos (como popups) 734 // são adicionados à página, pois eles são criados dinamicamente. 735 const observer = new MutationObserver((mutationsList) => { 736 for(const mutation of mutationsList) { 737 if (mutation.type === 'childList' && mutation.addedNodes.length > 0) { 738 // Se algo novo foi adicionado, corremos a nossa função de correção 739 fixElementorModals(); 740 } 741 } 742 }); 743 744 // Inicia a observação no corpo do documento 745 observer.observe(document.body, { childList: true, subtree: true }); 746 747 // Corre a função uma vez no inÃcio, para o caso de algo já estar visÃvel 748 fixElementorModals(); 749});</script>
749<script>document.addEventListener('DOMContentLoaded', function() { 750 // Seleciona todos os links de galerias do Elementor 751 const galleryLinks = document.querySelectorAll('a.e-gallery-item'); 752 753 galleryLinks.forEach(link => { 754 // Verifica se o link já tem um aria-label ou se a imagem interna tem alt text 755 const hasAriaLabel = link.hasAttribute('aria-label'); 756 const image = link.querySelector('img'); 757 const hasAltText = image && image.getAttribute('alt'); 758 759 // Se o link não tiver texto acessÃvel, vamos adicioná-lo 760 if (!hasAriaLabel && !hasAltText) { 761 const lightboxTitle = link.dataset.elementorLightboxTitle; 762 763 if (lightboxTitle) { 764 // Limpa o nome do ficheiro para ser mais legÃvel 765 let cleanTitle = lightboxTitle.replace(/_/g, ' ').replace(/-/g, ' '); 766 cleanTitle = cleanTitle.replace(/\.(jpg|jpeg|png|gif|webp)$/i, ''); // Remove extensões 767 768 // Adiciona um aria-label descritivo ao link 769 link.setAttribute('aria-label', `Ver imagem: ${cleanTitle}`); 770 } 771 } 772 }); 773}); 774document.addEventListener('DOMContentLoaded', function() { 775 // Seleciona todos os itens da galeria do Elementor 776 const galleryItems = document.querySelectorAll('.e-gallery-item'); 777 778 galleryItems.forEach(itemLink => { 779 // Usa o tÃtulo do lightbox como a fonte de texto de recurso 780 const lightboxTitle = itemLink.dataset.elementorLightboxTitle; 781 if (!lightboxTitle) return; // Se não houver tÃtulo, não faz nada 782 783 // Limpa o texto para ser mais legÃvel por humanos 784 let cleanText = lightboxTitle.replace(/_/g, ' ').replace(/-/g, ' '); 785 cleanText = cleanText.replace(/\.(jpg|jpeg|png|gif|webp)$/i, ''); 786 787 // ---- INÃCIO DAS CORREÃÃES ---- 788 789 // CORREÃÃO 1: Adiciona 'aria-label' ao link <a> se não tiver texto 790 const imageTag = itemLink.querySelector('img'); 791 const hasAltText = imageTag && imageTag.getAttribute('alt'); 792 if (!itemLink.hasAttribute('aria-label') && !hasAltText) { 793 itemLink.setAttribute('aria-label', `Ver imagem: ${cleanText}`); 794 } 795 796 // CORREÃÃO 2: Adiciona 'aria-label' ao div[role="img"] se estiver vazio 797 const divImage = itemLink.querySelector('div[role="img"]'); 798 if (divImage) { 799 const divAriaLabel = divImage.getAttribute('aria-label'); 800 // Só adiciona o label se ele não existir ou estiver vazio 801 if (!divAriaLabel) { 802 divImage.setAttribute('aria-label', cleanText); 803 } 804 } 805 }); 806});</script>
806<script>document.addEventListener('DOMContentLoaded', function() { 807 // Encontra todas as listas de definição dentro da área de data de eventos 808 const dls = document.querySelectorAll('.mec-single-event-date > dl'); 809 810 dls.forEach(dl => { 811 // Verifica se o primeiro elemento dentro da lista é uma <dd> 812 const firstChild = dl.firstElementChild; 813 if (firstChild && firstChild.tagName === 'DD') { 814 815 // 1. Cria o elemento <dt> que está em falta 816 const dt = document.createElement('dt'); 817 dt.textContent = 'Data'; // O termo que faltava 818 819 // 2. Adiciona uma classe para esconder o <dt> visualmente 820 // Isto corrige a acessibilidade sem quebrar o layout 821 dt.style.position = 'absolute'; 822 dt.style.width = '1px'; 823 dt.style.height = '1px'; 824 dt.style.padding = '0'; 825 dt.style.margin = '-1px'; 826 dt.style.overflow = 'hidden'; 827 dt.style.clip = 'rect(0, 0, 0, 0)'; 828 dt.style.whiteSpace = 'nowrap'; 829 dt.style.border = '0'; 830 831 // 3. Insere o <dt> antes da <dd> 832 dl.insertBefore(dt, firstChild); 833 } 834 }); 835}); 836document.addEventListener('DOMContentLoaded', function() { 837 // Encontra todas as listas de definição dentro da área de horário de eventos 838 const dls = document.querySelectorAll('.mec-single-event-time > dl'); 839 840 dls.forEach(dl => { 841 // Verifica se o primeiro elemento dentro da lista é uma <dd> 842 const firstChild = dl.firstElementChild; 843 if (firstChild && firstChild.tagName === 'DD') { 844 845 // 1. Cria o elemento <dt> com o termo "Hora" 846 const dt = document.createElement('dt'); 847 dt.textContent = 'Hora'; 848 849 // 2. Adiciona estilos para esconder o <dt> visualmente 850 // mas mantê-lo disponÃvel para leitores de ecrã 851 dt.style.position = 'absolute'; 852 dt.style.width = '1px'; 853 dt.style.height = '1px'; 854 dt.style.margin = '-1px'; 855 dt.style.overflow = 'hidden'; 856 dt.style.clip = 'rect(0, 0, 0, 0)'; 857 dt.style.border = '0'; 858 859 // 3. Insere o <dt> antes da <dd> existente 860 dl.insertBefore(dt, firstChild); 861 } 862 }); 863});</script>
863<script> 864jQuery(document).ready(function($) { 865 // Procura por todas as imagens que não têm o atributo 'alt' OU que têm o 'alt' vazio 866 $('img:not([alt]), img[alt=""]').each(function() { 867 // Adiciona o alt text desejado 868 $(this).attr('alt', 'Penalva do Castelo'); 869 }); 870}); 871</script>
871<script><?php 872function my_custom_script_for_thumbnail_links() { 873 ?> 874
874<script> 875 document.addEventListener('DOMContentLoaded', function() { 876 const thumbnailLinks = document.querySelectorAll('.elementor-post__thumbnail__link'); 877 878 thumbnailLinks.forEach(link => { 879 let postTitleElement = link.closest('.elementor-post').querySelector('.elementor-post__title'); 880 881 if (postTitleElement && postTitleElement.textContent.trim() !== '') { 882 link.setAttribute('aria-label', postTitleElement.textContent.trim()); 883 } else { 884 link.setAttribute('aria-label', 'Ver detalhes do artigo'); // Fallback 885 } 886 }); 887 }); 888 </script>
888 889 <?php 890} 891add_action('wp_footer', 'my_custom_script_for_thumbnail_links'); 892?> 893<?php 894function my_custom_script_for_aria_fix_container() { 895 ?> 896
896<script> 897 document.addEventListener('DOMContentLoaded', function() { 898 const postsContainer = document.querySelector('.elementor-posts-container[role="list"]'); 899 if (postsContainer) { 900 postsContainer.removeAttribute('role'); 901 } 902 903 // Apenas se o Axe continuar a indicar o tabindex como um problema 904 const articlesWithTabindex = document.querySelectorAll('article[tabindex]'); // Seleciona qualquer tabindex 905 articlesWithTabindex.forEach(article => { 906 article.removeAttribute('tabindex'); 907 }); 908 }); 909 </script>
909 910 <?php 911} 912add_action('wp_footer', 'my_custom_script_for_aria_fix_container'); 913?> 914 <?php 915function my_custom_script_for_thumbnail_links_fix() { 916 ?> 917
917<script> 918 document.addEventListener('DOMContentLoaded', function() { 919 const thumbnailLinks = document.querySelectorAll('.elementor-post__thumbnail__link'); 920 921 thumbnailLinks.forEach(link => { 922 let postTitleElement = link.closest('.elementor-post')?.querySelector('.elementor-post__title'); 923 924 if (postTitleElement && postTitleElement.textContent.trim() !== '') { 925 link.setAttribute('aria-label', postTitleElement.textContent.trim()); 926 } else { 927 // Fallback: Tente ser o mais especÃfico possÃvel se não encontrar o tÃtulo. 928 // "Ver detalhes do artigo" é um bom padrão, mas adapte se souber mais. 929 link.setAttribute('aria-label', 'Ver detalhes do artigo'); 930 } 931 }); 932 }); 933 </script>
933 934 <?php 935} 936add_action('wp_footer', 'my_custom_script_for_thumbnail_links_fix'); 937?></script>
937<link rel="icon" href="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/favicon-150x150.png" sizes="32x32" /> 938<link rel="icon" href="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/favicon.png" sizes="192x192" /> 939<link rel="apple-touch-icon" href="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/favicon.png" /> 940<meta name="msapplication-TileImage" content="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/favicon.png" /> 941 <style id="wp-custom-css"> 942 .mec-owl-theme .owl-dots .owl-dot span { 943 background: #333 !important; 944} 945.mec-owl-theme .owl-dots .owl-dot.active span, .mec-owl-theme .owl-dots .owl-dot:hover span { 946 background: #000 !important; 947} 948 949.wbel-arrow .fa{ 950 line-height:2.4rem !important 951} 952 953.elementor-widget-container p{max-width:80%} 954.formradar label, .formradar input, .formradar .elementor-field-type-html{font-size:1rem !important} 955 956p#breadcrumbs{max-width:100%} 957 958 959 960.dataactual p{font-size:0.9rem !important} 961 962.titleagenda1{ 963 font-weight:800; 964 margin-left:10px; 965 text-transform:uppercase; 966} 967 968.bold-text { 969 font-weight: bold; 970} 971.replaced-b, .replaced-strong { 972 font-weight: bold; 973} 974.replaced-i { 975 font-style: italic; 976} 977.replaced-u { 978 text-decoration: underline; 979} 980.replaced-strike, 981.replaced-s { 982 text-decoration: line-through; 983} 984.replaced-center { 985 display: block; 986 text-align: center; 987} 988.replaced-big { 989 font-size: larger; 990} 991.replaced-font { 992 font-family: inherit; /* Ou defina algo especÃfico */ 993} 994.replaced-blink { 995 animation: blink-animation 1s steps(2, start) infinite; 996} 997@keyframes blink-animation { 998 to { 999 visibility: hidden; 1000 } 1001} 1002.elementor-button span{color:#fff !important} 1003 1004ul.mec-event-sharing-wrap{display:none !important;} 1005 1006body, li,.elementor-sub-item a, .elementor-icon-list-text a, .sub-menu a,ul, .elementor-nav-menu--dropdown,.elementor-social-icon,.tg-icon-arrow-next-thin,.tg-icon-arrow-prev-thin,.tolb-counter,.tolb-title, figcaption,.tg-icon-close, .wb_ps_content a, .wb_ps_content,.slick-arrow,.mec-event-carousel-title, .mec-event-carousel-title a,.owl-prev,.owl-next,.fa-angle-left,.fa-angle-right,.elementor-widget-container,.elementor-icon,.wpfd-folder, .file h3 a, .file h3,.wpfd-download,.wpfd-preview,.flex_span,.mec-event-social-icon a,.mec-color-hover,.mec-event-month,.mec-event-detail,.squares-element, .squares-element h3, .squares-element p { 1007 font-size: 1rem !important; 1008} 1009 1010.wb_ps_date_string, .redux a, .redux .elementor-icon-list-text,.mec-event-date-info,.mec-event-date-info-year,.mec-carousel-event-location,.breadcrumbs,.wpfdcategory,.wpfdcategory a, .wpfd-content,#upload_folder_button, #upload_button,.elementor-share-btn, .elementor-share-btn a,.file.pdf,.openlink,.wpfd-content .downloadlink,.backcategory, .wpfd-content .backcategory .zmdi-chevron-left + span,i.zmdi.zmdi-chevron-left,i.mec-time-comment,.mec-grid-event-location,.mec-booking-button,.box-search-filter .material-icons,.pull-left,.material-icons,.qCatesearch,label,.box-search-filter,.wpfd_search_file_suggestion,.btnsearchbelow,.pull-left { 1011 font-size: .9rem !important 1012} 1013input#txtfilename.pull-left.required.txtfilename { 1014 font-size: 1rem !important; 1015} 1016 1017.wpfd-content .wpfdcategory span, .wpfd-content .breadcrumbs > li ,.file h3 a,.file-xinfo,.openlink,.backcategory{color:#000 !important} 1018.downloadlink{background:#000 !important} 1019.iconspecial .elementor-icon{ 1020 font-size: 14rem !important 1021} 1022 1023 1024.mec-event-date-carousel,.mec-event-day{ 1025 font-size: 2rem !important 1026} 1027 1028.eicon-menu-bar,.elementor-menu-toggle{ 1029 font-size: 1.2rem !important; 1030 border-radius:0px !important 1031} 1032 1033.elementor-animation-grow { 1034 font-size: 4rem !important 1035} 1036 1037 1038.tg-link-button{background:#000; color:#fff !important; font-weight:bold !important;font-size:0.8rem !important} 1039.tg-item-author,.tg-item-term{display:none !important} 1040.mec-event-grid-colorful .event-grid-modern-head, .mec-event-grid-colorful .event-grid-modern-head .mec-event-date, .mec-event-grid-colorful .event-grid-modern-head .mec-event-day, .mec-event-grid-colorful .mec-event-content p, .mec-event-grid-colorful .mec-event-sharing-wrap>li>a, .mec-event-grid-colorful .mec-event-title a, .mec-event-grid-colorful ul.mec-categories li.mec-category a { 1041 color: #000; 1042} 1043.titleagenda{font-weight:bold;text-transform:uppercase; 1044float:left; margin-left:15px 1045} 1046.mec-events-event-categories{ 1047 display:block !important; 1048 float:none; 1049 margin-top:25px; 1050 margin-left:35px 1051} 1052 1053.mec-sl-folder{float:left} 1054.mec-holding-status-ongoing { 1055 color: #000;font-weight:bold;font-style:italic 1056} 1057.she-header .elementor-widget-image{ 1058 -webkit-transform: scale(calc(80/100)) !important; 1059 -ms-transform: scale(calc(80/100)) !important; 1060 transform: scale(calc(80/100)) !important; 1061} 1062 1063figure { 1064 display: inline-block !important; 1065 margin-block-start: 10px !important; 1066 margin-block-end: 10px !important; 1067 margin-inline-start: 25px !important; 1068 margin-inline-end: 25px !important; 1069} 1070 1071.sub-menu .elementor-nav-menu--dropdown .sm-nowrap{ 1072 background:#A4C639 !important; 1073} 1074.sub-menu .elementor-nav-menu--dropdown .sm-nowrap a{ 1075 color:#fff !important; 1076} 1077.has-submenu .sub-menu .elementor-nav-menu--dropdown .sm-nowrap{ 1078 background:#A4C639 !important; 1079} 1080.elementor-nav-menu--dropdown { 1081 background-color: #efefef !important; 1082box-shadow: 8px 0px 6px -6px #666; 1083} 1084 1085.she-header .logo img { 1086 visibility: hidden; 1087max-height:40px; 1088 opacity:0; 1089 transition:all 0.1s ease-in; 1090} 1091 1092.she-header-yes .logo img { 1093 -webkit-transition: all 0s ease-in-out !important; 1094 -o-transition: all 0s ease-in-out !important; 1095 transition: all 0s ease-in-out !important; 1096} 1097 1098.she-header .logo { 1099 background: url(https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/Penalva-sticky-white-1.png) no-repeat; 1100 background-size: contain; 1101} 1102 1103.she-header .topoicones{ 1104 display:none; 1105} 1106table td, table th { 1107 border: 2px solid #fff; 1108}
1109#et-boc .wpfd-content .wpfdcategory, .wpfd-content .wpfdcategory { 1110 min-width: 375px !important; 1111} 1112#et-boc .wpfd-content .wpfdcategory > span, .wpfd-content .wpfdcategory > span { 1113 width: 100% !important; 1114 white-space: inherit !important; 1115 text-overflow: inherit !important; 1116 max-width: 310px !important; 1117} 1118#et-boc .wpfd-content-default .wpfd_list .file, .wpfd-content-default .wpfd_list .file { 1119 width: 100% !important; 1120 border: 0 solid #ccc !important; 1121 border-bottom: 1px solid #ccc !important; 1122} 1123#et-boc .wpfd-content .backcategory, .wpfd-content .backcategory { 1124 top: -20px !important; 1125} 1126#et-boc .wpfd-content .wpfdcategory, .wpfd-content .wpfdcategory { 1127 border: 1px solid #ddd !important; 1128} 1129#et-boc .wpfd-content, .wpfd-content { 1130 background: transparent !important; 1131 background-color:transparent !important; 1132} 1133#et-boc .wpfd-content .breadcrumbs, .wpfd-content .breadcrumbs { 1134 background: transparent!important; 1135} 1136#adminForm { 1137 background-color: transparent !important; 1138} 1139 1140.texto-negrito { 1141 font-weight: bold; 1142} 1143 1144.elementor-posts .elementor-post__badge { 1145 font-size: 0.75rem!important; 1146} 1147 1148 1149/* =============================================== 1150 ACCESSIBILITY IMPROVEMENTS - FOCUS INDICATORS 1151 =============================================== */ 1152 1153 1154/* Ensure all interactive elements have visible focus indicators */ 1155a:focus, 1156button:focus, 1157input:focus, 1158select:focus, 1159textarea:focus, 1160[tabindex]:focus { 1161 outline: 2px solid #005cee !important; 1162 outline-offset: 2px !important; 1163 box-shadow: 0 0 0 2px rgba(0, 92, 238, 0.2) !important; 1164} 1165 1166/* Enhanced focus indicators for accessibility-focused class */ 1167.accessibility-focused, 1168.accessibility-focused:focus { 1169 outline: 3px solid #005cee !important; 1170 outline-offset: 2px !important; 1171 box-shadow: 0 0 0 3px rgba(0, 92, 238, 0.3) !important; 1172 position: relative !important; 1173 z-index: 999 !important; 1174} 1175 1176/* Enhanced focus indicators for accessibility-focused class */ 1177.dialog-close-button.accessibility-focused, .dialog-close-button.accessibility-focused:focus { 1178 position: absolute !important; 1179} 1180 1181 1182/* Specific focus styles for header elements */ 1183.site-header a:focus, 1184header a:focus, 1185.elementor-element a:focus { 1186 outline: 2px solid #005cee !important; 1187 outline-offset: 2px !important; 1188 background-color: rgba(0, 92, 238, 0.1) !important; 1189 text-decoration: none !important; 1190} 1191 1192/* Enhanced header focus for accessibility-focused class */ 1193.site-header .accessibility-focused, 1194header .accessibility-focused, 1195.elementor-element .accessibility-focused { 1196 outline: 3px solid #005cee !important; 1197 outline-offset: 2px !important; 1198 background-color: rgba(225,225, 225, 1) !important; 1199 text-decoration: none !important; 1200 border-radius: 2px !important; 1201} 1202 1203/* Focus styles for social media icons */ 1204.elementor-social-icon:focus, 1205.elementor-social-icon.accessibility-focused { 1206 outline: 2px solid #005cee !important; 1207 outline-offset: 2px !important; 1208 transform: scale(1.05) !important; 1209 transition: transform 0.2s ease !important; 1210 1211} 1212 1213/* High contrast focus for better visibility */ 1214@media (prefers-contrast: high) { 1215 a:focus, 1216 button:focus, 1217 input:focus, 1218 select:focus, 1219 textarea:focus, 1220 [tabindex]:focus, 1221 .accessibility-focused { 1222 outline: 3px solid #000 !important; 1223 background-color: #ffff00 !important; 1224 color: #000 !important; 1225 } 1226} 1227 1228/* Ensure focus indicators are not removed by other styles */ 1229*:focus { 1230 outline: none; /* Reset default */ 1231} 1232 1233*:focus-visible, 1234*.accessibility-focused { 1235 outline: 2px solid #005cee !important; 1236 outline-offset: 2px !important; 1237} 1238 1239/* Override any CSS that tries to remove outlines */ 1240*:focus, 1241*:focus-visible, 1242*.accessibility-focused { 1243 outline: 2px solid #005cee !important; 1244 outline-offset: 2px !important; 1245} 1246 1247/* Specifically target elements that commonly have outline removed */ 1248a:focus, 1249button:focus, 1250input:focus, 1251select:focus, 1252textarea:focus, 1253[role="button"]:focus, 1254[tabindex]:focus, 1255.elementor-button:focus, 1256.elementor-icon:focus, 1257.elementor-social-icon:focus { 1258 outline: 2px solid #005cee !important; 1259 outline-offset: 2px !important; 1260} 1261 1262/* Force focus indicators even if other CSS tries to hide them */ 1263a.accessibility-focused, 1264button.accessibility-focused, 1265input.accessibility-focused, 1266select.accessibility-focused, 1267textarea.accessibility-focused, 1268[role="button"].accessibility-focused, 1269[tabindex].accessibility-focused, 1270.elementor-button.accessibility-focused, 1271.elementor-icon.accessibility-focused, 1272.elementor-social-icon.accessibility-focused { 1273 outline: 3px solid #005cee !important; 1274 outline-offset: 2px !important; 1275 box-shadow: 0 0 0 3px rgba(0, 92, 238, 0.3) !important; 1276} 1277 1278/* Skip to content link accessibility */ 1279.skip-link { 1280 position: absolute !important; 1281 left: -9999px !important; 1282 top: auto !important; 1283 width: 1px !important; 1284 height: 1px !important; 1285 overflow: hidden !important; 1286} 1287 1288.skip-link:focus, 1289.skip-link.accessibility-focused { 1290 position: absolute !important; 1291 left: 6px !important; 1292 top: 7px !important; 1293 width: auto !important; 1294 height: auto !important; 1295 overflow: visible !important; 1296 background: #000 !important; 1297 color: #fff !important; 1298 padding: 8px 16px !important; 1299 text-decoration: none !important; 1300 z-index: 999999 !important; 1301 border-radius: 3px !important; 1302 outline: 3px solid #fff !important; 1303} 1304 1305/* Ensure buttons in header are properly styled */ 1306.site-header button:focus, 1307header button:focus, 1308.site-header button.accessibility-focused, 1309header button.accessibility-focused { 1310 outline: 2px solid #005cee !important; 1311 outline-offset: 2px !important; 1312 background-color: rgba(0, 92, 238, 0.1) !important; 1313} 1314 1315/* Fix for any elements that might have outline: none applied */ 1316.elementor-element *:focus, 1317.elementor-widget *:focus, 1318.elementor-element *.accessibility-focused, 1319.elementor-widget *.accessibility-focused { 1320 outline: 2px solid #005cee !important; 1321 outline-offset: 2px !important; 1322} 1323 1324/* Prevent any stylesheet from overriding focus indicators */ 1325[style*="outline: none"], 1326[style*="outline:none"], 1327[style*="outline: 0"], 1328[style*="outline:0"] { 1329 outline: 2px solid #005cee !important; 1330 outline-offset: 2px !important; 1331} 1332 1333/* Reduce motion for users who prefer it */ 1334@media (prefers-reduced-motion: reduce) { 1335 .elementor-social-icon:focus, 1336 .elementor-social-icon.accessibility-focused { 1337 transform: none !important; 1338 transition: none !important; 1339 } 1340} 1341 1342/* Additional protection: Use !important on all focus styles to override any other CSS */ 1343[tabindex="0"]:focus, 1344[tabindex="-1"]:focus, 1345a[href]:focus, 1346button:focus, 1347input:not([type="hidden"]):focus, 1348select:focus, 1349textarea:focus { 1350 outline: 2px solid #005cee !important; 1351 outline-offset: 2px !important; 1352} 1353 1354/* Accessibility focused class always wins */ 1355.accessibility-focused { 1356 outline: 3px solid #005cee !important; 1357 outline-offset: 2px !important; 1358 box-shadow: 0 0 0 3px rgba(0, 92, 238, 0.3) !important; 1359} </style> 1360 <style>:root,::before,::after{--mec-heading-font-family: 'Nunito';--mec-paragraph-font-family: 'Nunito';--mec-color-skin: #2d5c88;--mec-color-skin-rgba-1: rgba(45,92,136,.25);--mec-color-skin-rgba-2: rgba(45,92,136,.5);--mec-color-skin-rgba-3: rgba(45,92,136,.75);--mec-color-skin-rgba-4: rgba(45,92,136,.11);--mec-primary-border-radius: 12px;--mec-secondary-border-radius: 3px;--mec-container-normal-width: 1196px;--mec-container-large-width: 1690px;--mec-fes-main-color: #40d9f1;--mec-fes-main-color-rgba-1: rgba(64, 217, 241, 0.12);--mec-fes-main-color-rgba-2: rgba(64, 217, 241, 0.23);--mec-fes-main-color-rgba-3: rgba(64, 217, 241, 0.03);--mec-fes-main-color-rgba-4: rgba(64, 217, 241, 0.3);--mec-fes-main-color-rgba-5: rgb(64 217 241 / 7%);--mec-fes-main-color-rgba-6: rgba(64, 217, 241, 0.2);--mec-fes-main-color-rgba-7: rgba(64, 217, 241, 0.5);</style><style>
1360.event-carousel-type1-head .mec-event-date-info { 1361 top: 47px; 1362} 1363.event-carousel-type1-head .mec-event-date-info-year { 1364 top: 65px; 1365} 1366.mec-skin-carousel-container .mec-multiple-event .event-carousel-type1-head .mec-event-date-info, .mec-skin-carousel-container .mec-multiple-event .event-carousel-type1-head .mec-event-date-info-year { 1367 left: 31px; 1368} 1369.event-carousel-type1-head .mec-event-date-carousel { 1370 font-size: 31px; 1371} 1372.mec-slider-t1-wrap { 1373 background: transparent !important; 1374} 1375.mec-event-carousel-content .mec-event-carousel-title a { 1376 font-size: 18px; 1377 letter-spacing: 0; 1378} 1379.mec-event-carousel-content { 1380 border: 0px solid #e8e8e8; 1381 padding: 14px 9px 1px 30px; 1382} 1383.event-carousel-type1-head .mec-event-date-carousel:after{ 1384 display:none; 1385} 1386.mec-owl-theme .owl-nav.disabled + .owl-dots { 1387 margin-top: 0px; 1388}</style></head> 1389<body class="wp-singular page-template-default page page-id-3063 page-parent page-child parent-pageid-2815 wp-embed-responsive wp-theme-hello-elementor wp-child-theme-hello-theme-child-master mec-theme-hello-elementor hello-elementor-default elementor-default elementor-kit-7 elementor-page-2812"> 1390 1391 1392<a class="skip-link screen-reader-text" href="#content">Pular para o conteúdo</a> 1393 1394 <header data-elementor-type="header" data-elementor-id="2913" class="elementor elementor-2913 elementor-location-header" data-elementor-post-type="elementor_library"> 1395 <section class="elementor-section elementor-top-section elementor-element elementor-element-22bf8cda elementor-section-content-top elementor-section-height-min-height elementor-section-items-top elementor-section-boxed elementor-section-height-default" data-id="22bf8cda" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}"> 1396 <div class="elementor-background-overlay"></div> 1397 <div class="elementor-container elementor-column-gap-default"> 1398 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-56c8ee7a" data-id="56c8ee7a" data-element_type="column" data-e-type="column"> 1399 <div class="elementor-widget-wrap elementor-element-populated"> 1400 <div class="elementor-element elementor-element-28b31562 logo elementor-widget elementor-widget-image" data-id="28b31562" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 1401 <div class="elementor-widget-container"> 1402 <a href="https://www.cm-penalvadocastelo.pt/" aria-label="InÃcio"> 1403 <img width="1057" height="1420" src="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco.png" class="attachment-full size-full wp-image-28282" alt="logo_penalvavectorvector_branco" srcset="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco.png 1057w, https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco-223x300.png 223w, https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco-762x1024.png 762w, https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco-768x1032.png 768w, https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/logo_penalvavectorvector_branco-500x672.png 500w" sizes="(max-width: 1057px) 100vw, 1057px" /> </a> 1404 </div> 1405 </div> 1406 </div> 1407 </div> 1408 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-69b3bf39" data-id="69b3bf39" data-element_type="column" data-e-type="column"> 1409 <div class="elementor-widget-wrap elementor-element-populated"> 1410 <div class="elementor-element elementor-element-207e6acd topoicones elementor-widget__width-auto elementor-hidden-tablet elementor-hidden-phone elementor-widget elementor-widget-image" data-id="207e6acd" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 1411 <div class="elementor-widget-container"> 1412 <img width="179" height="21" src="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/separador.png" class="attachment-large size-large wp-image-222" alt="TOPO" /> </div>
1413 </div> 1414 <div class="elementor-element elementor-element-248e7170 e-grid-align-right topoicones elementor-widget__width-auto elementor-shape-rounded elementor-grid-0 elementor-widget elementor-widget-social-icons" data-id="248e7170" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default"> 1415 <div class="elementor-widget-container"> 1416 <div class="elementor-social-icons-wrapper elementor-grid" role="list"> 1417 <span class="elementor-grid-item" role="listitem"> 1418 <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook-f elementor-repeater-item-724c9fd" href="https://www.facebook.com/penalvadocastelo.municipio" target="_blank"> 1419 <span class="elementor-screen-only">Facebook-f</span> 1420 <i aria-hidden="true" class="fab fa-facebook-f"></i> </a> 1421 </span> 1422 <span class="elementor-grid-item" role="listitem"> 1423 <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-e424e63" href="https://www.youtube.com/user/cmpenalvadocastelo" target="_blank"> 1424 <span class="elementor-screen-only">Youtube</span> 1425 <i aria-hidden="true" class="fab fa-youtube"></i> </a> 1426 </span> 1427 </div> 1428 </div> 1429 </div> 1430 <div class="elementor-element elementor-element-c1cad45 topoicones elementor-widget__width-auto elementor-view-default elementor-widget elementor-widget-icon" data-id="c1cad45" data-element_type="widget" data-e-type="widget" data-widget_type="icon.default"> 1431 <div class="elementor-widget-container"> 1432 <div class="elementor-icon-wrapper"> 1433 <a class="elementor-icon" href="#elementor-action%3Aaction%3Dpopup%3Aopen%26settings%3DeyJpZCI6IjkyNzAiLCJ0b2dnbGUiOmZhbHNlfQ%3D%3D" aria-label="Login"> 1434 <i aria-hidden="true" class="far fa-user"></i> </a> 1435 </div> 1436 </div> 1437 </div> 1438 <div class="elementor-element elementor-element-c92e273 elementor-widget-tablet__width-auto elementor-widget elementor-widget-ucaddon_nav_menu" data-id="c92e273" data-element_type="widget" data-e-type="widget" data-widget_type="ucaddon_nav_menu.default"> 1439 <div class="elementor-widget-container"> 1440 1441<!-- start WordPress Menu --> 1442 <link id='font-awesome-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/unlimited-elements-for-elementor-premium/assets_libraries/font-awesome6/fontawesome-all.min.css' type='text/css' rel='stylesheet' > 1443 <link id='font-awesome-4-shim-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/unlimited-elements-for-elementor-premium/assets_libraries/font-awesome6/fontawesome-v4-shims.min.css' type='text/css' rel='stylesheet' > 1444 <link id='uc_ac_assets_file_uc_creative_link_effects_css_26314-css' href='https://www.cm-penalvadocastelo.pt/wp-content/uploads/ac_assets/nav_menu/uc-creative-link-effects.css' type='text/css' rel='stylesheet' > 1445 1446<style>/* widget: WordPress Menu */ 1447 1448/* reset defaults */ 1449dd, dl, dt, li, ol, ul{ 1450 border: unset; 1451 padding: unset; 1452 background: unset; 1453} 1454/* end reset defaults */ 1455 1456#uc_nav_menu_elementor_c92e273{ 1457 position: relative; 1458} 1459 1460#uc_nav_menu_elementor_c92e273 .ue-nav-menu-mobile-wrapper{ 1461 display: flex; 1462} 1463 1464#uc_nav_menu_elementor_c92e273 .ue-menu{ 1465 display:flex; 1466 list-style:none; 1467 margin:0; 1468 position:relative; 1469 justify-content:flex-end; 1470} 1471 1472#uc_nav_menu_elementor_c92e273 a{ 1473 position: relative; 1474 text-decoration: none; 1475 display: flex; 1476 align-items: center; 1477} 1478 1479 #uc_nav_menu_elementor_c92e273 a:after, 1480 #uc_nav_menu_elementor_c92e273 a:before{ 1481 content: ""; 1482 z-index: 2; 1483 position:absolute; 1484 } 1485 1486 1487 1488 1489 1490 1491 1492 1493#uc_nav_menu_elementor_c92e273 .ue-menu > li { 1494 display: block; 1495 flex-shrink: 1; 1496 min-width: 0; 1497 } 1498 1499/* Simple multilevel dropdown */ 1500#uc_nav_menu_elementor_c92e273 .ue-menu > li > .sub-menu { 1501 opacity: 0; 1502 visibility: hidden; 1503 position: absolute; 1504 list-style: none; 1505 text-align: inherit; 1506 display:block; 1507 z-index: 99; 1508} 1509 1510/* First level appear */ 1511#uc_nav_menu_elementor_c92e273 .ue-menu > li:hover > .sub-menu{ 1512 opacity: 1; 1513 visibility: visible; 1514} 1515 1516#uc_nav_menu_elementor_c92e273 .ue-menu > li.uc-active > .sub-menu { 1517 opacity: 1; 1518 visibility: visible; 1519} 1520 1521/* Style for dropdown links */ 1522#uc_nav_menu_elementor_c92e273 .ue-menu li > .sub-menu li { 1523 position: relative;
1524 display: block; 1525} 1526 1527/* Second and third dropdown level */ 1528#uc_nav_menu_elementor_c92e273 .ue-menu > li > .sub-menu li{ 1529 display: block; 1530} 1531 1532#uc_nav_menu_elementor_c92e273 .ue-menu > li > .sub-menu > li .sub-menu { 1533 opacity: 0; 1534 visibility: hidden; 1535 position: absolute; 1536 list-style: none; 1537 top:0px; 1538 z-index: 100; 1539} 1540 1541/* Second and third level appears */ 1542#uc_nav_menu_elementor_c92e273 .ue-menu > li .sub-menu li:hover > .sub-menu { 1543 opacity: 1; 1544 visibility: visible; 1545} 1546 1547#uc_nav_menu_elementor_c92e273 .ue-menu > li .sub-menu li.uc-active > .sub-menu { 1548 opacity: 1; 1549 visibility: visible; 1550} 1551 1552#uc_nav_menu_elementor_c92e273 li, 1553#uc_nav_menu_elementor_c92e273 a{ 1554 transition: all 0.3s ease-in-out; 1555} 1556 1557#uc_nav_menu_elementor_c92e273 ul{ 1558 transition: all 0.3s ease-in-out; 1559} 1560 1561#uc_nav_menu_elementor_c92e273 .ue-nav-menu-checkbox{ 1562 display: none; 1563} 1564 1565#uc_nav_menu_elementor_c92e273 .ue-nav-menu-mobile{ 1566 display: none; 1567 transition: all .3s; 1568 cursor: pointer; 1569} 1570 1571#uc_nav_menu_elementor_c92e273 .ue-nav-menu-icon, 1572#uc_nav_menu_elementor_c92e273 .ue-back-link-icon{ 1573 display: flex; 1574 transition: all .3s ease; 1575} 1576 1577#uc_nav_menu_elementor_c92e273 .ue-nav-menu-icon i { 1578 pointer-events: none; 1579} 1580 1581#uc_nav_menu_elementor_c92e273 .ue-back-link{ 1582 display: none !important; 1583} 1584 1585#uc_nav_menu_elementor_c92e273 .uc-close-side-menu{ 1586 display: none; 1587 transition: all .3s ease; 1588} 1589 1590#uc_nav_menu_elementor_c92e273 .ue-nav-menu-mobile > *{ 1591 display: none; 1592 justify-content: center; 1593 align-items: center; 1594} 1595#uc_nav_menu_elementor_c92e273 .ue-nav-menu-mobile > .uc-active{ 1596 display: flex; 1597} 1598 1599/* hover effects */ 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616/* end hover effects */ 1617 1618 1619@media only screen and (max-width: 1024px) { 1620 1621 #uc_nav_menu_elementor_c92e273 .ue-menu{ 1622 justify-content:; 1623 } 1624 } 1625 1626@media only screen and (max-width: 767px) { 1627 1628 #uc_nav_menu_elementor_c92e273 .ue-menu{ 1629 justify-content:; 1630 } 1631 } 1632 1633 1634@media only screen and (max-width: 1024px) { 1635 1636 #uc_nav_menu_elementor_c92e273 .ue-menu { 1637 transition: all .3s; 1638 flex-direction: column; 1639 top: 100%; 1640 left: 0; 1641 z-index: 1000; 1642 } 1643 1644 #uc_nav_menu_elementor_c92e273 .sub-menu{ 1645 visibility: visible !important; 1646 opacity: 1 !important; 1647 inset-inline-start: unset !important; 1648 transition-timing-function: ease; 1649 } 1650 1651 #uc_nav_menu_elementor_c92e273 .ue-nav-menu-mobile { 1652 position: relative; 1653 display: flex; 1654 align-items:center; 1655 justify-content:center; 1656 } 1657 1658 #uc_nav_menu_elementor_c92e273 .ue-nav-menu-checkbox:checked + .ue-menu { 1659 opacity: 1; 1660 pointer-events: all; 1661 } 1662 1663 /* open sub menus from side */ 1664 #uc_nav_menu_elementor_c92e273 .ue-menu{ 1665 width: 100%; 1666 position: absolute; 1667 transform: translate(0, -20px); 1668 opacity: 0; 1669 pointer-events: none; 1670 } 1671 1672 #uc_nav_menu_elementor_c92e273 .ue-nav-menu-checkbox:checked + .ue-menu { 1673 transform: translate(0, 20px); 1674 } 1675 1676 #uc_nav_menu_elementor_c92e273 .ue-menu > li > .sub-menu { 1677 width: 100%; 1678 position:relative; 1679 top:auto; 1680 } 1681 1682 #uc_nav_menu_elementor_c92e273 .ue-menu > li > .sub-menu > li .sub-menu { 1683 width: 100%; 1684 left: 0; 1685 z-index: 2; 1686 position:relative; 1687 top:auto; 1688 } 1689 /* end open sub menus from side */ 1690 1691} 1692 1693</style> 1694 1695<div id="uc_nav_menu_elementor_c92e273" class="ue-nav-menu ue-left-close" data-show-icons="true" data-breakpoint="1024" data-full-width="true" data-effect-style="no-hover-effects" data-behaviour="accordion"> 1696 1697 1698 <div class="ue-nav-menu-mobile-wrapper"> 1699 <label class="ue-nav-menu-mobile" for="mobile_menuuc_nav_menu_elementor_c92e273"> 1700 <span class="ue-nav-menu-mobile-icon-open"><i class='fas fa-bars'></i></span> 1701 <span class="ue-nav-menu-mobile-icon-close"><i class='fas fa-times'></i></span> 1702 </label> 1703 </div> 1704 1705 <input id="mobile_menuuc_nav_menu_elementor_c92e273" class="ue-nav-menu-checkbox" type="checkbox"> 1706 1707 1708 1709 <ul id="menu-municipio" class="ue-menu"><li id="menu-item-21" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children menu-item-21"><a href="#">MUNICÃPIO</a> 1710<ul class="sub-menu"> 1711 <li id="menu-item-2828" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2828"><a href="https://www.cm-penalvadocastelo.pt/municipio/caraterizacao/">Caraterização</a></li> 1712 <li id="menu-item-4547" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4547"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/">Câmara Municipal</a> 1713 <ul class="sub-menu"> 1714 <li id="menu-item-4551" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4551"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/camara-municipal-g-plano-de-prevencao-e-corrupcao/">Plano de Prevenção e Corrupção</a></li> 1715 <li id="menu-item-4552" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4552"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/presidente-da-camara/">Presidente da Câmara</a> 1716 <ul class="sub-menu"> 1717 <li id="menu-item-11102" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11102"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/presidente-da-camara/despachos/">Despachos</a></li> 1718 </ul> 1719</li> 1720 <li id="menu-item-4555" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4555"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/protocolos-e-contratos-programa/">Protocolos e Contratos Programa</a></li> 1721 <li id="menu-item-4561" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4561"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/registo-de-interesses/">Registo de Interesses</a></li> 1722 <li id="menu-item-4564" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4564"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/reunioes-de-camara/">Reuniões de Câmara</a></li> 1723 <li id="menu-item-4565" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4565"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/vereacao/">Vereadores</a></li> 1724 <li id="menu-item-4566" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4566"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/visao-missao-valores-e-objetivos/">Visão, Missão, Valores e Objetivos</a></li> 1725 <li id="menu-item-4569" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4569"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/codigos-de-boa-conduta/">Códigos de Boa Conduta e Norma de Controlo Interno</a></li> 1726 <li id="menu-item-4572" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4572"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/declaracao-patrimonial/">Declaração Patrimonial</a></li> 1727 <li id="menu-item-4573" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4573"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal/despesas-de-representacao/">Despesas de Representação</a></li> 1728 </ul> 1729</li> 1730 <li id="menu-item-2946" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2946"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/">Assembleia Municipal</a> 1731 <ul class="sub-menu"> 1732 <li id="menu-item-4593" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4593"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/atas-da-assembleia-municipal/">Atas da Assembleia Municipal</a></li> 1733 <li id="menu-item-4594" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4594"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/comissoes-conselhos-municipais-e-representantes-da-am/">Comissões/ Conselhos Municipais e Representantes da AM</a></li> 1734 <li id="menu-item-4595" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4595"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/composicao-assembleia/">Composição da Assembleia Municipal</a></li> 1735 <li id="menu-item-4598" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4598"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/editais-da-assembleia-municipal/">Editais da Assembleia Municipal</a></li> 1736 <li id="menu-item-4602" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4602"><a href="https://www.cm-penalvadocastelo.pt/municipio/municipio-g-assembleia-municipal/regulamentacao/municipio-g-assembleia-municipal-g-regimento/">Regimento da Assembleia Municipal</a></li> 1737 </ul> 1738</li> 1739 <li id="menu-item-2954" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2954"><a href="https://www.cm-penalvadocastelo.pt/municipio/camara-municipal-g-organograma-g-estrutura-organica/">Estrutura Orgânica</a></li> 1740 <li id="menu-item-3095" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-3063 current_page_item menu-item-has-children menu-item-3095"><a href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/" aria-current="page">Informação Financeira</a> 1741 <ul class="sub-menu"> 1742 <li id="menu-item-3111" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3111"><a href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/subvencoes-publicas/">Subvenções Públicas</a></li> 1743 <li id="menu-item-3112" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3112"><a href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/prestacao-de-contas/">Prestação de Contas</a></li> 1744 <li id="menu-item-3113" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3113"><a href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/lei-da-assuncao-dos-compromissos-e-dos-pagamentos-em-atraso-lcpa/">Lei da Assunção dos Compromissos e dos Pagamentos em Atraso (LCPA)</a></li> 1745 <li id="menu-item-3114" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3114"><a href="https://www.cm-penalvadocastelo.pt/municipio/informacao-financeira/documentos-previsionais/">Documentos Previsionais</a></li> 1746 </ul> 1747</li> 1748 <li id="menu-item-3148" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3148"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/">
1748Recursos Humanos</a> 1749 <ul class="sub-menu"> 1750 <li id="menu-item-3149" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3149"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/acumulacoes-de-funcoes-publicas/">Acumulações de funções públicas</a></li> 1751 <li id="menu-item-21425" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21425"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/alteracoes-de-posicionamento-remuneratorio/">Alterações de Posicionamento Remuneratório</a></li> 1752 <li id="menu-item-3150" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3150"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/balanco-social/">Balanço Social</a></li> 1753 <li id="menu-item-3151" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3151"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/mapa-de-pessoal/">Mapa de Pessoal</a></li> 1754 <li id="menu-item-3152" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3152"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/prestacao-de-servicos/">Prestação de Serviços</a></li> 1755 <li id="menu-item-22135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22135"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/recrutamento_mobilidade/">Recrutamento e Mobilidade</a></li> 1756 <li id="menu-item-3154" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3154"><a href="https://www.cm-penalvadocastelo.pt/municipio/recursos-humanos/siadap/">SIADAP</a></li> 1757 </ul> 1758</li> 1759 <li id="menu-item-3062" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3062"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/">Freguesias</a> 1760 <ul class="sub-menu"> 1761 <li id="menu-item-3060" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3060"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/1-freguesia-de-castelo-de-penalva/">Freguesia de Castelo de Penalva</a></li> 1762 <li id="menu-item-3058" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3058"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/2-freguesia-de-esmolfe/">Freguesia de Esmolfe</a></li> 1763 <li id="menu-item-3057" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3057"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/3-freguesia-de-germil/">Freguesia de Germil</a></li> 1764 <li id="menu-item-3056" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3056"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/4-freguesia-de-insua/">Freguesia de Ãnsua</a></li> 1765 <li id="menu-item-3061" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3061"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/freguesia-de-luzinde/">Freguesia de Lusinde</a></li> 1766 <li id="menu-item-3054" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3054"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/6-freguesia-de-pindo/">Freguesia de Pindo</a></li> 1767 <li id="menu-item-3053" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3053"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/7-freguesia-de-real/">Freguesia de Real</a></li> 1768 <li id="menu-item-3052" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3052"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/8-freguesia-de-sezures/">Freguesia de Sezures</a></li> 1769 <li id="menu-item-3051" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3051"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/9-freguesia-de-trancozelos/">Freguesia de Trancozelos</a></li> 1770 <li id="menu-item-3059" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3059"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/uniao-das-freguesias-de-antas-e-matela/">União das Freguesias de Antas e Matela</a></li> 1771 <li id="menu-item-3055" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3055"><a href="https://www.cm-penalvadocastelo.pt/municipio/freguesias/uniao-das-freguesias-de-vila-cova-do-covelo-e-mareco/">União das Freguesias de Vila Cova do Covelo e Mareco</a></li> 1772 </ul> 1773</li> 1774 <li id="menu-item-3158" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3158"><a href="https://www.cm-penalvadocastelo.pt/municipio/indice-de-transparencia-municipal/">Transparência Municipal</a> 1775 <ul class="sub-menu"> 1776 <li id="menu-item-31755" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31755"><a href="https://www.cm-penalvadocastelo.pt/municipio/indice-de-transparencia-municipal/sugestoes-reclamacoes-elogios/">Sugestões, Reclamações, Elogios</a></li> 1777 </ul> 1778</li> 1779 <li id="menu-item-12529" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-12529"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/">Projetos cofinanciados pela UE</a> 1780 <ul class="sub-menu"> 1781 <li id="menu-item-12530" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-12530"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/">Portugal 2020</a> 1782 <ul class="sub-menu"> 1783 <li id="menu-item-17076" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17076"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/arranjo-urbanistico-da-praca-antigo-municipio/">Arranjo UrbanÃstico da Praça (Antigo MunicÃpio)</a></li> 1784 <li id="menu-item-20999" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20999"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/arranjo-urbanistico-da-praca-magalhaes-coutinho-e-igreja-da-misericordia/">Arranjo UrbanÃstico da Praça Magalhães Coutinho e Igreja da Misericórdia</a></li> 1785 <li id="menu-item-14517" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14517"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/beneficiacao-e-conservacao-de-edificios-do-ensino-basico/">Beneficiação e Conservação de EdifÃcios do Ensino Básico</a></li> 1786 <li id="menu-item-12532" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12532"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/elaboracao-do-cadastro/">Cadastro das Infraestruturas de Ãguas e Saneamento do Concelho</a></li> 1787 <li id="menu-item-12531" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12531"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/etar-de-goje/">ETAR de Gôje</a></li> 1788 <li id="menu-item-14884" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14884"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/loja-de-promocao-dos-produtos-endogenos/">Loja de Promoção dos Produtos Endógenos</a></li> 1789 <li id="menu-item-22777" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22777"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/mobilidade-suave-em-viseu-dao-lafoes-implementacao-de-modos-suaves-na-vila-de-penalva-do-castelo/">Mobilidade Suave em Viseu Dão Lafões â Implementação de Modos suaves na Vila de Penalva do Castelo</a></li> 1790 <li id="menu-item-16985" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16985"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/recuperacao-do-antigo-edificio-dos-pacos-do-concelho/">Recuperação do Antigo EdifÃcio dos Paços do Concelho</a></li> 1791 <li id="menu-item-21018" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21018"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/requalificacao-da-rua-1o-de-dezembro/">Requalificação da Rua 1º de Dezembro</a></li> 1792 <li id="menu-item-21033" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21033"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/requalificacao-do-mosteiro-do-santo-sepulcro/">Requalificação do Mosteiro do Santo Sepulcro</a></li> 1793 <li id="menu-item-12538" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12538"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-casal-diz/">SAR Casal Diz</a></li> 1794 <li id="menu-item-12537" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12537"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-castelo-de-penalva/">SAR Castelo de Penalva</a></li> 1795 <li id="menu-item-12536" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12536"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-roriz/">SAR Roriz</a></li> 1796 <li id="menu-item-12535" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12535"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-insua-ii/">SAR Ãnsua II</a></li> 1797 <li id="menu-item-14089" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14089"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-insua-i/">SAR Ãnsua I</a></li> 1798 <li id="menu-item-12534" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12534"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-sezures/">SAR Sezures</a></li> 1799 <li id="menu-item-12859" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12859"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sar-encoberta/">SAR Encoberta</a></li> 1800 <li id="menu-item-12533" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12533"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/sistema-de-abastecimento-de-agua-ao-concelho/">Sistema de Abastecimento de Ãgua ao Concelho</a></li> 1801 </ul> 1802</li> 1803 <li id="menu-item-30222" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-has-children menu-item-30222"><a href="https://www.cm-penalvadocastelo.pt">Portugal 2030</a> 1804 <ul class="sub-menu"> 1805 <li id="menu-item-30225" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-30225"><a href="https://www.cm-penalvadocastelo.pt/municipio/projetos-cofinanciados-pela-ue/portugal-2020/20982-2/beneficiacao-e-retificacao-da-rua-herois-do-ultramar-sezures/">
1805Beneficiação e Retificação da Rua Heróis do Ultramar – Sezures</a></li> 1806 <li id="menu-item-31426" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-31426"><a href="https://www.cm-penalvadocastelo.pt/informacoes/transformacao-digital-na-regiao-de-viseu-dao-lafoes/">Transformação Digital na Região Viseu Dão Lafões â Um modelo, catorze municÃpios</a></li> 1807 </ul> 1808</li> 1809 </ul> 1810</li> 1811</ul> 1812</li> 1813<li id="menu-item-30" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-30"><a href="#">VIVER</a> 1814<ul class="sub-menu"> 1815 <li id="menu-item-31" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-31"><a href="#">Apoio ao MunicÃpe</a> 1816 <ul class="sub-menu"> 1817 <li id="menu-item-3228" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3228"><a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/atas-e-deliberacoes/">Atas e Deliberações</a></li> 1818 <li id="menu-item-3229" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3229"><a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/avisos/">Avisos</a></li> 1819 <li id="menu-item-3230" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3230"><a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/editais/">Editais</a></li> 1820 <li id="menu-item-3231" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3231"><a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/regulamentos/">Regulamentos</a></li> 1821 </ul> 1822</li> 1823 <li id="menu-item-36" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-36"><a href="#">Ação Social</a> 1824 <ul class="sub-menu"> 1825 <li id="menu-item-3232" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3232"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/apoio-a-deficiencia/">Apoio à Deficiência</a> 1826 <ul class="sub-menu"> 1827 <li id="menu-item-3233" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3233"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/apoio-a-deficiencia/bonecos-de-pano-pela-inclusao-das-criancas-com-deficiencia-2/">Bonecos de Pano pela inclusão das Crianças com Deficiência</a></li> 1828 <li id="menu-item-3234" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3234"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/apoio-a-deficiencia/projeto-reintegrar/">Projeto Reintegrar</a></li> 1829 </ul> 1830</li> 1831 <li id="menu-item-17522" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17522"><a href="https://www.cm-penalvadocastelo.pt/viver/conselho-municipal-de-juventude/">Conselho Municipal de Juventude</a></li> 1832 <li id="menu-item-3235" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3235"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/">Igualdade</a> 1833 <ul class="sub-menu"> 1834 <li id="menu-item-3245" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3245"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/dia-municipal-para-a-igualdade/">Dia Municipal para a Igualdade</a></li> 1835 <li id="menu-item-30214" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-30214"><a href="https://www.cm-penalvadocastelo.pt/download/2038/acao-social/30213/guia_novo.pdf">Guia – Práticas Locais de Igualdade</a></li> 1836 <li id="menu-item-3241" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3241"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/plano-municipal-para-a-igualdade/">Plano Municipal para a Igualdade</a> 1837 <ul class="sub-menu"> 1838 <li id="menu-item-15533" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15533"><a href="https://www.cm-penalvadocastelo.pt/download/1214/plano-municipal-para-igualdade/15527/relatorio-de-diagnostico-do-municipio-de-penalva-do-castelo.pdf">Diagnóstico</a></li> 1839 <li id="menu-item-15534" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15534"><a href="https://www.cm-penalvadocastelo.pt/download/1214/plano-municipal-para-igualdade/15526/plano-municipal-para-a-igualdade-e-a-nao-discriminacao.pdf">Plano Municipal</a></li> 1840 <li id="menu-item-18403" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-18403"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/plano-municipal-para-a-igualdade/relatorios-de-execucao/">Relatórios de Execução</a></li> 1841 </ul> 1842</li> 1843 <li id="menu-item-3240" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3240"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/a-desigualdade-de-genero-em-factos/">A (Des)Igualdade de Género em factos</a></li> 1844 <li id="menu-item-3242" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3242"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/eliminacao-da-violencia-contra-as-mulheres/">Eliminação da Violência contra as Mulheres</a></li> 1845 <li id="menu-item-14589" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14589"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/equipa-para-a-igualdade-na-vida-local/">Equipa para a Igualdade na Vida Local</a></li> 1846 <li id="menu-item-3243" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3243"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/mecanismos-para-a-igualdade-de-genero/">Mecanismos para a Igualdade de Género</a></li> 1847 <li id="menu-item-14572" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-14572"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/igualdade/protocolos/">Protocolos</a></li> 1848 </ul> 1849</li> 1850 <li id="menu-item-3251" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3251"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/rede-social/documentos-estrategicos/">
1850Documentos estratégicos</a></li> 1851 <li id="menu-item-3252" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3252"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/rede-social/penalva-em-rede/">Penalva em Rede</a></li> 1852 <li id="menu-item-3253" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3253"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/rede-social/servicos-g-acao-social-g-rede-social-g-emissao-de-pareceres/">Emissão de Pareceres</a></li> 1853 <li id="menu-item-3254" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3254"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/rede-social/acao-social-g-rede-social-g-legislacao/">Legislação</a></li> 1854 <li id="menu-item-3257" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3257"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/instituicoes-particulares-de-solidariedade-social/">Rede de Instituições Particulares de Solidariedade Social</a></li> 1855 <li id="menu-item-3258" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3258"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/gabinete-de-apoio-ao-emigrante/">Gabinete de Apoio ao Emigrante</a> 1856 <ul class="sub-menu"> 1857 <li id="menu-item-3259" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3259"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/gabinete-de-apoio-ao-emigrante/programa-regressar/">Programa Regressar</a></li> 1858 </ul> 1859</li> 1860 <li id="menu-item-3261" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3261"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/incentivo-a-natalidade/">Incentivo à Natalidade</a></li> 1861 <li id="menu-item-3263" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3263"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/acao-social-g-banco-local-de-voluntariado-g-assinatura-protocolo/">Banco Local de Voluntariado de Penalva do Castelo</a> 1862 <ul class="sub-menu"> 1863 <li id="menu-item-17582" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17582"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/acao-social-g-banco-local-de-voluntariado-g-assinatura-protocolo/4ps/">4PâS</a></li> 1864 </ul> 1865</li> 1866 <li id="menu-item-3265" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3265"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/apoio-a-habitacao/">Apoio à Habitação</a></li> 1867 <li id="menu-item-3260" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3260"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/loja-social/">Loja Social</a></li> 1868 <li id="menu-item-12663" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12663"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/cartao-senior-municipal/">Cartão Sénior Municipal</a></li> 1869 </ul> 1870</li> 1871 <li id="menu-item-37" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-37"><a href="#">Ambiente</a> 1872 <ul class="sub-menu"> 1873 <li id="menu-item-4295" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4295"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/elaboracao-do-cadastro-das-infraestruturas-de-abastecimento-de-agua-e-de-saneamento-de-agaus-residuais-do-municipio-de-penalva-do-castelo/">Cadastro das Infraestruturas</a></li> 1874 <li id="menu-item-4296" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4296"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/ambiente-g-ecocentro/">Ecocentro</a></li> 1875 <li id="menu-item-4297" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4297"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/servicos-g-ambiente-g-ecoponto/">Ecoponto</a></li> 1876 <li id="menu-item-24637" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24637"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/plano-municipal-de-acao-climatica/">Plano Municipal de Ação Climática</a></li> 1877 <li id="menu-item-4298" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4298"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/tarifa-social-de-energia/">Tarifa Social de Energia</a> 1878 <ul class="sub-menu"> 1879 <li id="menu-item-4302" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4302"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/tarifa-social-de-energia/contadores-inteligentes-de-energia-electrica/">Contadores Inteligentes de Energia Eléctrica</a></li> 1880 </ul> 1881</li> 1882 <li id="menu-item-4301" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4301"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/qualidade-da-agua/">Qualidade da Ãgua</a></li> 1883 <li id="menu-item-4303" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4303"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/limpeza-de-linhas-de-agua/">Limpeza de Linhas de Ãgua</a></li> 1884 <li id="menu-item-4304" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4304"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/poupanca-de-agua/">Poupança de Ãgua</a></li> 1885 <li id="menu-item-21048" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21048"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/recolhabio/">Recolha BiorresÃduos</a></li> 1886 <li id="menu-item-4305" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4305"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/recolha-de-monstros/">Recolha de Monstros</a></li> 1887 <li id="menu-item-4308" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4308"><a href="https://www.cm-penalvadocastelo.pt/viver/ambiente/residuos-solidos-urbanos/">ResÃduos Sólidos Urbanos</a></li> 1888 </ul> 1889</li> 1890 <li id="menu-item-3264" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-3264"><a href="https://www.cm-penalvadocastelo.pt/viver/servicos-g-acao-social/acao-social-g-cpcj/">CPCJ</a> 1891 <ul class="sub-menu"> 1892 <li id="menu-item-15189" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-15189"><a href="https://www.cm-penalvadocastelo.pt/download/1196/cpcj/15185/plppdcj_penalva-do-castelo.pdf">Projeto âAdéliaâ</a></li> 1893 </ul> 1894</li> 1895 <li id="menu-item-38" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-38"><a href="#">Cultura</a> 1896 <ul class="sub-menu"> 1897 <li id="menu-item-4314" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4314"><a href="#">Biblioteca Municipal</a> 1898 <ul class="sub-menu"> 1899 <li id="menu-item-4318" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4318"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/a-biblioteca/">A Biblioteca</a></li> 1900 <li id="menu-item-17714" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17714"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/concurso-nacional-de-leitura/">Concurso Nacional de Leitura</a></li> 1901 <li id="menu-item-4319" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4319"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/biblioteca-municipal-g-fundo-documental/">Fundo Documental</a></li> 1902 <li id="menu-item-4322" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4322"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/galeria-biblioteca/">Galeria Biblioteca</a></li> 1903 <li id="menu-item-4325" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4325"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/">Projetos Residentes</a> 1904 <ul class="sub-menu"> 1905 <li id="menu-item-4326" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4326"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/projeto-idiomas/">PROJETO IDIOMAS</a></li> 1906 <li id="menu-item-4327" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4327"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/certificacao-de-competencias-digitais/">CERTIFICAÃÃO DE COMPETÃNCIAS DIGITAIS</a></li> 1907 <li id="menu-item-4328" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4328"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/literacia-inform-tica-para-todos/">LITERACIA INFORM@TICA PARA TODOS</a></li> 1908 <li id="menu-item-4329" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4329"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/era-uma-vez/">âERA UMA VEZâ¦â</a></li> 1909 <li id="menu-item-4330" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4330"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/espaco-senior/">âESPAÃO SÃNIORâ</a></li> 1910 <li id="menu-item-4331" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4331"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/projetos-residentes/sabados-na-biblioteca-2/">SÃBADOS NA BIBLIOTECA</a></li> 1911 </ul> 1912</li> 1913 <li id="menu-item-4332" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4332"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/servicos-disponiveis/">
1913Serviços DisponÃveis</a></li> 1914 <li id="menu-item-4334" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4334"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/contece-na-biblioteca-municipal/">@contece na Biblioteca Municipal</a></li> 1915 <li id="menu-item-16334" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-16334"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/biblioteca/ribvdl/">RIBVDL</a></li> 1916 </ul> 1917</li> 1918 </ul> 1919</li> 1920 <li id="menu-item-39" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-39"><a href="#">Desporto</a> 1921 <ul class="sub-menu"> 1922 <li id="menu-item-4337" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4337"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/coletividades-desportivas/">Coletividades Desportivas</a></li> 1923 <li id="menu-item-29328" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29328"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/contratos-programa/">Contratos-Programa</a></li> 1924 <li id="menu-item-29258" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-29258"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/">Equipamentos Desportivos</a> 1925 <ul class="sub-menu"> 1926 <li id="menu-item-29263" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29263"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/campo-da-cerca/">Campo da Cerca</a></li> 1927 <li id="menu-item-29320" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29320"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/campo-de-santa-ana/">Campo de Santa Ana</a></li> 1928 <li id="menu-item-29309" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29309"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/campo-de-padel-e-tenis/">Campo de Padel e Ténis</a></li> 1929 <li id="menu-item-29278" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29278"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/ginasio-municipal/">Ginásio Municipal</a></li> 1930 <li id="menu-item-29314" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29314"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/pavilhao-gimno-desportivo-municipal/">Pavilhão Gimno Desportivo Municipal</a></li> 1931 <li id="menu-item-29316" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29316"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/piscina-municipal-coberta/">Piscina Municipal Coberta</a></li> 1932 <li id="menu-item-29315" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29315"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/equipamentos-desportivos/piscina-exterior/">Piscina Exterior</a></li> 1933 </ul> 1934</li> 1935 <li id="menu-item-17121" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17121"><a href="https://www.cm-penalvadocastelo.pt/viver/desporto/xvii-jogos-desportivos/">Jogos Desportivos</a></li> 1936 </ul> 1937</li> 1938 <li id="menu-item-40" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-40"><a href="#">Educação</a> 1939 <ul class="sub-menu"> 1940 <li id="menu-item-15094" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15094"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/carta-educativa/">Carta Educativa</a></li> 1941 <li id="menu-item-4347" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4347"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-conselho-municipal-de-educacao/">Conselho Municipal de Educação</a> 1942 <ul class="sub-menu"> 1943 <li id="menu-item-4348" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4348"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-conselho-municipal-de-educacao/composicao-do-conselho-municipal-de-educacao-de-penalva-do-castelo/">Composição</a></li> 1944 <li id="menu-item-4351" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4351"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-conselho-municipal-de-educacao/atas-do-conselho-municipal-de-educacao/">Atas do Conselho Municipal de Educação</a></li> 1945 </ul> 1946</li> 1947 <li id="menu-item-4353" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4353"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-escolas-basicas/">Escolas</a></li> 1948 <li id="menu-item-4354" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4354"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-escola-secundaria/">Escola Secundária</a></li> 1949 <li id="menu-item-4355" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4355"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/educacao-g-jardins-de-infancia/">Jardins de Infância</a></li> 1950 <li id="menu-item-4356" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4356"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/bolsas-de-estudo/">
1950Bolsas de Estudo</a></li> 1951 <li id="menu-item-4359" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4359"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/">Ação Social Escolar</a> 1952 <ul class="sub-menu"> 1953 <li id="menu-item-4362" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4362"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/atividades-de-animacao-e-de-apoio-a-familia-educacao-pre-escolar/">Atividades de Animação e de Apoio à FamÃlia â Educação Pré-Escolar</a></li> 1954 <li id="menu-item-4365" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4365"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/auxilios-economicos/">AuxÃlios Económicos</a></li> 1955 <li id="menu-item-4368" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4368"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/componente-de-apoio-a-familia/">Componente de Apoio à FamÃlia</a></li> 1956 <li id="menu-item-4371" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4371"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/programa-de-generalizacao-do-fornecimento-de-refeicoes-escolares-1o-ceb/">Programa de Generalização do Fornecimento de Refeições Escolares â 1º CEB</a></li> 1957 <li id="menu-item-15068" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15068"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/acao-social-escolar/regime-escolar/">Regime Escolar</a></li> 1958 </ul> 1959</li> 1960 <li id="menu-item-4374" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4374"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/transportes-escolares/">Transportes Escolares</a></li> 1961 <li id="menu-item-4377" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4377"><a href="#">Projetos</a> 1962 <ul class="sub-menu"> 1963 <li id="menu-item-4378" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4378"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/projetos/o-gaspar/">O Gaspar</a></li> 1964 <li id="menu-item-15075" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15075"><a href="https://www.cm-penalvadocastelo.pt/viver/educacao/projetos/promocao-do-sucesso-educativo/">Promoção do Sucesso Educativo</a></li> 1965 </ul> 1966</li> 1967 </ul> 1968</li> 1969 <li id="menu-item-4379" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4379"><a href="https://www.cm-penalvadocastelo.pt/viver/protecao-civil-g-gabinete-tecnico-florestal/">Gabinete Técnico Florestal</a> 1970 <ul class="sub-menu"> 1971 <li id="menu-item-4381" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4381"><a href="https://www.cm-penalvadocastelo.pt/viver/protecao-civil-g-gabinete-tecnico-florestal/planos-de-dfci/">Planos de DFCI</a></li> 1972 <li id="menu-item-4382" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4382"><a href="https://www.cm-penalvadocastelo.pt/viver/protecao-civil-g-gabinete-tecnico-florestal/faixas-de-gestao-de-combustiveis/">Faixas de Gestão de CombustÃveis</a></li> 1973 </ul> 1974</li> 1975 <li id="menu-item-4383" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4383"><a href="https://www.cm-penalvadocastelo.pt/viver/gabinete-de-insercao-profissional/">Gabinete de Inserção Profissional</a> 1976 <ul class="sub-menu"> 1977 <li id="menu-item-29426" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-29426"><a href="https://www.cm-penalvadocastelo.pt/viver/gabinete-de-insercao-profissional/portugal-2030/">Portugal 2030</a></li> 1978 </ul> 1979</li> 1980 <li id="menu-item-21279" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-21279"><a href="https://www.cm-penalvadocastelo.pt/viver/gabinete-de-psicologia/">Gabinete de Psicologia</a> 1981 <ul class="sub-menu"> 1982 <li id="menu-item-21282" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-21282"><a href="https://www.cm-penalvadocastelo.pt/viver/gabinete-de-psicologia/metodo-de-selecao-avaliacao-psicologica/">Método de Seleção Avaliação Psicológica</a></li> 1983 </ul> 1984</li> 1985 <li id="menu-item-15870" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-15870"><a href="https://www.cm-penalvadocastelo.pt/viver/marketing-territorial/">Marketing Territorial</a> 1986 <ul class="sub-menu"> 1987 <li id="menu-item-17195" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-17195"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/agenda-cultural/">Agenda Cultural</a></li> 1988 <li id="menu-item-4311" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4311"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/cultura-g-associacoes/">Associações</a></li> 1989 <li id="menu-item-4313" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4313"><a href="https://www.cm-penalvadocastelo.pt/viver/cultura/cultura-g-grupos-de-musica-tradicional/">Grupos de Música Tradicional</a></li> 1990 <li id="menu-item-15878" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-15878"><a href="https://www.cm-penalvadocastelo.pt/viver/marketing-territorial/evento-enoturismo/">
1990Evento Enoturismo</a></li> 1991 <li id="menu-item-4450" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4450"><a href="#">Produtos Endógenos</a> 1992 <ul class="sub-menu"> 1993 <li id="menu-item-4453" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4453"><a href="https://www.cm-penalvadocastelo.pt/visitar/produtos-endogenos/gastronomia-g-queijo-serra-da-estrela/">Queijo Serra da Estrela</a></li> 1994 <li id="menu-item-4454" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4454"><a href="https://www.cm-penalvadocastelo.pt/visitar/produtos-endogenos/gastronomia-g-vinho-dao-de-penalva/">Vinho Dão de Penalva</a></li> 1995 <li id="menu-item-4659" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4659"><a href="https://www.cm-penalvadocastelo.pt/visitar/produtos-endogenos/maca-bravo-de-esmolfe/">Maçã Bravo de Esmolfe</a></li> 1996 </ul> 1997</li> 1998 <li id="menu-item-12395" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-12395"><a href="https://www.cm-penalvadocastelo.pt/visitar/videos/">VÃdeos Promocionais</a></li> 1999 </ul> 2000</li> 2001 <li id="menu-item-4661" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4661"><a href="https://www.cm-penalvadocastelo.pt/viver/protecao-civil/">Proteção Civil</a></li> 2002 <li id="menu-item-4390" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4390"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/">SÃtio dos Animais</a> 2003 <ul class="sub-menu"> 2004 <li id="menu-item-4391" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4391"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/">Animais de Companhia</a></li> 2005 <li id="menu-item-4660" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4660"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/aviso-de-sequestros/">Aviso de Sequestros</a></li> 2006 <li id="menu-item-4397" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4397"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/campanha-de-sensibilizacao-para-o-nao-abandono-de-animais-de-companhia/">Campanha de Sensibilização</a></li> 2007 <li id="menu-item-4398" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4398"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/cao-guia/">Cão Guia</a></li> 2008 <li id="menu-item-4401" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4401"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/peste-suina-africana/">Peste SuÃna Africana</a></li> 2009 <li id="menu-item-4404" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4404"><a href="https://www.cm-penalvadocastelo.pt/viver/sitio-dos-animais/vacinacaoidentificacao-electronica/">Vacinação / Identificação Electrónica</a></li> 2010 </ul> 2011</li> 2012 <li id="menu-item-4405" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4405"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/">Urbanismo</a> 2013 <ul class="sub-menu"> 2014 <li id="menu-item-25972" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25972"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/area-de-reabilitacao-urbana-aru-de-sezures/">Ãrea de Reabilitação Urbana (ARU) de Sezures</a></li> 2015 <li id="menu-item-4412" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4412"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/1-a-alteracao-a-1-a-revisao-do-plano-diretor-de-penalva-do-castelo/">ALTERAÃÃO DA 1ª REVISÃO DO PLANO DIRETOR MUNICIPAL DE PENALVA DO CASTELO</a></li> 2016 <li id="menu-item-23162" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-23162"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/1-a-alteracao-a-1-a-revisao-do-pdm-de-penalva-do-castelo/">1.ª Alteração à 1.ª revisão do PDM de Penalva do Castelo</a></li> 2017 <li id="menu-item-4408" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4408"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/discussao-publica-reot/">Discussão Pública â REOT</a></li> 2018 <li id="menu-item-4409" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4409"><a href="https://www.cm-penalvadocastelo.pt/viver/urbanismo/plano-director-municipal/">PMOT â Planos Municipais de Ordenamento do Território</a></li> 2019 </ul> 2020</li> 2021 <li id="menu-item-11503" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-11503"><a href="#">Obras</a> 2022 <ul class="sub-menu"> 2023 <li id="menu-item-11504" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11504"><a href="https://www.cm-penalvadocastelo.pt/viver/obras-concluidas/">Obras concluÃdas</a></li> 2024 <li id="menu-item-11505" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11505"><a href="https://www.cm-penalvadocastelo.pt/viver/obras-em-execucao/">Obras em Execução</a></li> 2025 </ul> 2026</li> 2027 <li id="menu-item-11506" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11506"><a href="https://www.cm-penalvadocastelo.pt/informacoes/noticias/">NotÃcias</a></li> 2028</ul> 2029</li> 2030<li id="menu-item-119" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-119"><a href="#">VISITAR</a> 2031<ul class="sub-menu"> 2032 <li id="menu-item-4434" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4434"><a href="https://www.cm-penalvadocastelo.pt/visitar/artesanato/">Artesanato</a></li> 2033 <li id="menu-item-4439" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4439"><a href="https://www.cm-penalvadocastelo.pt/visitar/festas-feiras-e-tradicoes/">Festas, Feiras e Tradições</a></li> 2034 <li id="menu-item-4440" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4440"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-historia/">História</a></li> 2035 <li id="menu-item-4442" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4442"><a target="_blank" href="https://www.cm-penalvadocastelo.pt/download/1022/diversos/21750/mapa-turistico-2024.pdf">Mapa TurÃstico</a></li> 2036 <li id="menu-item-4443" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4443"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/">Monumentalidade</a> 2037 <ul class="sub-menu"> 2038 <li id="menu-item-4444" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4444"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/monumentos-por-freguesia/">Monumentos por Freguesia</a></li> 2039 <li id="menu-item-4445" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4445"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/patrimonio-natural/">Património Natural</a></li> 2040 </ul> 2041</li> 2042 <li id="menu-item-4447" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-4447"><a target="_blank" href="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2021/02/af_folheto.pdf">Núcleos Museológicos</a> 2043 <ul class="sub-menu"> 2044 <li id="menu-item-27053" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27053"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/nucleo-museologico-da-casa-da-insua/">Núcleo Museológico da Casa da Ãnsua</a></li> 2045 <li id="menu-item-27060" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27060"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/nucleo-museologico-da-misericordia-de-penalva-do-castelo/">Núcleo Museológico da Misericórdia de Penalva do Castelo</a></li> 2046 <li id="menu-item-27073" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27073"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-monumentalidade/nucleo-museologico-de-sangemil/">Núcleo Museológico de Sangemil</a></li> 2047 </ul> 2048</li> 2049 <li id="menu-item-4448" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4448"><a href="https://www.cm-penalvadocastelo.pt/visitar/turismo-g-onde-dormir/">Onde Dormir</a></li> 2050 <li id="menu-item-4449" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-4449"><a href="https://www.cm-penalvadocastelo.pt/visitar/gastronomia-g-restaurantes/">Onde Comer</a></li> 2051 <li id="menu-item-27728" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27728"><a href="https://www.cm-penalvadocastelo.pt/visitar/onde-sair-2/">Onde Sair</a></li> 2052 <li id="menu-item-28677" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-28677"><a href="https://www.cm-penalvadocastelo.pt/visitar/posto-de-turismo/">Posto de Turismo</a></li> 2053 <li id="menu-item-4456" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-4456"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/">Rotas de Estrada & Percursos Pedestres</a> 2054 <ul class="sub-menu"> 2055 <li id="menu-item-26881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26881"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr1-pct-rota-senhora-da-ribeira/">PR1 PCT â Rota Senhora da Ribeira</a></li> 2056 <li id="menu-item-26887" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26887"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr2-pct-caminho-dos-galegos-rota-de-santiago/">PR2 PCT Caminho dos Galegos â Rota de Santiago</a></li> 2057 <li id="menu-item-26893" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26893"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr3-pct-rota-dos-cenarios-do-passado/">PR3 PCT â Rota dos Cenários do Passado</a></li> 2058 <li id="menu-item-26900" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26900"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr4-pct-rota-dos-ambientes-rurais/">PR4 PCT â Rota dos Ambientes Rurais</a></li> 2059 <li id="menu-item-26908" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26908"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr5-pct-trilho-do-ryal/">PR5 PCT â Trilho do Ryal</a></li> 2060 <li id="menu-item-26915" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26915"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr6-pct-rota-dos-moinhos/">PR6 PCT â Rota dos Moinhos</a></li> 2061 <li id="menu-item-26921" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26921"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr7-pct-trilho-de-castendo/">PR7 PCT â Trilho de Castendo</a></li> 2062 <li id="menu-item-27253" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-27253"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/pr8-trilhos-das-antas/">PR8 PCT â Trilhos das Antas</a></li> 2063 <li id="menu-item-26937" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-26937"><a href="https://www.cm-penalvadocastelo.pt/visitar/rede-de-percursos-culturais/rotas-de-estrada-lugares-da-memoria/">Rotas de Estrada â Lugares da Memória</a></li> 2064 </ul> 2065</li> 2066 <li id="menu-item-4460" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-4460"><a target="_blank" href="https://www.cm-penalvadocastelo.pt/download/1022/diversos/24923/roteiro-2025.pdf">Roteiro TurÃstico</a></li> 2067</ul> 2068</li> 2069<li id="menu-item-5734" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-5734"><a href="https://www.cm-penalvadocastelo.pt/informacoes/contactos-3/">CONTACTOS</a> 2070<ul class="sub-menu"> 2071 <li id="menu-item-11106" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-11106"><a href="https://www.cm-penalvadocastelo.pt/informacoes/contactos-3/outros-contactos/">Contactos Ãteis</a></li> 2072</ul> 2073</li> 2074</ul> 2075 2076 2077 <div class="ue-nav-menu-icons-holder" style="display: none;"> 2078 <span class="ue-nav-menu-icon-expand"><i class='fas fa-plus'></i></span> 2079 <span class="ue-nav-menu-icon-collapse"><i class='fas fa-minus'></i></span> 2080 <span class="ue-nav-menu-icon-first-level-expand"><i class='fas fa-chevron-down'></i></span> 2081 </div> 2082 2083</div> 2084<!-- end WordPress Menu --> </div>
2085 </div> 2086 <div class="elementor-element elementor-element-3306570 elementor-widget__width-initial searchtopo elementor-hidden-tablet elementor-hidden-mobile elementor-widget elementor-widget-search" data-id="3306570" data-element_type="widget" data-e-type="widget" data-settings="{"submit_trigger":"both","pagination_type_options":"none"}" data-widget_type="search.default"> 2087 <div class="elementor-widget-container"> 2088 <search class="e-search hidden" role="search"> 2089 <form class="e-search-form" action="https://www.cm-penalvadocastelo.pt" method="get"> 2090 2091 2092 <label class="e-search-label" for="search-3306570"> 2093 <span class="elementor-screen-only"> 2094 Procurar </span> 2095 </label> 2096 2097 <div class="e-search-input-wrapper"> 2098 <input id="search-3306570" placeholder="Procurar..." class="e-search-input" type="search" name="s" value="" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="results-3306570" aria-haspopup="listbox"> 2099 <i aria-hidden="true" class="fas fa-times"></i> <output id="results-3306570" class="e-search-results-container hide-loader" aria-live="polite" aria-atomic="true" aria-label="Results for search" tabindex="0"> 2100 <div class="e-search-results"></div> 2101 </output> 2102 </div> 2103 2104 2105 <button class="e-search-submit " type="submit" aria-label="Procurar"> 2106 <i aria-hidden="true" class="fas fa-search"></i> 2107 </button> 2108 <input type="hidden" name="e_search_props" value="3306570-2913"> 2109 </form> 2110 </search> 2111 </div> 2112 </div> 2113 <div class="elementor-element elementor-element-5970e79 elementor-widget__width-initial searchtopo elementor-hidden-desktop elementor-widget elementor-widget-search" data-id="5970e79" data-element_type="widget" data-e-type="widget" data-settings="{"submit_trigger":"both","pagination_type_options":"none"}" data-widget_type="search.default"> 2114 <div class="elementor-widget-container"> 2115 <search class="e-search hidden" role="search"> 2116 <form class="e-search-form" action="https://www.cm-penalvadocastelo.pt" method="get"> 2117 2118 2119 <label class="e-search-label" for="search-5970e79"> 2120 <span class="elementor-screen-only"> 2121 Procurar </span> 2122 </label> 2123 2124 <div class="e-search-input-wrapper"> 2125 <input id="search-5970e79" placeholder="Procurar..." class="e-search-input" type="search" name="s" value="" autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="results-5970e79" aria-haspopup="listbox"> 2126 <i aria-hidden="true" class="fas fa-times"></i> <output id="results-5970e79" class="e-search-results-container hide-loader" aria-live="polite" aria-atomic="true" aria-label="Results for search" tabindex="0"> 2127 <div class="e-search-results"></div> 2128 </output> 2129 </div> 2130 2131 2132 <button class="e-search-submit " type="submit" aria-label="Procurar"> 2133 <i aria-hidden="true" class="fas fa-search"></i> 2134 </button> 2135 <input type="hidden" name="e_search_props" value="5970e79-2913"> 2136 </form> 2137 </search> 2138 </div> 2139 </div> 2140 </div> 2141 </div> 2142 </div> 2143 </section> 2144 </header> 2145 <div data-elementor-type="single-page" data-elementor-id="2812" class="elementor elementor-2812 elementor-location-single post-3063 page type-page status-publish hentry" data-elementor-post-type="elementor_library"> 2146 <div class="elementor-section elementor-top-section elementor-element elementor-element-da8c8ca elementor-section-height-min-height elementor-section-items-bottom elementor-section-content-middle elementor-section-boxed elementor-section-height-default" data-id="da8c8ca" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic","shape_divider_bottom":"mountains"}"> 2147 <div class="elementor-background-overlay"></div> 2148 <div class="elementor-shape elementor-shape-bottom" aria-hidden="true" data-negative="false"> 2149 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 100" preserveAspectRatio="none"> 2150 <path class="elementor-shape-fill" opacity="0.33" d="M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7 c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z"/> 2151 <path class="elementor-shape-fill" opacity="0.66" d="M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1 s-91.7-34.4
2151-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z"/> 2152 <path class="elementor-shape-fill" d="M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0 h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z"/> 2153</svg> </div> 2154 <div class="elementor-container elementor-column-gap-default"> 2155 <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8542302" data-id="8542302" data-element_type="column" data-e-type="column"> 2156 <div class="elementor-widget-wrap elementor-element-populated"> 2157 <section class="elementor-section elementor-inner-section elementor-element elementor-element-377228d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="377228d" data-element_type="section" data-e-type="section"> 2158 <div class="elementor-container elementor-column-gap-default"> 2159 <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-6724ada" data-id="6724ada" data-element_type="column" data-e-type="column"> 2160 <div class="elementor-widget-wrap"> 2161 </div> 2162 </div> 2163 <div class="elementor-column elementor-col-50 elementor-inner-column elementor-element elementor-element-f9997d5" data-id="f9997d5" data-element_type="column" data-e-type="column"> 2164 <div class="elementor-widget-wrap"> 2165 </div> 2166 </div> 2167 </div> 2168 </section> 2169 </div> 2170 </div> 2171 </div> 2172 </div> 2173 <section class="elementor-section elementor-top-section elementor-element elementor-element-4bc3b2b elementor-section-height-min-height elementor-section-items-top elementor-reverse-mobile elementor-section-boxed elementor-section-height-default" data-id="4bc3b2b" data-element_type="section" data-e-type="section" data-settings="{"background_background":"classic"}" aria-label="informacao"> 2174 <div class="elementor-container elementor-column-gap-default"> 2175 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-0146c35" data-id="0146c35" data-element_type="column" data-e-type="column"> 2176 <div class="elementor-widget-wrap elementor-element-populated"> 2177 <div class="elementor-element elementor-element-c340b2f elementor-widget elementor-widget-heading" data-id="c340b2f" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2178 <div class="elementor-widget-container"> 2179 <h1 class="elementor-heading-title elementor-size-default">Informação Financeira</h1> </div> 2180 </div> 2181 <div class="elementor-element elementor-element-d3b9130 elementor-widget elementor-widget-spacer" data-id="d3b9130" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default"> 2182 <div class="elementor-widget-container"> 2183 <div class="elementor-spacer"> 2184 <div class="elementor-spacer-inner"></div> 2185 </div> 2186 </div> 2187 </div> 2188 <div class="elementor-element elementor-element-669762e elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="669762e" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 2189 <div class="elementor-widget-container"> 2190 <div class="elementor-divider"> 2191 <span class="elementor-divider-separator"> 2192 </span> 2193 </div> 2194 </div> 2195 </div> 2196 </div> 2197 </div> 2198 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-19a1dd3" data-id="19a1dd3" data-element_type="column" data-e-type="column"> 2199 <div class="elementor-widget-wrap elementor-element-populated"> 2200 <div class="elementor-element elementor-element-9d53f60 elementor-align-right elementor-mobile-align-center elementor-widget elementor-widget-breadcrumbs" data-id="9d53f60" data-element_type="widget" data-e-type="widget" data-widget_type="breadcrumbs.default"> 2201 <div class="elementor-widget-container"> 2202 <p id="breadcrumbs"><span><span><a href="https://www.cm-penalvadocastelo.pt/">INÃCIO</a></span> » <span><a href="https://www.cm-penalvadocastelo.pt/municipio/">MUNICÃPIO</a></span> » <span class="breadcrumb_last" aria-current="page">Informação Financeira</span></span></p> </div>
2203 </div> 2204 </div> 2205 </div> 2206 </div> 2207 </section> 2208 <main class="elementor-section elementor-top-section elementor-element elementor-element-74f5b13 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="74f5b13" data-element_type="section" data-e-type="section"> 2209 <div class="elementor-background-overlay"></div> 2210 <div class="elementor-container elementor-column-gap-default"> 2211 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-a05af21" data-id="a05af21" data-element_type="column" data-e-type="column"> 2212 <div class="elementor-widget-wrap elementor-element-populated"> 2213 <div class="elementor-element elementor-element-010beea elementor-widget elementor-widget-theme-post-content" data-id="010beea" data-element_type="widget" data-e-type="widget" data-widget_type="theme-post-content.default"> 2214 <div class="elementor-widget-container"> 2215 <p>Documentos</p> 2216 </div> 2217 </div> 2218 </div> 2219 </div> 2220 <div class="elementor-column elementor-col-50 elementor-top-column elementor-element elementor-element-6c885a3 elementor-hidden-tablet" data-id="6c885a3" data-element_type="column" data-e-type="column" data-settings="{"background_background":"classic"}"> 2221 <div class="elementor-widget-wrap elementor-element-populated"> 2222 <div class="elementor-element elementor-element-f62f316 elementor-widget__width-auto elementor-widget elementor-widget-heading" data-id="f62f316" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2223 <div class="elementor-widget-container"> 2224 <h2 class="elementor-heading-title elementor-size-default">SERVIÃOS PARA CONSULTA</h2> </div> 2225 </div> 2226 <div class="elementor-element elementor-element-847887e elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box" data-id="847887e" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> 2227 <div class="elementor-widget-container"> 2228 <div class="elementor-icon-box-wrapper"> 2229 2230 <div class="elementor-icon-box-icon"> 2231 <a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/avisos/" class="elementor-icon" tabindex="-1" aria-label="AVISOS/ DISCUSSÃO PÃBLICA"> 2232 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="69.2961mm" height="69.2214mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 945 944"> <g id="avisos"> <polygon class="fil0" points="120,944 198,944 197,865 119,867 "></polygon> <polygon class="fil0" points="119,471 196,472 198,393 120,394 "></polygon> <polygon class="fil0" points="119,630 199,630 199,550 119,550 "></polygon> <path class="fil0" d="M137 84c98,-30 140,114 49,147 -96,35 -156,-114 -49,-147zm-17 -79c-71,19 -140,94 -115,190 54,205 355,125 307,-75 -18,-73 -95,-140 -192,-115z"></path> <polygon class="fil0" points="394,315 945,315 945,236 397,236 "></polygon> <path class="fil0" d="M382 791c45,-20 72,50 29,70 -46,21 -84,-46 -29,-70zm-105 49c14,146 247,135 235,-24 -11,-151 -250,-140 -235,24z"></path> <path class="fil0" d="M378 479c48,-24 76,45 36,67 -26,13 -67,-6 -56,-46 5,-20 8,-16 20,-21zm-100 53c8,58 65,107 136,96 58,-9 109,-67 97,-139 -26,-144 -256,-116 -233,43z"></path> <path class="fil0" d="M394 159c68,-1 352,8 394,-4l-1 -74 -393 -2 0 80z"></path> <polygon class="fil0" points="591,787 945,788 945,708 591,708 "></polygon> <path class="fil0" d="M594 472l349 0 2 -78 -353 0c-3,24 -5,55 2,78z"></path> <polygon class="fil0" points="592,944 866,944 865,866 591,867 "></polygon> <polygon class="fil0" points="590,630 788,630 788,550 591,550 "></polygon> <polygon class="fil0" points="120,787 198,787 198,708 118,708 "></polygon> </g></svg> </a> 2233 </div> 2234 2235 <div class="elementor-icon-box-content"> 2236 2237 <div class="elementor-icon-box-title"> 2238 <a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/avisos/" > 2239 AVISOS/ DISCUSSÃO PÃBLICA </a> 2240 </div> 2241 2242 2243 </div> 2244 2245 </div> 2246 </div>
2247 </div> 2248 <div class="elementor-element elementor-element-ad2f805 elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box" data-id="ad2f805" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> 2249 <div class="elementor-widget-container"> 2250 <div class="elementor-icon-box-wrapper"> 2251 2252 <div class="elementor-icon-box-icon"> 2253 <a href="https://recrutamento.cm-penalvadocastelo.pt" target="_blank" class="elementor-icon" tabindex="-1" aria-label="PROCEDIMENTOS CONCURSAIS"> 2254 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="69.4666mm" height="63.6282mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 950 870"> <g id="procedimentos-concursais"> <path class="fil0" d="M692 236l115 1c-8,-16 -42,-65 -61,-78 -11,25 -39,52 -54,77z"></path> <path class="fil0" d="M80 395l788 1 0 393 -788 0 0 -394zm554 -315l234 1 0 235 -236 0 2 -236zm-554 0l473 -1 0 237 -473 0 0 -236zm-77 726c5,27 29,52 55,59 30,8 738,3 787,3 92,0 103,-38 102,-124 0,-76 0,-151 0,-227 0,-75 0,-151 0,-227 0,-275 35,-290 -165,-290l-680 0c-91,0 -101,41 -100,126 0,85 -5,649 1,680z"></path> <path class="fil0" d="M159 553c88,0 588,10 631,-3l-1 -77 -630 0 0 80z"></path> <polygon class="fil0" points="159,238 184,237 199,237 474,237 475,158 440,158 158,158 "></polygon> <polygon class="fil0" points="159,710 632,709 632,631 159,631 "></polygon> </g></svg> </a> 2255 </div> 2256 2257 <div class="elementor-icon-box-content"> 2258 2259 <div class="elementor-icon-box-title"> 2260 <a href="https://recrutamento.cm-penalvadocastelo.pt" target="_blank" > 2261 PROCEDIMENTOS CONCURSAIS </a> 2262 </div> 2263 2264 2265 </div> 2266 2267 </div> 2268 </div> 2269 </div> 2270 <div class="elementor-element elementor-element-eaca501 elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box" data-id="eaca501" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> 2271 <div class="elementor-widget-container"> 2272 <div class="elementor-icon-box-wrapper"> 2273 2274 <div class="elementor-icon-box-icon"> 2275 <a href="https://servicosonline.cm-penalvadocastelo.pt/" target="_blank" class="elementor-icon" tabindex="-1" aria-label="SERVIÃOS ONLINE"> 2276 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="69.4868mm" height="63.5331mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 1682 1537"> <g id="servicos-online"> <path class="fil0" d="M142 1118l210 1 -1 137 140 0 0 -137 1046 0 0 278 -1395 0 0 -279zm4 -976l1391 0 1 836 -1047 0 0 -140 -139 3 0 137 -210 0 4 -836zm-141 1286c25,122 152,109 285,109l1204 0c164,0 183,-62 183,-220l0 -803c0,-478 64,-514 -294,-514l-1204 0c-160,1 -176,76 -176,224 0,145 -8,1154 2,1204z"></path> <path class="fil0" d="M718 766c30,-14 296,-190 311,-207l-311 -207 0 414z"></path> </g></svg> </a> 2277 </div> 2278 2279 <div class="elementor-icon-box-content"> 2280 2281 <div class="elementor-icon-box-title"> 2282 <a href="https://servicosonline.cm-penalvadocastelo.pt/" target="_blank" > 2283 SERVIÃOS ONLINE </a> 2284 </div> 2285 2286 2287 </div> 2288 2289 </div> 2290 </div> 2291 </div> 2292 <div class="elementor-element elementor-element-b5f61c2 elementor-position-inline-start elementor-view-default elementor-mobile-position-block-start elementor-widget elementor-widget-icon-box" data-id="b5f61c2" data-element_type="widget" data-e-type="widget" data-widget_type="icon-box.default"> 2293 <div class="elementor-widget-container"> 2294 <div class="elementor-icon-box-wrapper"> 2295 2296 <div class="elementor-icon-box-icon"> 2297 <a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/regulamentos/" class="elementor-icon" tabindex="-1" aria-label="REGULAMENTOS"> 2298 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="69.4043mm" height="69.1977mm" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 471 470"> <g id="regulamentos"> <path class="fil0" d="M40 196l314 0 0 235 -314 0 0 -235zm-38 -39c-4,82 0,172 -1,256 0,56 17,57 70,57l256 0c55,0 66,-3 66,-60 0,-82 3,-171 0,-253l-391 0z"></path> <path class="fil0" d="M202 78c6,-9 21,-18 30,-23 10,-6 25,-11 38,-13 29,-6 60,-1 84,11 11,5 23,13 31,19l23 27c15,22 23,47 24,78l39 0c-1,-82 -48,-135 -102,-161 -49,-23 -112,-21 -160,6 -15,9 -25,19 -37,26l0 -48 -40 0c0,23 -6,100 7,112 12,12 89,6 111,5l-1 -39 -47 0z"></path> <polygon class="fil0" points="177,392 217,392 217,235 177,235 "></polygon> <polygon class="fil0" points="99,392 139,392 138,235 99,235 "></polygon> <polygon class="fil0" points="256,391 295,392 295,236 256,235 "></polygon> </g></svg> </a> 2299 </div> 2300 2301 <div class="elementor-icon-box-content"> 2302 2303 <div class="elementor-icon-box-title"> 2304 <a href="https://www.cm-penalvadocastelo.pt/viver/apoio-ao-municipe/regulamentos/" > 2305 REGULAMENTOS </a> 2306 </div> 2307 2308 2309 </div> 2310 2311 </div> 2312 </div>
2313 </div> 2314 </div> 2315 </div> 2316 </div> 2317 </main> 2318 <div class="elementor-element elementor-element-7c4d5a9 e-flex e-con-boxed e-con e-parent" data-id="7c4d5a9" data-element_type="container" data-e-type="container"> 2319 <div class="e-con-inner"> 2320 <div class="elementor-element elementor-element-d677d68 elementor-widget elementor-widget-text-editor" data-id="d677d68" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default"> 2321 <div class="elementor-widget-container"> 2322 <p>Atualizado em 18 Dezembro 2025</p> </div> 2323 </div> 2324 </div> 2325 </div> 2326 </div> 2327 <footer data-elementor-type="footer" data-elementor-id="14" class="elementor elementor-14 elementor-location-footer" data-elementor-post-type="elementor_library"> 2328 <section class="elementor-element elementor-element-315cd6e e-flex e-con-boxed e-con e-parent" data-id="315cd6e" data-element_type="container" data-e-type="container" data-settings="{"background_background":"classic"}" aria-label="penalva do castelo"> 2329 <div class="e-con-inner"> 2330 <section class="elementor-element elementor-element-b540e79 e-con-full e-flex e-con e-child" data-id="b540e79" data-element_type="container" data-e-type="container" aria-label="penalva com vida"> 2331 </section> 2332 <section class="elementor-element elementor-element-f683425 e-con-full e-flex e-con e-child" data-id="f683425" data-element_type="container" data-e-type="container" aria-label="revista municipal"> 2333 </section> 2334 </div> 2335 </section> 2336 <footer class="elementor-element elementor-element-e40966c e-flex e-con-boxed e-con e-parent" data-id="e40966c" data-element_type="container" data-e-type="container" data-settings="{"background_background":"gradient"}"> 2337 <div class="e-con-inner"> 2338 <div class="elementor-element elementor-element-4b68b77 e-con-full e-flex e-con e-child" data-id="4b68b77" data-element_type="container" data-e-type="container"> 2339 <div class="elementor-element elementor-element-8e2aa34 e-con-full e-flex e-con e-child" data-id="8e2aa34" data-element_type="container" data-e-type="container"> 2340 <div class="elementor-element elementor-element-9b39264 e-con-full e-flex e-con e-child" data-id="9b39264" data-element_type="container" data-e-type="container"> 2341 <div class="elementor-element elementor-element-7403386 elementor-widget elementor-widget-heading" data-id="7403386" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2342 <div class="elementor-widget-container"> 2343 <h2 class="elementor-heading-title elementor-size-default">Contactos</h2> </div> 2344 </div> 2345 <div class="elementor-element elementor-element-fe0caa0 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="fe0caa0" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 2346 <div class="elementor-widget-container"> 2347 <div class="elementor-divider"> 2348 <span class="elementor-divider-separator"> 2349 </span> 2350 </div> 2351 </div> 2352 </div> 2353 <div class="elementor-element elementor-element-5e0bb6e elementor-mobile-align-center redux elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="5e0bb6e" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default"> 2354 <div class="elementor-widget-container"> 2355 <ul class="elementor-icon-list-items"> 2356 <li class="elementor-icon-list-item"> 2357 <span class="elementor-icon-list-icon"> 2358 <i aria-hidden="true" class="far fa-envelope-open"></i> </span> 2359 <span class="elementor-icon-list-text">[email protected]</span> 2360 </li> 2361 <li class="elementor-icon-list-item"> 2362 <span class="elementor-icon-list-icon"> 2363 <i aria-hidden="true" class="fas fa-phone-alt"></i> </span> 2364 <span class="elementor-icon-list-text">+ 351 232 640 020<br>*Chamada para a rede fixa nacional</span> 2365 </li> 2366 <li class="elementor-icon-list-item"> 2367 <span class="elementor-icon-list-icon"> 2368 <i aria-hidden="true" class="fas fa-map-marker-alt"></i> </span> 2369 <span class="elementor-icon-list-text">Avenida Castendo, 3550-185 Penalva do Castelo</span> 2370 </li> 2371 </ul> 2372 </div>
2373 </div> 2374 </div> 2375 <div class="elementor-element elementor-element-9efba82 e-con-full e-flex e-con e-child" data-id="9efba82" data-element_type="container" data-e-type="container"> 2376 <div class="elementor-element elementor-element-d36f599 elementor-widget elementor-widget-heading" data-id="d36f599" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2377 <div class="elementor-widget-container"> 2378 <h2 class="elementor-heading-title elementor-size-default">Consultas</h2> </div> 2379 </div> 2380 <div class="elementor-element elementor-element-8391026 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="8391026" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 2381 <div class="elementor-widget-container"> 2382 <div class="elementor-divider"> 2383 <span class="elementor-divider-separator"> 2384 </span> 2385 </div> 2386 </div> 2387 </div> 2388 <div class="elementor-element elementor-element-eb9c522 elementor-mobile-align-center redux elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="eb9c522" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default"> 2389 <div class="elementor-widget-container"> 2390 <ul class="elementor-icon-list-items"> 2391 <li class="elementor-icon-list-item"> 2392 <a href="https://www.cm-penalvadocastelo.pt/informacoes/contactos-3/outros-contactos/"> 2393 2394 <span class="elementor-icon-list-text">Outros Contactos</span> 2395 </a> 2396 </li> 2397 <li class="elementor-icon-list-item"> 2398 <a href="https://www.cm-penalvadocastelo.pt/informacoes/consultas-links/"> 2399 2400 <span class="elementor-icon-list-text">Links</span> 2401 </a> 2402 </li> 2403 <li class="elementor-icon-list-item"> 2404 <a href="https://www.cm-penalvadocastelo.pt/informacoes/documentos-online/"> 2405 2406 <span class="elementor-icon-list-text">Documentação Online</span> 2407 </a> 2408 </li> 2409 </ul> 2410 </div> 2411 </div> 2412 </div> 2413 <div class="elementor-element elementor-element-bb303dc e-con-full e-flex e-con e-child" data-id="bb303dc" data-element_type="container" data-e-type="container"> 2414 <div class="elementor-element elementor-element-e3f0362 elementor-widget elementor-widget-heading" data-id="e3f0362" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2415 <div class="elementor-widget-container"> 2416 <h2 class="elementor-heading-title elementor-size-default">Sobre o SÃtio</h2> </div> 2417 </div> 2418 <div class="elementor-element elementor-element-0eabee8 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="0eabee8" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 2419 <div class="elementor-widget-container"> 2420 <div class="elementor-divider"> 2421 <span class="elementor-divider-separator"> 2422 </span> 2423 </div> 2424 </div> 2425 </div> 2426 <div class="elementor-element elementor-element-3995a87 elementor-mobile-align-center redux elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="3995a87" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default"> 2427 <div class="elementor-widget-container"> 2428 <ul class="elementor-icon-list-items"> 2429 <li class="elementor-icon-list-item"> 2430 <a href="https://www.cm-penalvadocastelo.pt/informacoes/aviso-legal/"> 2431 2432 <span class="elementor-icon-list-text">Aviso Legal</span> 2433 </a> 2434 </li> 2435 <li class="elementor-icon-list-item"> 2436 <a href="https://www.cm-penalvadocastelo.pt/acessibilidade-e-usabilidade-municipio-de-penlva-do-castelo/"> 2437 2438 <span class="elementor-icon-list-text">Acessibilidade</span> 2439 </a> 2440 </li> 2441 <li class="elementor-icon-list-item"> 2442 <a href="https://www.cm-penalvadocastelo.pt/informacoes/politica-de-privacidade/"> 2443 2444 <span class="elementor-icon-list-text">
2444PolÃtica de Privacidade</span> 2445 </a> 2446 </li> 2447 <li class="elementor-icon-list-item"> 2448 <a href="https://www.cm-penalvadocastelo.pt/informacoes/resolucao-de-litigios-online/"> 2449 2450 <span class="elementor-icon-list-text">Resolução de LitÃgios Online</span> 2451 </a> 2452 </li> 2453 <li class="elementor-icon-list-item"> 2454 <a href="https://www.cm-penalvadocastelo.pt/informacoes/nota-informativa-rgpd/"> 2455 2456 <span class="elementor-icon-list-text">Nota Informativa - RGPD</span> 2457 </a> 2458 </li> 2459 <li class="elementor-icon-list-item"> 2460 <a href="https://www.livroreclamacoes.pt/Inicio/" target="_blank"> 2461 2462 <span class="elementor-icon-list-text">Livro de Reclamações</span> 2463 </a> 2464 </li> 2465 <li class="elementor-icon-list-item"> 2466 <a href="https://cm-penalvadocastelo.wiretrust.pt/" target="_blank"> 2467 2468 <span class="elementor-icon-list-text">Canal de Denúncias</span> 2469 </a> 2470 </li> 2471 </ul> 2472 </div> 2473 </div> 2474 </div> 2475 <div class="elementor-element elementor-element-596c896 e-con-full e-flex e-con e-child" data-id="596c896" data-element_type="container" data-e-type="container"> 2476 <div class="elementor-element elementor-element-df6c890 elementor-widget elementor-widget-heading" data-id="df6c890" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2477 <div class="elementor-widget-container"> 2478 <h2 class="elementor-heading-title elementor-size-default">Siga-nos</h2> </div> 2479 </div> 2480 <div class="elementor-element elementor-element-cede060 elementor-widget-divider--view-line elementor-widget elementor-widget-divider" data-id="cede060" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default"> 2481 <div class="elementor-widget-container"> 2482 <div class="elementor-divider"> 2483 <span class="elementor-divider-separator"> 2484 </span> 2485 </div> 2486 </div> 2487 </div> 2488 <div class="elementor-element elementor-element-66e86ee elementor-shape-circle e-grid-align-left e-grid-align-mobile-center redux elementor-grid-0 elementor-widget elementor-widget-social-icons" data-id="66e86ee" data-element_type="widget" data-e-type="widget" data-widget_type="social-icons.default"> 2489 <div class="elementor-widget-container"> 2490 <div class="elementor-social-icons-wrapper elementor-grid" role="list"> 2491 <span class="elementor-grid-item" role="listitem"> 2492 <a class="elementor-icon elementor-social-icon elementor-social-icon-facebook-f elementor-repeater-item-9758c9c" href="https://www.facebook.com/penalvadocastelo.municipio" target="_blank"> 2493 <span class="elementor-screen-only">Facebook-f</span> 2494 <i aria-hidden="true" class="fab fa-facebook-f"></i> </a> 2495 </span> 2496 <span class="elementor-grid-item" role="listitem"> 2497 <a class="elementor-icon elementor-social-icon elementor-social-icon-youtube elementor-repeater-item-82b3bad" href="https://www.youtube.com/user/cmpenalvadocastelo" target="_blank"> 2498 <span class="elementor-screen-only">Youtube</span> 2499 <i aria-hidden="true" class="fab fa-youtube"></i> </a> 2500 </span> 2501 </div> 2502 </div> 2503 </div> 2504 </div> 2505 </div> 2506 <div class="elementor-element elementor-element-82aa19d e-con-full e-flex e-con e-child" data-id="82aa19d" data-element_type="container" data-e-type="container"> 2507 <div class="elementor-element elementor-element-57978d7 e-con-full e-flex e-con e-child" data-id="57978d7" data-element_type="container" data-e-type="container"> 2508 <div class="elementor-element elementor-element-b85ded3 elementor-widget elementor-widget-heading" data-id="b85ded3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2509 <div class="elementor-widget-container"> 2510 <p class="elementor-heading-title elementor-size-default">MunicÃpio de Penalva do Castelo © 2026, Todos os direitos reservados</p> </div> 2511 </div> 2512 <div class="elementor-element elementor-element-f9f32cd redux elementor-widget elementor-widget-heading" data-id="f9f32cd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2513 <div class="elementor-widget-container"> 2514 <p class="elementor-heading-title elementor-size-default">Desenvolvido por: <a href="https://www.mixlife.pt" target="blank">Mixlife</a></p> </div>
2515 </div> 2516 </div> 2517 <div class="elementor-element elementor-element-171325c e-con-full e-flex e-con e-child" data-id="171325c" data-element_type="container" data-e-type="container"> 2518 <div class="elementor-element elementor-element-d60a752 elementor-widget elementor-widget-image" data-id="d60a752" data-element_type="widget" data-e-type="widget" data-widget_type="image.default"> 2519 <div class="elementor-widget-container"> 2520 <img width="450" height="73" src="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2026/04/CENTRO2030_BarraCofinan_Ass_RGB_2600px-002-e1779450660420.png" class="attachment-large size-large wp-image-31416" alt="" srcset="https://www.cm-penalvadocastelo.pt/wp-content/uploads/2026/04/CENTRO2030_BarraCofinan_Ass_RGB_2600px-002-e1779450660420.png 450w, https://www.cm-penalvadocastelo.pt/wp-content/uploads/2026/04/CENTRO2030_BarraCofinan_Ass_RGB_2600px-002-e1779450660420-300x49.png 300w" sizes="(max-width: 450px) 100vw, 450px" /> </div> 2521 </div> 2522 </div> 2523 </div> 2524 </div> 2525 </div> 2526 </footer> 2527 </footer> 2528
2529<script type="speculationrules"> 2530{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/hello-theme-child-master\/*","\/wp-content\/themes\/hello-elementor\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 2531</script>
2531 2532
2532<script> 2533 document.addEventListener('DOMContentLoaded', function() { 2534 const articles = document.querySelectorAll('article.elementor-post[role="listitem"]'); 2535 articles.forEach(article => { 2536 article.removeAttribute('role'); 2537 }); 2538 }); 2539 </script>
2539 2540
2540<script> 2541 // WCAG 2.5.3: Fix accessible names site-wide 2542 function fixAccessibleNames() { 2543 const allInteractive = document.querySelectorAll('a, button, [role="button"], [role="link"], input[type="submit"], input[type="button"]'); 2544 allInteractive.forEach(function(element) { 2545 let visibleText = element.textContent.trim() || element.innerText.trim(); 2546 let ariaLabel = element.getAttribute('aria-label'); 2547 let ariaLabelledby = element.getAttribute('aria-labelledby'); 2548 2549 // Skip if no visible text or already compliant 2550 if (!visibleText) return; 2551 2552 // Check aria-label compliance 2553 if (ariaLabel && !ariaLabel.toLowerCase().includes(visibleText.toLowerCase())) { 2554 element.setAttribute('aria-label', visibleText + ' - ' + ariaLabel); 2555 console.log('Fixed WCAG 2.5.3 aria-label for:', element); 2556 } 2557 2558 // Check aria-labelledby compliance 2559 if (ariaLabelledby) { 2560 let labelElement = document.getElementById(ariaLabelledby); 2561 if (labelElement) { 2562 let labelText = labelElement.textContent.trim() || labelElement.innerText.trim(); 2563 if (labelText && !labelText.toLowerCase().includes(visibleText.toLowerCase())) { 2564 labelElement.textContent = visibleText + ' - ' + labelText; 2565 console.log('Fixed WCAG 2.5.3 aria-labelledby for:', element); 2566 } 2567 } 2568 } 2569 }); 2570 } 2571 2572 // Fix aria-hidden elements with focusable content 2573 function fixAriaHiddenElements() { 2574 const ariaHiddenElements = document.querySelectorAll('[aria-hidden="true"]'); 2575 let fixedCount = 0; 2576 2577 ariaHiddenElements.forEach(function(hiddenElement) { 2578 // Find focusable elements within aria-hidden containers 2579 const focusableInHidden = hiddenElement.querySelectorAll( 2580 'a, button, input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="button"], [role="link"]' 2581 ); 2582 2583 if (focusableInHidden.length > 0) { 2584 focusableInHidden.forEach(function(focusableElement) { 2585 // Remove from tab order by setting tabindex="-1" 2586 focusableElement.setAttribute('tabindex', '-1'); 2587 fixedCount++; 2588 console.log('Fixed aria-hidden focusable element:', focusableElement); 2589 }); 2590 } 2591 }); 2592 2593 if (fixedCount > 0) { 2594 console.log('Fixed ' + fixedCount + ' focusable elements within aria-hidden containers'); 2595 } 2596 } 2597 2598 document.addEventListener('DOMContentLoaded', function() { 2599 // Improve accessibility for home link - WCAG 2.5.3 compliance 2600 let homeLink = document.querySelector('a[aria-label="InÃcio"]'); 2601 if (homeLink) { 2602 // Remove any problematic tabindex (links are naturally focusable) 2603 homeLink.removeAttribute('tabindex'); 2604 2605 // Get visible text to ensure WCAG 2.5.3 compliance 2606 let visibleText = homeLink.textContent.trim() || homeLink.innerText.trim(); 2607 let currentAriaLabel = homeLink.getAttribute('aria-label'); 2608 2609 // If there's visible text, make sure aria-label includes it 2610 if (visibleText && currentAriaLabel && !currentAriaLabel.includes(visibleText)) { 2611 homeLink.setAttribute('aria-label', visibleText + ' - ' + currentAriaLabel); 2612 } else if (!visibleText && !currentAriaLabel) { 2613 // Only set aria-label if there's no visible text at all 2614 homeLink.setAttribute('aria-label', 'Página inicial'); 2615 } 2616 } 2617 2618 // Improve Facebook link accessibility - WCAG 2.5.3 compliance 2619 let fbLink = document.querySelector('a[href*="facebook.com/penalvadocastelo.municipio"]'); 2620 if (fbLink) { 2621 // Remove any problematic tabindex 2622 fbLink.removeAttribute('tabindex'); 2623 2624 // Get visible text to include in accessible name (WCAG 2.5.3) 2625 let visibleText = fbLink.textContent.trim() || fbLink.innerText.trim() || 'Facebook'; 2626 2627 // Only add aria-label if there's no visible text or if we need to enhance it 2628 if (!visibleText || visibleText.toLowerCase() === 'facebook-f') { 2629 // Include visible text in accessible name 2630 fbLink.setAttribute('aria-label', visibleText + ''); 2631 } else if (visibleText && !fbLink.getAttribute('aria-label')) { 2632 // Add descriptive text while keeping visible text 2633 fbLink.setAttribute('aria-label', visibleText + ' - abre em nova janela'); 2634 } 2635 2636 // Ensure external links open in new window and are properly announced 2637 if (!fbLink.getAttribute('target')) { 2638 fbLink.setAttribute('target', '_blank'); 2639 fbLink.setAttribute('rel', 'noopener'); 2640 } 2641 } 2642 2643 // Find and fix any links that might have focus issues + WCAG 2.5.3 compliance 2644 const headerLinks = document.querySelectorAll('header a, .site-header a, [class*="header"] a'); 2645 headerLinks.forEach(function(link) { 2646 // Remove any problematic tabindex that might interfere with natural focus 2647 if (link.getAttribute('tabindex') === '0') { 2648 link.removeAttribute('tabindex'); 2649 } 2650 // Remove redundant role attributes 2651 if (link.getAttribute('role') === 'link') { 2652 link.removeAttribute('role'); 2653 } 2654 2655 // WCAG 2.5.3: Ensure accessible name includes visible text 2656 let visibleText = link.textContent.trim() || link.innerText.trim(); 2657 let ariaLabel = link.getAttribute('aria-label'); 2658 2659 if (visibleText && ariaLabel && !ariaLabel.toLowerCase().includes(visibleText.toLowerCase())) { 2660 // Update aria-label to include visible text 2661 link.setAttribute('aria-label', visibleText + ' - ' + ariaLabel); 2662 console.log('Fixed WCAG 2.5.3 for element:', link); 2663 } 2664 }); 2665 2666 // Ensure all interactive elements in header are properly focusable 2667 const interactiveElements = document.querySelectorAll('header button, .site-header button, [class*="header"] button, header [tabindex]');
2668 interactiveElements.forEach(function(element) { 2669 // Make sure buttons and interactive elements are not prevented from receiving focus 2670 element.addEventListener('focus', function(e) { 2671 // Remove any event handlers that might be calling preventDefault on focus 2672 e.stopImmediatePropagation(); 2673 }); 2674 }); 2675 2676 // Run accessible name fixes 2677 fixAccessibleNames(); 2678 2679 // Fix aria-hidden elements with focusable content 2680 fixAriaHiddenElements(); 2681 }); 2682 2683 // VISUAL FOCUS ENHANCEMENT - Only add visual indicators, don't interfere with behavior 2684 (function() { 2685 console.log('ðï¸ Loading visual focus enhancement'); 2686 2687 // Function to check if element should have visual enhancements 2688 function shouldEnhanceElement(element) { 2689 if (!element || !element.tagName) return false; 2690 2691 // Skip hidden elements to respect aria-hidden patterns 2692 if (element.getAttribute('aria-hidden') === 'true' || 2693 element.style.display === 'none' || 2694 element.style.visibility === 'hidden' || 2695 element.hidden || 2696 element.hasAttribute('inert')) { 2697 return false; 2698 } 2699 2700 // Only enhance visible, interactive elements 2701 const interactiveTags = ['A', 'BUTTON', 'INPUT', 'SELECT', 'TEXTAREA']; 2702 const isInteractive = interactiveTags.includes(element.tagName) || 2703 (element.getAttribute('tabindex') && element.getAttribute('tabindex') !== '-1') || 2704 element.getAttribute('role') === 'button' || 2705 element.getAttribute('role') === 'link'; 2706 2707 return isInteractive; 2708 } 2709 2710 // Add visual focus enhancements (non-intrusive) 2711 const addVisualEnhancements = function() { 2712 const elements = document.querySelectorAll('a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])'); 2713 elements.forEach(function(element) { 2714 if (shouldEnhanceElement(element) && !element.hasAttribute('data-focus-enhanced')) { 2715 element.setAttribute('data-focus-enhanced', 'true'); 2716 2717 // Add non-intrusive focus enhancement 2718 element.addEventListener('focus', function(e) { 2719 if (shouldEnhanceElement(e.target)) { 2720 e.target.classList.add('accessibility-focused'); 2721 } 2722 }, false); // Use false to not interfere with other listeners 2723 2724 element.addEventListener('blur', function(e) { 2725 e.target.classList.remove('accessibility-focused'); 2726 }, false); 2727 } 2728 }); 2729 }; 2730 2731 // Run enhancements 2732 addVisualEnhancements(); 2733 window.addEventListener('load', function() { 2734 addVisualEnhancements(); 2735 fixAccessibleNames(); 2736 fixAriaHiddenElements(); 2737 }); 2738 2739 // Re-run after dynamic content changes 2740 const contentObserver = new MutationObserver(function(mutations) { 2741 let shouldRerun = false; 2742 mutations.forEach(function(mutation) { 2743 if (mutation.addedNodes.length > 0) { 2744 shouldRerun = true; 2745 } 2746 }); 2747 if (shouldRerun) { 2748 setTimeout(function() { 2749 addVisualEnhancements(); 2750 fixAccessibleNames(); 2751 fixAriaHiddenElements(); 2752 }, 100); 2753 } 2754 }); 2755 2756 if (document.body) { 2757 contentObserver.observe(document.body, { 2758 childList: true, 2759 subtree: true 2760 }); 2761 } 2762 2763 console.log('ðï¸ Visual focus enhancement active - respecting aria-hidden elements'); 2764 })(); 2765 </script>
2765 2766 <div data-elementor-type="popup" data-elementor-id="9270" class="elementor elementor-9270 elementor-location-popup" data-elementor-settings="{"entrance_animation":"fadeIn","entrance_animation_duration":{"unit":"px","size":1.1999999999999999555910790149937383830547332763671875,"sizes":[]},"a11y_navigation":"yes","timing":[]}" data-elementor-post-type="elementor_library"> 2767 <section class="elementor-section elementor-top-section elementor-element elementor-element-5ac17675 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5ac17675" data-element_type="section" data-e-type="section"> 2768 <div class="elementor-container elementor-column-gap-default"> 2769 <div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-12415d51" data-id="12415d51" data-element_type="column" data-e-type="column"> 2770 <div class="elementor-widget-wrap elementor-element-populated"> 2771 <div class="elementor-element elementor-element-1ca3daf1 elementor-widget elementor-widget-heading" data-id="1ca3daf1" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2772 <div class="elementor-widget-container"> 2773 <h2 class="elementor-heading-title elementor-size-default">MunicÃpio de Penalva do Castelo</h2> </div> 2774 </div> 2775 <div class="elementor-element elementor-element-4baaba3 elementor-widget elementor-widget-heading" data-id="4baaba3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default"> 2776 <div class="elementor-widget-container"> 2777 <h2 class="elementor-heading-title elementor-size-default">Acesso Restrito</h2> </div> 2778 </div> 2779 <div class="elementor-element elementor-element-50228680 elementor-button-align-stretch elementor-widget elementor-widget-login" data-id="50228680" data-element_type="widget" data-e-type="widget" data-widget_type="login.default"> 2780 <div class="elementor-widget-container"> 2781 <form class="elementor-login elementor-form" method="post" action="https://www.cm-penalvadocastelo.pt/log_admin_castendo/" aria-label="Login form"> 2782 <input type="hidden" name="redirect_to" value="https://www.cm-penalvadocastelo.pt/informacoes/acesso-restrito/"> 2783 <div class="elementor-form-fields-wrapper"> 2784 <div class="elementor-field-type-text elementor-field-group elementor-column elementor-col-100 elementor-field-required"> 2785 <label for="user-50228680" class="elementor-field-label elementor-screen-only"> Username or Email Address</label> 2786 <input size="1" type="text" name="log" id="user-50228680" placeholder=" Username" class="elementor-field elementor-field-textual elementor-size-xs"> 2787 </div> 2788 <div class="elementor-field-type-text elementor-field-group elementor-column elementor-col-100 elementor-field-required"> 2789 <label for="password-50228680" class="elementor-field-label elementor-screen-only">Password</label> 2790 <input size="1" type="password" name="pwd" id="password-50228680" placeholder="Password" class="elementor-field elementor-field-textual elementor-size-xs"> 2791 </div> 2792 2793 2794 <div class="elementor-field-group elementor-column elementor-field-type-submit elementor-col-100"> 2795 <button type="submit" class="elementor-size-xs elementor-button" name="wp-submit"> 2796 <span class="elementor-button-text">ENTRAR</span> 2797 </button> 2798 </div> 2799 2800 </div> 2801 </form> 2802 </div> 2803 </div> 2804 </div> 2805 </div> 2806 </div> 2807 </section> 2808 </div> 2809
2809<script> 2810 ( () => { 2811 const lazyloadRunObserver = () => { 2812 const lazyloadBackgrounds = document.querySelectorAll( `.e-con.e-parent:not(.e-lazyloaded)` ); 2813 const lazyloadBackgroundObserver = new IntersectionObserver( ( entries ) => { 2814 entries.forEach( ( entry ) => { 2815 if ( entry.isIntersecting ) { 2816 let lazyloadBackground = entry.target; 2817 if( lazyloadBackground ) { 2818 lazyloadBackground.classList.add( 'e-lazyloaded' ); 2819 } 2820 lazyloadBackgroundObserver.unobserve( entry.target ); 2821 } 2822 }); 2823 }, { rootMargin: '200px 0px 200px 0px' } ); 2824 lazyloadBackgrounds.forEach( ( lazyloadBackground ) => { 2825 lazyloadBackgroundObserver.observe( lazyloadBackground ); 2826 } ); 2827 }; 2828 const events = [ 2829 'DOMContentLoaded', 2830 'elementor/lazyload/observe', 2831 ]; 2832 events.forEach( ( event ) => { 2833 document.addEventListener( event, lazyloadRunObserver ); 2834 } ); 2835 } )(); 2836 </script>
2836 2837
2837<script>document.addEventListener('DOMContentLoaded', function() { 2838 // ð¯ Only select the file download links, not the category/folder links. 2839 var fileLinks = document.querySelectorAll('a.wpfd_downloadlink'); 2840 2841 // Iterate over each file link found 2842 fileLinks.forEach(function(link) { 2843 var linkText = link.textContent.trim(); 2844 var titleAttr = link.getAttribute('title'); 2845 2846 // If the title attribute exists and is identical to the link text, remove it. 2847 if (titleAttr && titleAttr.trim() === linkText) { 2848 link.removeAttribute('title'); 2849 } 2850 }); 2851});</script>
2851<link rel='stylesheet' id='widget-login-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/css/widget-login.min.css?ver=4.2.3' media='all' /> 2852<link rel='stylesheet' id='widget-form-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/css/widget-form.min.css?ver=4.2.3' media='all' /> 2853<link rel='stylesheet' id='e-animation-fadeIn-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/lib/animations/styles/fadeIn.min.css?ver=4.2.4' media='all' /> 2854<link rel='stylesheet' id='e-popup-css' href='https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/css/conditionals/popup.min.css?ver=4.2.3' media='all' />
2855<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/ui/datepicker.min.js?ver=1.13.3" id="jquery-ui-datepicker-js"></script>
vendor: 1 bytes, line 2855
2855
2856<script id="jquery-ui-datepicker-js-after"> 2857jQuery(function(jQuery){jQuery.datepicker.setDefaults({"closeText":"Fechar","currentText":"Hoje","monthNames":["Janeiro","Fevereiro","Mar\u00e7o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],"monthNamesShort":["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],"nextText":"Seguinte","prevText":"Anterior","dayNames":["Domingo","Segunda-feira","Ter\u00e7a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S\u00e1bado"],"dayNamesShort":["Dom","Seg","Ter","Qua","Qui","Sex","S\u00e1b"],"dayNamesMin":["D","S","T","Q","Q","S","S"],"dateFormat":"MM d, yy","firstDay":1,"isRTL":false});}); 2858</script>
vendor: 1 bytes, line 2858
2858
2859<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/js/jquery.typewatch.js?ver=7.36.4.1790945426.1789571096" id="mec-typekit-script-js"></script>
vendor: 1 bytes, line 2859
2859
2860<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/featherlight/featherlight.js?ver=7.36.4.1790945426.1789571096" id="featherlight-js"></script>
vendor: 1 bytes, line 2860
2860
2861<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/select2/select2.full.min.js?ver=7.36.4.1790945426.1789571096" id="mec-select2-script-js"></script>
vendor: 1 bytes, line 2861
2861
2862<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/js/mec-general-calendar.js?ver=7.36.4.1790945426.1789571096" id="mec-general-calendar-script-js"></script>
vendor: 1 bytes, line 2862
2862
2863<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/tooltip/tooltip.js?ver=7.36.4.1790945426.1789571096" id="mec-tooltip-script-js"></script>
vendor: 1 bytes, line 2863
2863
2864<script id="mec-frontend-script-js-extra"> 2865var mecdata = {"day":"day","days":"days","hour":"hour","hours":"hours","minute":"minute","minutes":"minutes","second":"second","seconds":"seconds","next":"Next","prev":"Prev","elementor_edit_mode":"no","recapcha_key":"","ajax_url":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php","fes_nonce":"b3dc5cdb15","fes_thankyou_page_time":"2000","fes_upload_nonce":"b23b858332","current_year":"2026","current_month":"10","datepicker_format":"yy-mm-dd&Y-m-d","sf_update_url":"0","a11y_search_results":"Search updated. %1$s events found%2$s.","a11y_search_result":"Search updated. %1$s event found%2$s.","a11y_search_query":" for \"%s\"","a11y_search_address":" near \"%s\"","a11y_calendar_dialog":"Calendar date picker"}; 2866var mecdata = {"day":"day","days":"days","hour":"hour","hours":"hours","minute":"minute","minutes":"minutes","second":"second","seconds":"seconds","next":"Next","prev":"Prev","elementor_edit_mode":"no","recapcha_key":"","ajax_url":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php","fes_nonce":"b3dc5cdb15","fes_thankyou_page_time":"2000","fes_upload_nonce":"b23b858332","current_year":"2026","current_month":"10","datepicker_format":"yy-mm-dd&Y-m-d","sf_update_url":"0","a11y_search_results":"Search updated. %1$s events found%2$s.","a11y_search_result":"Search updated. %1$s event found%2$s.","a11y_search_query":" for \"%s\"","a11y_search_address":" near \"%s\"","a11y_calendar_dialog":"Calendar date picker","interval_units":{"daily":"days","weekly":"weeks","monthly":"months","yearly":"years"}}; 2867</script>
vendor: 1 bytes, line 2867
2867
2868<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/js/frontend.js?ver=7.36.4.1790945426.1789571096" id="mec-frontend-script-js"></script>
vendor: 1 bytes, line 2868
2868
2869<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/js/tracking.js?ver=7.36.4.1790945426.1789571096" id="mec-tracking-script-js"></script>
vendor: 1 bytes, line 2869
2869
2870<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/js/events.js?ver=7.36.4.1790945426.1789571096" id="mec-events-script-js"></script>
vendor: 1 bytes, line 2870
2870
2871<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/lity/lity.min.js?ver=7.36.4.1790945426.1789571096" id="mec-lity-script-js"></script>
vendor: 1 bytes, line 2871
2871
2872<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/colorbrightness/colorbrightness.min.js?ver=7.36.4.1790945426.1789571096" id="mec-colorbrightness-script-js"></script>
vendor: 1 bytes, line 2872
2872
2873<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/modern-events-calendar/assets/packages/owl-carousel/owl.carousel.min.js?ver=7.36.4.1790945426.1789571096" id="mec-owl-carousel-script-js"></script>
vendor: 1 bytes, line 2873
2873
2874<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/post-carousel-slider-for-elementor-pro/assets/vendors/slick/slick.js?ver=1.0.0" id="wb-slick-library-js"></script>
vendor: 1 bytes, line 2874
2874
2875<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/post-carousel-slider-for-elementor-pro/assets/js/main.js?ver=1.0.0" id="wb-ps-main-js"></script>
vendor: 1 bytes, line 2875
2875
2876<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/image-map-pro-wordpress/js/image-map-pro.min.js?ver=5.3.2" id="image-map-pro-dist-js-js"></script>
vendor: 1 bytes, line 2876
2876
2877<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/js/webpack.runtime.min.js?ver=4.2.4" id="elementor-webpack-runtime-js"></script>
vendor: 1 bytes, line 2877
2877
2878<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/js/frontend-modules.min.js?ver=4.2.4" id="elementor-frontend-modules-js"></script>
vendor: 1 bytes, line 2878
2878
2879<script id="elementor-frontend-js-before"> 2880var elementorFrontendConfig = {"environmentMode":{"edit":false,"wpPreview":false,"isScriptDebug":false},"i18n":{"shareOnFacebook":"Partilhar no Facebook","shareOnX":"Share on X","pinIt":"Fix\u00e1-lo","download":"Download","downloadImage":"Descarregar Imagem","fullscreen":"\u00c9cr\u00e3 Inteiro","zoom":"Zoom","share":"Partilhar","playVideo":"Reproduzir v\u00eddeo","previous":"Anterior","next":"Seguinte","close":"Fechar","a11yCarouselPrevSlideMessage":"Previous slide","a11yCarouselNextSlideMessage":"Next slide","a11yCarouselFirstSlideMessage":"This is the first slide","a11yCarouselLastSlideMessage":"This is the last slide","a11yCarouselPaginationBulletMessage":"Go to slide"},"is_rtl":false,"breakpoints":{"xs":0,"sm":480,"md":768,"lg":1025,"xl":1440,"xxl":1600},"responsive":{"breakpoints":{"mobile":{"label":"Mobile ao alto","value":767,"default_value":767,"direction":"max","is_enabled":true},"mobile_extra":{"label":"Mobile ao baixo","value":880,"default_value":880,"direction":"max","is_enabled":false},"tablet":{"label":"Tablet Portrait","value":1024,"default_value":1024,"direction":"max","is_enabled":true},"tablet_extra":{"label":"Tablet Landscape","value":1200,"default_value":1200,"direction":"max","is_enabled":false},"laptop":{"label":"Port\u00e1til","value":1366,"default_value":1366,"direction":"max","is_enabled":false},"widescreen":{"label":"Widescreen","value":2400,"default_value":2400,"direction":"min","is_enabled":false}},"hasCustomBreakpoints":false},"version":"4.2.4","is_static":false,"experimentalFeatures":{"additional_custom_breakpoints":true,"container":true,"e_panel_promotions":true,"theme_builder_v2":true,"nested-elements":true,"global_classes_should_enforce_capabilities":true,"e_variables":true,"e_opt_in_v4_page":true,"e_components":true,"e_interactions":true,"e_widget_creation":true,"import-export-customization":true,"e_pro_atomic_form":true,"e_pro_collection_loop":true,"mega-menu":true,"e_pro_variables":true,"e_pro_interactions":true},"urls":{"assets":"https:\/\/www.cm-penalvadocastelo.pt\/wp-content\/plugins\/elementor\/assets\/","ajaxurl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php","uploadUrl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-content\/uploads"},"nonces":{"floatingButtonsClickTracking":"5205aa43c4","atomicFormsSendForm":"6716631daf"},"swiperClass":"swiper","settings":{"page":[],"editorPreferences":[]},"kit":{"lightbox_description_src":"title","active_breakpoints":["viewport_mobile","viewport_tablet"],"global_image_lightbox":"yes","lightbox_enable_counter":"yes","lightbox_enable_fullscreen":"yes","lightbox_enable_zoom":"yes","lightbox_enable_share":"yes","lightbox_title_src":"title"},"post":{"id":3063,"title":"Informa%C3%A7%C3%A3o%20Financeira%20-%20Munic%C3%ADpio%20de%20Penalva%20do%20Castelo","excerpt":"","featuredImage":false}}; 2881</script>
vendor: 1 bytes, line 2881
2881
2882<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor/assets/js/frontend.min.js?ver=4.2.4" id="elementor-frontend-js"></script>
vendor: 1 bytes, line 2882
2882
2883<script src="https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-theme-child-master/js/post-carousel-accessibility.js?ver=2.0.0" id="post-carousel-accessibility-js"></script>
vendor: 1 bytes, line 2883
2883
2884<script src="https://www.cm-penalvadocastelo.pt/wp-content/themes/hello-theme-child-master/js/mec-carousel-accessibility.js?ver=2.0.0" id="mec-carousel-accessibility-js"></script>
vendor: 1 bytes, line 2884
2884
2885<script src="https://www.cm-penalvadocastelo.pt/wp-includes/js/jquery/ui/effect.min.js?ver=1.13.3" id="jquery-effects-core-js"></script>
vendor: 1 bytes, line 2885
2885
2886<script id="the-grid-js-extra"> 2887var tg_global_var = {"url":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php","nonce":"40b04ea2c5","is_mobile":null,"mediaelement":"","mediaelement_ex":null,"lightbox_autoplay":"","debounce":"","meta_data":null,"main_query":{"page":0,"pagename":"informacao-financeira","error":"","m":"","p":0,"post_parent":"","subpost":"","subpost_id":"","attachment":"","attachment_id":0,"name":"informacao-financeira","page_id":0,"second":"","minute":"","hour":"","day":0,"monthnum":0,"year":0,"w":0,"category_name":"","tag":"","cat":"","tag_id":"","author":"","author_name":"","feed":"","tb":"","paged":0,"meta_key":"","meta_value":"","preview":"","s":"","sentence":"","title":"","fields":"all","menu_order":"","embed":"","category__in":[],"category__not_in":[],"category__and":[],"post__in":[],"post__not_in":[],"post_name__in":[],"tag__in":[],"tag__not_in":[],"tag__and":[],"tag_slug__in":[],"tag_slug__and":[],"post_parent__in":[],"post_parent__not_in":[],"author__in":[],"author__not_in":[],"search_columns":[],"ignore_sticky_posts":false,"suppress_filters":false,"cache_results":true,"update_post_term_cache":true,"update_menu_item_cache":false,"lazy_load_term_meta":true,"update_post_meta_cache":true,"post_type":"","posts_per_page":10,"nopaging":false,"comments_per_page":"50","no_found_rows":false,"order":"DESC"}}; 2888</script>
vendor: 1 bytes, line 2888
2888
2889<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/the-grid/frontend/assets/js/the-grid.min.js?ver=2.7.9.1" id="the-grid-js"></script>
vendor: 1 bytes, line 2889
2889
2890<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/js/webpack-pro.runtime.min.js?ver=4.2.3" id="elementor-pro-webpack-runtime-js"></script>
vendor: 1 bytes, line 2890
2890
2891<script id="elementor-pro-frontend-js-before"> 2892var ElementorProFrontendConfig = {"ajaxurl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-admin\/admin-ajax.php","nonce":"cad11b6792","urls":{"assets":"https:\/\/www.cm-penalvadocastelo.pt\/wp-content\/plugins\/elementor-pro\/assets\/","rest":"https:\/\/www.cm-penalvadocastelo.pt\/wp-json\/"},"settings":{"lazy_load_background_images":true},"popup":{"hasPopUps":true},"shareButtonsNetworks":{"facebook":{"title":"Facebook","has_counter":true},"twitter":{"title":"Twitter"},"linkedin":{"title":"LinkedIn","has_counter":true},"pinterest":{"title":"Pinterest","has_counter":true},"reddit":{"title":"Reddit","has_counter":true},"vk":{"title":"VK","has_counter":true},"odnoklassniki":{"title":"OK","has_counter":true},"tumblr":{"title":"Tumblr"},"digg":{"title":"Digg"},"skype":{"title":"Skype"},"stumbleupon":{"title":"StumbleUpon","has_counter":true},"mix":{"title":"Mix"},"telegram":{"title":"Telegram"},"pocket":{"title":"Pocket","has_counter":true},"xing":{"title":"XING","has_counter":true},"whatsapp":{"title":"WhatsApp"},"email":{"title":"Email"},"print":{"title":"Print"},"x-twitter":{"title":"X"},"threads":{"title":"Threads"}},"facebook_sdk":{"lang":"pt_PT","app_id":""},"lottie":{"defaultAnimationUrl":"https:\/\/www.cm-penalvadocastelo.pt\/wp-content\/plugins\/elementor-pro\/modules\/lottie\/assets\/animations\/default.json"}}; 2893</script>
vendor: 1 bytes, line 2893
2893
2894<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/js/frontend.min.js?ver=4.2.3" id="elementor-pro-frontend-js"></script>
vendor: 1 bytes, line 2894
2894
2895<script src="https://www.cm-penalvadocastelo.pt/wp-content/plugins/elementor-pro/assets/js/elements-handlers.min.js?ver=4.2.3" id="pro-elements-handlers-js"></script>
2895 2896 2897<!-- Unlimited Elements 2.0.1 Scripts -->
2898<script type='text/javascript' id='unlimited-elements-scripts'> 2899 2900/* WordPress Menu scripts: */ 2901 2902jQuery(document).ready(function(){ 2903 2904 //jquery objects 2905 var g_objMenu = jQuery('#uc_nav_menu_elementor_c92e273'); 2906 var g_objFirstLevelMenuItems = g_objMenu.find('.ue-menu > .menu-item-has-children'); 2907 var g_objMenuItems = g_objMenu.find('.menu-item-has-children'); 2908 var g_objMenuInnerItems = g_objMenu.find('.menu-item-has-children .menu-item-has-children'); 2909 var g_objMenuLinks = g_objMenu.find('a'); 2910 var objExpandIcon = g_objMenu.find('.ue-nav-menu-icon-expand'); 2911 var g_objBurger = g_objMenu.find('.ue-nav-menu-mobile'); 2912 var g_objOpenBurgerIcon = g_objMenu.find('.ue-nav-menu-mobile-icon-open'); 2913 var g_objCloseBurgerIcon = g_objMenu.find('.ue-nav-menu-mobile-icon-close'); 2914 var g_objSideMeuClose = g_objMenu.find(".uc-close-side-menu"); 2915 2916 //classes 2917 var g_classActive = 'uc-active'; 2918 var hasChildrenClass = 'menu-item-has-children'; 2919 var backLinkClass = "ue-back-link"; 2920 var openClass = "ue-left-open"; 2921 var closeClass = "ue-left-close"; 2922 2923 //selectors 2924 var menuItemSelector = '.'+hasChildrenClass; 2925 var iconsSelector = '.ue-nav-menu-icon'; 2926 var subMenuSelector = '.sub-menu'; 2927 var linkSelector = '> a'; 2928 2929 //data attributes 2930 var g_showIcons = g_objMenu.data('show-icons'); 2931 var dataCustomBreakpoint = g_objMenu.data('breakpoint'); 2932 var dataBehaviour = g_objMenu.data('behaviour'); 2933 var clickableParents = true; 2934 var closeOnBodyClick = false; 2935 2936 //html elements 2937 var g_expandIconHtml = objExpandIcon.html(); 2938 2939 //window width 2940 var g_viewportWidth = jQuery(window).width(); 2941 var g_isResponsiveViewport = window.matchMedia("(max-width: "+dataCustomBreakpoint+"px)"); 2942 2943 function setHoverEffects(){ 2944 var dataEffect = g_objMenu.data("effect-style"); 2945 2946 if(dataEffect == "no-hover-effects") 2947 return(false); 2948 2949 if(!g_objMenuLinks) 2950 return(false); 2951 2952 g_objMenuLinks.each(function(){ 2953 var objLink = jQuery(this); 2954 var objParent = objLink.parent(); 2955 2956 objParent.addClass(dataEffect); 2957 2958 var objLinkText = objLink.text(); 2959 2960 objLink.attr("data-hover", objLinkText); 2961 }); 2962 } 2963 2964 function isClickedItemOnFirstLevel(objIcon){ 2965 var firstLevelIconClass = 'uc-first-level-item'; 2966 2967 //check if clicked itcon is not first level icon 2968 var objFirstLevelIcons = g_objFirstLevelMenuItems.find(linkSelector).find(iconsSelector); 2969 2970 objFirstLevelIcons.addClass(firstLevelIconClass); 2971 2972 if(objIcon.hasClass(firstLevelIconClass) == true) 2973 return(true); 2974 else 2975 return(false); 2976 } 2977 2978 function setActiveIcon(objClicked){ 2979 if(g_showIcons == false) 2980 return(false); 2981 2982 if(objClicked.hasClass(g_classActive) == false) 2983 return(false); 2984 2985 var objIcon = objClicked.find(iconsSelector); 2986 var collapseIconHtml = g_objMenu.find('.ue-nav-menu-icon-collapse').html(); 2987 2988 if(isClickedItemOnFirstLevel(objIcon) == true) 2989 return(false); 2990 console.log(g_objMenu) 2991 objIcon.html(collapseIconHtml); 2992 } 2993 2994 function setDisactiveIcon(objClicked){ 2995 if(g_showIcons == false) 2996 return(false); 2997 2998 var objIcon = objClicked.find(iconsSelector); 2999 3000 if(isClickedItemOnFirstLevel(objIcon) == true) 3001 return(false); 3002 3003 objIcon.html(g_expandIconHtml); 3004 } 3005 3006 function cancelFullWidth(objMobileMenu){ 3007 objMobileMenu.css({ 3008 'width': '', 3009 'left': '' 3010 }); 3011 } 3012 3013 function setMenuToFullWidth(objMobileMenu){ 3014 var dataFullWidth = g_objMenu.data('full-width'); 3015 3016 if(dataFullWidth == false || dataBehaviour == "slide") 3017 return(false); 3018 3019 //if not mobile viewport - cancel full width and exit function 3020 if(g_isResponsiveViewport.matches == false){ 3021 cancelFullWidth(objMobileMenu); 3022 return(false); 3023 } 3024 3025 //set width to full 3026 objMobileMenu.css('width', g_viewportWidth+'px'); 3027 3028 //set left position 3029 var menuLeftPosition = g_objMenu.offset().left; 3030 3031 objMobileMenu.css('left', -menuLeftPosition+'px'); 3032 } 3033 3034 function initResponsiveMode(isResize){
3035 var objSubMenus = g_objMenu.find(subMenuSelector); 3036 var objMobileMenu = g_objMenu.find('.ue-menu'); 3037 var mobileClass = 'uc-mobile'; 3038 var wordpressMenuClass = "uc-wp-menu-mode"; 3039 3040 //update viewport width value 3041 g_viewportWidth = jQuery(window).width(); 3042 3043 //set full width if needed 3044 setTimeout(function(){ 3045 setMenuToFullWidth(objMobileMenu); 3046 },200); 3047 3048 if(g_isResponsiveViewport.matches == false){ 3049 3050 //remove mobile class from menu 3051 objMobileMenu.removeClass(mobileClass); 3052 jQuery('body').removeClass(wordpressMenuClass); 3053 3054 if(!isResize || isResize == false) 3055 objSubMenus.slideDown(300); 3056 3057 var objLinks = objSubMenus.prev(); 3058 3059 correctOpenMenuPosition(objLinks); 3060 } 3061 3062 if(g_isResponsiveViewport.matches == true){ 3063 //add mobile class to menu 3064 objMobileMenu.addClass(mobileClass); 3065 jQuery('body').addClass(wordpressMenuClass); 3066 3067 if(!isResize && dataBehaviour != "slide" || isResize == false && dataBehaviour != "slide") 3068 objSubMenus.slideUp(300); 3069 3070 //slide up all sub menus after entering responsive breakpoint 3071 if(isResize == true && dataBehaviour != "slide") 3072 objSubMenus.slideUp(300); 3073 3074 if(g_objBurger.hasClass(g_classActive) == true){ 3075 3076 g_objOpenBurgerIcon.removeClass(g_classActive); 3077 g_objCloseBurgerIcon.addClass(g_classActive); 3078 3079 }else{ 3080 3081 g_objOpenBurgerIcon.addClass(g_classActive); 3082 g_objCloseBurgerIcon.removeClass(g_classActive); 3083 3084 } 3085 } 3086 } 3087 3088 /* 3089 * correct menu item position when there is no space inside viewport 3090 */ 3091 function correctOpenMenuPosition(objTarget){ 3092 //only on desktop 3093 if(g_isResponsiveViewport.matches == true) 3094 return(false); 3095 3096 var objSubMenu = objTarget.next(); 3097 3098 // if no sub menus return 3099 if(!objSubMenu.length) 3100 return(false); 3101 3102 var objParentSubMenus = objTarget.parents(subMenuSelector); 3103 3104 //search only from second level menu items 3105 if(!objParentSubMenus.length) 3106 return(false); 3107 3108 //each parent submenu 3109 objParentSubMenus.each(function(parentIndex, parent){ 3110 var objParentSubMenu = jQuery(this); 3111 3112 // Get the position of the menu item relative to the viewport 3113 var objChildSubMenus = objParentSubMenu.find('li >'+subMenuSelector); 3114 3115 if(!objChildSubMenus.length) 3116 return(true); 3117 3118 //each child submenu 3119 objChildSubMenus.each(function(childIndex, child){ 3120 var objChildSubMenu = jQuery(this); 3121 3122 //width of the child 3123 var menuItemChildWidth = objChildSubMenu.width(); 3124 3125 //width of the parent 3126 var menuItemParentWidth = objParentSubMenu.width(); 3127 3128 //right offset of the parent 3129 var menuItemRightOffset = objParentSubMenu.offset().left + menuItemParentWidth; 3130 var menuItemLeftOffset = objParentSubMenu.offset().left; 3131 3132 // Get the available space on both sides of the screen 3133 var spaceRight = window.innerWidth - menuItemRightOffset; 3134 3135 //get inset-inline-start value 3136 var insetInlineStart = objChildSubMenu.css('inset-inline-start'); 3137 3138 // if there is NOT enough room (left or right) then invert insert-inline-start 3139 if (menuItemChildWidth >= spaceRight || menuItemChildWidth >= menuItemLeftOffset) 3140 objChildSubMenu.css('inset-inline-start', '-'+insetInlineStart); 3141 3142 // if there is NOT enough room anywhere 3143 if (menuItemChildWidth >= spaceRight && menuItemChildWidth >= menuItemLeftOffset){ 3144 console.log('Can"t correct position of the dropdown, please adjust width of menu items'); 3145 return(true); 3146 } 3147 3148 //if there is enough room then cancel invert insert-inline-start 3149 if (menuItemChildWidth < spaceRight && childIndex != parentIndex){ 3150 //menuItemChildWidth x2 times because its equal to inset-inline-start 3151 var childSubMenuOffsetRight = objParentSubMenu.offset().left + menuItemParentWidth + menuItemChildWidth + menuItemChildWidth; 3152
3153 //cancel when child sub-menu offset right is not grater then viewport width (must check if after canceling won't be any horizontal scroll) 3154 if(childSubMenuOffsetRight < window.innerWidth) 3155 objChildSubMenu.css('inset-inline-start', ''); 3156 } 3157 }); 3158 }); 3159 } 3160 3161 /* 3162 * responsive mode menu item click 3163 */ 3164 function onMenuLinkClick(e, objLink){ 3165 if(g_isResponsiveViewport.matches == false) 3166 return(true); 3167 3168 var objSubMenu = objLink.next(); 3169 3170 //if click on active item then close it 3171 if(objLink.hasClass(g_classActive) == true){ 3172 setDisactiveIcon(objLink); 3173 3174 if(dataBehaviour != "slide") 3175 objSubMenu.slideUp(300); 3176 3177 objLink.removeClass(g_classActive); 3178 3179 return(true); 3180 } 3181 3182 var objSubMenusParent = objSubMenu.parents(subMenuSelector); 3183 var objSubMenusNotParents = g_objMenu.find(subMenuSelector).not(objSubMenusParent); 3184 var objMenuLinksParent = objLink.parents(subMenuSelector).prev(); 3185 var objMenuLinksNotParents = g_objMenu.find('a').not(objMenuLinksParent); 3186 3187 objMenuLinksNotParents.removeClass(g_classActive); 3188 objLink.addClass(g_classActive); 3189 3190 setDisactiveIcon(objMenuLinksNotParents); 3191 setActiveIcon(objLink); 3192 3193 if(dataBehaviour != "slide"){ 3194 objSubMenusNotParents.slideUp(300); 3195 objSubMenu.slideDown(300); 3196 } 3197 3198 if(objSubMenu.length > 0) 3199 e.preventDefault(); 3200 } 3201 3202 function onMenuInnerItemMouseover(e){ 3203 if(g_isResponsiveViewport.matches == true) 3204 return(false); 3205 3206 var objHovered = jQuery(this); 3207 var objItem = objHovered.find(linkSelector); 3208 3209 setTimeout(function(){ 3210 setActiveIcon(objItem); 3211 },100); 3212 3213 var objTarget = jQuery(e.target); 3214 correctOpenMenuPosition(objTarget); 3215 } 3216 3217 function onMenuInnerItemMouseLeave(){ 3218 if(g_isResponsiveViewport.matches == true) 3219 return(false); 3220 3221 var objMenuItem = jQuery(this); 3222 var objItem = objMenuItem.find(linkSelector); 3223 3224 setDisactiveIcon(objItem); 3225 } 3226 3227 /** 3228 * use this funciton to add active class to all menu item links 3229 */ 3230 function onMenuItemMouseover(){ 3231 if(g_isResponsiveViewport.matches == true) 3232 return(false); 3233 3234 var objHovered = jQuery(this); 3235 var objItem = objHovered.find(linkSelector); 3236 3237 g_objMenuItems.removeClass(g_classActive); 3238 objItem.addClass(g_classActive); 3239 } 3240 3241 /** 3242 * use this funciton to add active class to all menu item links 3243 */ 3244 function onMenuItemMouseLeave(){ 3245 if(g_isResponsiveViewport.matches == true) 3246 return(false); 3247 3248 var objHovered = jQuery(this); 3249 var objItem = objHovered.find(linkSelector); 3250 3251 objItem.removeClass(g_classActive); 3252 } 3253 3254 function setFirstLevelIcons(){ 3255 if(g_showIcons == false) 3256 return(false); 3257 3258 var objFirstLevelMenuLinks = g_objFirstLevelMenuItems.find(linkSelector); 3259 var objFirstLevelExpandIcon = g_objMenu.find('.ue-nav-menu-icon-first-level-expand'); 3260 var firstLevelExpandIconHtml = objFirstLevelExpandIcon.html(); 3261 var iconWrapperHtml = "<span class='ue-nav-menu-icon'>"+firstLevelExpandIconHtml+"</span>"; 3262 3263 objFirstLevelMenuLinks.append(iconWrapperHtml); 3264 3265 } 3266 3267 function setIcons(){ 3268 if(g_showIcons == false) 3269 return(false); 3270 3271 if(!g_objMenuInnerItems) 3272 return(false); 3273 3274 var objMenuLinks = g_objMenuInnerItems.find(linkSelector); 3275 var iconHtml = "<span class='ue-nav-menu-icon'>"+g_expandIconHtml+"</span>"; 3276 3277 objMenuLinks.append(iconHtml); 3278 } 3279 3280 function onBurgerClick(){ 3281 if(dataBehaviour != "slide"){ 3282 if(g_objBurger.hasClass(g_classActive) == true){ 3283 3284 g_objOpenBurgerIcon.addClass(g_classActive); 3285 g_objCloseBurgerIcon.removeClass(g_classActive); 3286 3287 g_objBurger.removeClass(g_classActive); 3288 3289 }else{ 3290 3291 g_objOpenBurgerIcon.removeClass(g_classActive); 3292 g_objCloseBurgerIcon.addClass(g_classActive); 3293 3294 g_objBurger.addClass(g_classActive); 3295 } 3296 } 3297 3298 if(dataBehaviour == "slide"){
3299 var isOpened = g_objMenu.hasClass(openClass); 3300 3301 if(isOpened == true){ 3302 g_objMenu.removeClass(openClass); 3303 g_objMenu.addClass(closeClass); 3304 }else{ 3305 g_objMenu.removeClass(closeClass); 3306 g_objMenu.addClass(openClass); 3307 } 3308 } 3309 } 3310 3311 function onKeyDown(e){ 3312 3313 //only on desktop 3314 if(g_isResponsiveViewport.matches == true) 3315 return(true); 3316 3317 //listen only after 'tab' key 3318 if(e.keyCode != 9) 3319 return(true); 3320 3321 //find all 'li' tags 3322 var objItems = g_objMenu.find('li'); 3323 3324 //set small timeout, so current menu item was mark as focused and triggered 3325 setTimeout(function(){ 3326 3327 //look after all menu 'li' tags 3328 objItems.each(function(){ 3329 3330 var objItem = jQuery(this); 3331 3332 //if link not focused - skip 3333 if(objItem.find(linkSelector).is(':focus') == false) 3334 return(true); 3335 3336 var objLink = objItem.find(linkSelector); 3337 var objSubMenu = objLink.next(); 3338 3339 //remove active class from others menu items except parent ones 3340 var objMenuLinksParent = objLink.parents(subMenuSelector).prev(); 3341 var objMenuLinksNotParents = g_objMenu.find('.ue-menu '+menuItemSelector+' '+subMenuSelector+' a').not(objMenuLinksParent); 3342 var objParentsMenuitems = objItem.parents(menuItemSelector); 3343 var objMenuItemsNotParents = objItems.not(objParentsMenuitems); 3344 3345 var objFirstLevelMenuLinks = jQuery('.ue-nav-menu .ue-menu > li '+linkSelector+''); 3346 var isFocusedFirstLevelActiveChildrenLinks = objFirstLevelMenuLinks.next().find('li '+linkSelector).is(':focus'); 3347 3348 //if there is no expanded menu items inside first level menu items then remove active class 3349 if(isFocusedFirstLevelActiveChildrenLinks == false) 3350 objFirstLevelMenuLinks.removeClass(g_classActive); 3351 3352 objMenuLinksNotParents.removeClass(g_classActive); 3353 objMenuItemsNotParents.removeClass(g_classActive); 3354 3355 setDisactiveIcon(objMenuLinksNotParents); 3356 3357 //add active class and use css to open sub menu 3358 objItem.addClass(g_classActive); 3359 objLink.addClass(g_classActive); 3360 3361 var objParentMenuItemNum = objLink.parents(menuItemSelector).length; 3362 3363 if(objParentMenuItemNum > 1) 3364 setActiveIcon(objLink); 3365 3366 }); 3367 3368 },50) 3369 } 3370 3371 /** 3372 * close menu on body click 3373 */ 3374 function onBodyClick(e){ 3375 var objTarget = jQuery(e.target); 3376 var objTargetParents = objTarget.parents(); 3377 3378 //if slide and responsive behaviour and close on body click 3379 if(dataBehaviour == "slide" && closeOnBodyClick == true && g_isResponsiveViewport.matches == true){ 3380 if(objTargetParents.hasClass('ue-nav-menu') && objTarget.hasClass("ue-nav-menu_overlay") == false) 3381 return(true); 3382 3383 g_objMenuItems.removeClass(g_classActive); 3384 g_objMenuLinks.removeClass(g_classActive); 3385 3386 g_objMenuLinks.each(function(){ 3387 setDisactiveIcon(jQuery(this)); 3388 }); 3389 3390 var isOpened = g_objMenu.hasClass(openClass); 3391 3392 if(isOpened == true){ 3393 g_objMenu.removeClass(openClass); 3394 g_objMenu.addClass(closeClass); 3395 } 3396 } 3397 3398 if(g_isResponsiveViewport.matches == true) 3399 return(true); 3400 3401 if(objTargetParents.hasClass('ue-nav-menu')) 3402 return(true); 3403 3404 if(dataBehaviour == "accordion"){ 3405 g_objMenuItems.removeClass(g_classActive); 3406 g_objMenuLinks.removeClass(g_classActive); 3407 3408 setDisactiveIcon(g_objMenuLinks); 3409 } 3410 } 3411 3412 /** 3413 * append back links to submenus 3414 */ 3415 function appendBackLinksToSubMenus(){ 3416 if(dataBehaviour != "slide") 3417 return(false); 3418 3419 var objSubMenus = g_objMenu.find(subMenuSelector); 3420 3421 if(!objSubMenus || objSubMenus.length == 0) 3422 return(false); 3423 3424 var iconHtml; 3425 var backLinkIconClass = "ue-back-link-icon"; 3426 var objBackLinkIconPlaceholder = g_objMenu.find(".ue-nav-menu-back-link-icon"); 3427 3428 if(!objBackLinkIconPlaceholder || objBackLinkIconPlaceholder.length == 0) 3429 iconHtml = `<span class="${backLinkIconClass}"></span>`;
3430 else 3431 iconHtml = `<span class="${backLinkIconClass}">${objBackLinkIconPlaceholder.html()}</span>`; 3432 3433 objSubMenus.each(function(){ 3434 var objSubMenu = jQuery(this); 3435 var backLinkHtml = `<li class="${backLinkClass}"><a href="javascript:void(0);">Back ${iconHtml}</a></li>`; 3436 3437 objSubMenu.prepend(backLinkHtml); 3438 }); 3439 } 3440 3441 /** 3442 * on back link click 3443 */ 3444 function onBackLinkClick(e){ 3445 var objBackLink = jQuery(this); 3446 var objParentSubMenu = objBackLink.closest(subMenuSelector); 3447 var objMenuLink = objParentSubMenu.prev(); 3448 3449 onMenuLinkClick(e, objMenuLink); 3450 } 3451 3452 /** 3453 * on side menu close 3454 */ 3455 function onSideMenuClose(){ 3456 g_objMenuItems.removeClass(g_classActive); 3457 g_objMenuLinks.removeClass(g_classActive); 3458 3459 g_objMenuLinks.each(function(){ 3460 setDisactiveIcon(jQuery(this)); 3461 }); 3462 3463 3464 var isOpened = g_objMenu.hasClass(openClass); 3465 3466 if(isOpened == true){ 3467 g_objMenu.removeClass(openClass); 3468 g_objMenu.addClass(closeClass); 3469 }else{ 3470 g_objMenu.removeClass(closeClass); 3471 g_objMenu.addClass(openClass); 3472 } 3473 } 3474 3475 /** 3476 * init menu layout 3477 */ 3478 function initMenuLayout(){ 3479 var objSubMenus = g_objMenu.find(subMenuSelector); 3480 3481 if(!objSubMenus || objSubMenus.length == 0) 3482 return(false); 3483 3484 objSubMenus.each(function(){ 3485 var objSubMenu = jQuery(this); 3486 var objParentLink = objSubMenu.prev(); 3487 3488 if(clickableParents == false) 3489 objParentLink.attr("href", "javascript:void(0);") 3490 3491 }); 3492 3493 var objIconsHolder = g_objMenu.find(".ue-nav-menu-icons-holder"); 3494 3495 //objIconsHolder.remove(); 3496 } 3497 3498 appendBackLinksToSubMenus(); 3499 setFirstLevelIcons(); 3500 setIcons(); 3501 initResponsiveMode(false); 3502 setHoverEffects(); 3503 initMenuLayout(); 3504 3505 //init events 3506 jQuery(window).on('resize', function(){ 3507 initResponsiveMode(true); 3508 }); 3509 3510 g_objMenuLinks.on('click', function(e){ 3511 var objLink = jQuery(this); 3512 onMenuLinkClick(e, objLink); 3513 }); 3514 3515 //on back link click 3516 jQuery(`.${backLinkClass}`).on("click", onBackLinkClick); 3517 3518 g_objBurger.on('click', onBurgerClick); 3519 g_objSideMeuClose.on("click", onSideMenuClose); 3520 3521 if(g_objMenuInnerItems){ 3522 g_objMenuInnerItems.on('mouseover', onMenuInnerItemMouseover); 3523 g_objMenuInnerItems.on('mouseleave', onMenuInnerItemMouseLeave); 3524 } 3525 3526 if(g_objMenuItems){ 3527 g_objMenuItems.on('mouseover', onMenuItemMouseover); 3528 g_objMenuItems.on('mouseleave', onMenuItemMouseLeave); 3529 } 3530 3531 jQuery(document).on('keydown', onKeyDown); 3532 3533 jQuery('body').on('click', function(e){ 3534 onBodyClick(e); 3535 }); 3536}); 3537</script>
3537 3538 <style> 3539 .unlimited-elements-background-overlay{ 3540 position:absolute; 3541 top:0px; 3542 left:0px; 3543 width:100%; 3544 height:100%; 3545 z-index:0; 3546 } 3547 3548 .unlimited-elements-background-overlay.uc-bg-front{ 3549 z-index:999; 3550 } 3551 </style> 3552 3553
3553<script type='text/javascript'> 3554 3555 jQuery(document).ready(function(){ 3556 3557 function ucBackgroundOverlayPutStart(){ 3558 3559 var objBG = jQuery(".unlimited-elements-background-overlay").not(".uc-bg-attached"); 3560 3561 if(objBG.length == 0) 3562 return(false); 3563 3564 objBG.each(function(index, bgElement){ 3565 3566 var objBgElement = jQuery(bgElement); 3567 3568 var targetID = objBgElement.data("forid"); 3569 3570 var location = objBgElement.data("location"); 3571 3572 switch(location){ 3573 case "body": 3574 case "body_front": 3575 var objTarget = jQuery("body"); 3576 break; 3577 case "layout": 3578 case "layout_front": 3579 var objLayout = jQuery("*[data-id=\""+targetID+"\"]"); 3580 var objTarget = objLayout.parents(".elementor"); 3581 if(objTarget.length > 1) 3582 objTarget = jQuery(objTarget[0]); 3583 break; 3584 default: 3585 var objTarget = jQuery("*[data-id=\""+targetID+"\"]"); 3586 break; 3587 } 3588 3589 3590 if(objTarget.length == 0) 3591 return(true); 3592 3593 var objVideoContainer = objTarget.children(".elementor-background-video-container"); 3594 3595 if(objVideoContainer.length == 1) 3596 objBgElement.detach().insertAfter(objVideoContainer).show(); 3597 else 3598 objBgElement.detach().prependTo(objTarget).show(); 3599 3600 3601 var objTemplate = objBgElement.children("template"); 3602 3603 if(objTemplate.length){ 3604 3605 var clonedContent = objTemplate[0].content.cloneNode(true); 3606 3607 var objScripts = jQuery(clonedContent).find("script"); 3608 if(objScripts.length) 3609 objScripts.attr("type","text/javascript"); 3610 3611 objBgElement.append(clonedContent); 3612 3613 objTemplate.remove(); 3614 } 3615 3616 objBgElement.trigger("bg_attached"); 3617 objBgElement.addClass("uc-bg-attached"); 3618 3619 }); 3620 } 3621 3622 ucBackgroundOverlayPutStart(); 3623 3624 jQuery( document ).on( 'elementor/popup/show', ucBackgroundOverlayPutStart); 3625 jQuery( "body" ).on( 'uc_dom_updated', ucBackgroundOverlayPutStart); 3626 3627 }); 3628 3629 3630 </script>
3630 3631
3631<script type="text/javascript">var to_like_post = {"url":"https://www.cm-penalvadocastelo.pt/wp-admin/admin-ajax.php","nonce":"92071e03bf"};!function(t){"use strict";t(document).ready(function(){t(document).on("click",".to-post-like:not('.to-post-like-unactive')",function(e){e.preventDefault();var o=t(this),n=o.data("post-id"),s=parseInt(o.find(".to-like-count").text());return o.addClass("heart-pulse"),t.ajax({type:"post",url:to_like_post.url,data:{nonce:to_like_post.nonce,action:"to_like_post",post_id:n,like_nb:s},context:o,success:function(e){e&&((o=t(this)).attr("title",e.title),o.find(".to-like-count").text(e.count),o.removeClass(e.remove_class+" heart-pulse").addClass(e.add_class))}}),!1})})}(jQuery);</script>
3631 3632</body> 3633</html>
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.