PageSourceSearch

https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes

html santamariademartorelles.cat collected 2026-10-02 21:09:29 UTC 90,352 bytes, 1,609 lines download raw bytes

1<!DOCTYPE HTML>
2<html lang="ca" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ca" >
3    <head>
4        <!-- METADATA -->
5<meta charset="utf-8">
6<meta name="viewport" content="width=device-width, initial-scale=1">
7<meta name="title" lang="ca" content="Anuncis / Edictes - Ajuntament de Santa Maria de Martorelles">
8<meta name="description" lang="ca" content="">
9<meta name="author" lang="ca" content="Ajuntament de Santa Maria de Martorelles">
10<meta name="date" lang="ca" content="2022-06-09 10:20:05">
11<meta name="generator" lang="ca" content="Ajuntament de Santa Maria de Martorelles">
12<meta name="robots" content="index, follow">
13
14        <title>Anuncis / Edictes - Ajuntament de Santa Maria de Martorelles</title>
15
16        <!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 16-17
16
17<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
17G-K8DWFGRWR3
vendor: 12 bytes, line 17
17"></script>
18<script type="text/plain" data-type="text/javascript" data-name="ga">
19    
vendor: 140 bytes, lines 19-23
19window.dataLayer = window.dataLayer || [];
20    function gtag(){dataLayer.push(arguments);}
21    gtag('js', new Date());
22
23    gtag('config', '
23G-K8DWFGRWR3
vendor: 8 bytes, lines 23-24
23');
24    
24// Creates the default tracker.
25    gtag('event', 'page_view', { 'send_to': 'G-K8DWFGRWR3' });
26</script>
26
27<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--><!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 125 bytes, lines 27-28
27
28<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id= 
28UA-183996815-1
vendor: 12 bytes, line 28
28"></script>
29<script type="text/plain" data-type="text/javascript" data-name="ga">
30    
vendor: 141 bytes, lines 30-34
30window.dataLayer = window.dataLayer || [];
31    function gtag(){dataLayer.push(arguments);}
32    gtag('js', new Date());
33
34    gtag('config', ' 
34UA-183996815-1
vendor: 8 bytes, lines 34-35
34');
35    
35// Creates the default tracker.
36    gtag('event', 'page_view', { 'send_to': ' UA-183996815-1' });
37</script>
37
38<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4-->
39        <link rel="canonical" href="/ajuntament/anuncis-edictes">
40
41        <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790975369">
42<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790975369">
43<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790975369">
44<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790975369">
45<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790975369">
46
47        <!-- Real Favicon Genenrator-->
48<link rel="apple-touch-icon" href="/themes/santamariademartorelles/images/favicons/apple-touch-icon.png">
49<link rel="icon" type="image/png" href="/themes/santamariademartorelles/images/favicons/favicon-16x16.png" sizes="16x16">
50<link rel="icon" type="image/png" href="/themes/santamariademartorelles/images/favicons/favicon-32x32.png" sizes="32x32">
51<link rel="shortcut icon" href="/themes/santamariademartorelles/images/favicons/favicon.ico">
52        
52<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 52
52
53<script>
54	// Fallback defensiu: si per algun motiu el PHP no retorna la configuració,
55	// assegurem una configuració mínima perquè Klaro no falli i mostri el banner.
56	window.klaroConfig = window.klaroConfig || {
57		version: '1.0',
58		elementID: 'klaro',
59		storageMethod: 'cookie',
60		storageName: 'klaro',
61		cookieName: 'klaro',
62		htmlTexts: true,
63		acceptAll: true,
64		hideDeclineAll: false,
65		services: []
66	};
67</script>
vendor: 1 bytes, line 67
67
68<script src="/front/view/js/klaro.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 68
68
69<script src="/front/view/js/klaro-init.js?ver=1790975369"></script>
69
70
71        <!-- Twitter Card data -->
72<meta name="twitter:card" content="summary">
73<meta name="twitter:title" content="Anuncis / Edictes">
74<meta name="twitter:description" content="">
75<meta name="twitter:image" content="https://www.santamariademartorelles.cat/themes/santamariademartorelles/images/logos/header.png">
76    <meta name="twitter:image:alt" content="Logo">
77        <!-- Open Graph data -->
78<meta property="og:title" content="Anuncis / Edictes">
79<meta property="og:type" content="website">
80<meta property="og:url" content="https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes">
81<meta property="og:image" content="https://www.santamariademartorelles.cat/themes/santamariademartorelles/images/logos/header.png">
82    <meta property="og:image:alt" content="Logo">
83    <meta property="og:image" content="https://www.santamariademartorelles.cat/themes/santamariademartorelles/images/logos/header_inv.png">
84    <meta property="og:image:alt" content="Logo invertit">
85    <meta property="og:description" content="">
86<meta property="og:site_name" content="Ajuntament de Santa Maria de Martorelles">
87
88        <!-- HTML5 compatible tags -->
89<script>
90    document.createElement('header');
91    document.createElement('footer');
92    document.createElement('section');
93    document.createElement('aside');
94    document.createElement('nav');
95    document.createElement('article');
96    document.createElement('hgroup');
97    document.createElement('lh');
98</script>
98
99        
99<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
99
100<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css">
101<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css">
102<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
103<script  src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 103
103
104<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 104
104
105<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 105
105
106<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 106
106
107<script  src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 107
107
108<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 108
108
109<script type="text/plain" data-type="text/javascript" data-name="maps" data-src="https://maps.google.com/maps/api/js?key=AIzaSyDzMQfPcdyACxfYosZzQs43alxB8BKfkx8&amp;loading=async&amp;callback=onGoogleMapsReady"></script>
vendor: 1 bytes, line 109
109
110<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 110
110
111<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 111
111
112<script  src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 112
112
113<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 113
113
114<script src="/front/view/js/maps.js"></script>
114        <!-- Init addHeadExtraStyles -->
115        <style>html body{font-size:1em !important;} </style>
116        <!-- End addHeadExtraStyles -->
117        <!-- Font Awesome 7 + v4-shims for backward compatibility -->
118        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet">
119        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet">
120        <!-- Popperjs + Tempus Dominus -->
121        
121<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790975369"></script>
vendor: 1 bytes, line 121
121
122<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790975369"></script>
122
123                <link rel="stylesheet" media="all" href="/themes/santamariademartorelles/styles/style.min.css?ver=1790975369">
124            </head>
125    <body class="page id-18">
126        <nav class="skip-links" aria-label="Dreceres d&#039;accessibilitat"><ul><li><a href="#site-header">Saltar a la capçalera</a></li><li><a href="#readspeakerPage">Saltar al contingut</a></li><li><a href="#footer-content">Saltar al peu de pàgina</a></li></ul></nav>        <header id="site-header" tabindex="-1">
127                                    <div class="toolbar clearfix">
128    <div class="container-xl">
129                <div class="fright">
130            <div class="toolbarItem">
131    <div class="toolbarItem page-62 page-contacte">
132    <a 
133        href="/altres-continguts/contacte"
134        target="_self"
135        rel=""
136            >
137        Contacte    </a>
138</div>
139</div>                        <div id="social" class="toolbarItem">
140                  
141    <a target="_blank" aria-label="Facebook" href="https://es-es.facebook.com/AjuntamentSantaMariaMartorelles/" title="Obre en finestra nova: Facebook">
142        <span style="display: none">Facebook</span>
143        <img src="/themes/santamariademartorelles/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
144    </a>
145  
146    <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCPXxAzDSWTJF5pvqzWLUTOw" title="Obre en finestra nova: Youtube">
147        <span style="display: none">Youtube</span>
148        <img src="/themes/santamariademartorelles/images/icons/social/youtube.png" alt="Youtube" width="32" height="32">
149    </a>
150  
151    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajstamariamartorelles/" title="Obre en finestra nova: Instagram">
152        <span style="display: none">Instagram</span>
153        <img src="/themes/santamariademartorelles/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
154    </a>
155            </div>
156                        <div class="toolbarItem">
157                <div id="toolbarLanguages">
158    <ul id="languages">
159        <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a>
160            <ul id="languagesList">
161                                    <li><a class="link-language" href="https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes?lang=ca" data-target="https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes?lang=ca">Català</a></li>
162                                    <li><a class="link-language" href="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=esie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=es" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=esie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=es">Castellà</a></li>
163                                    <li><a class="link-language" href="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=enie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=en" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=enie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=en">Anglès</a></li>
164                                    <li><a class="link-language" href="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=deie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=de" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=deie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=de">Alemany</a></li>
165                                    <li><a class="link-language" href="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=frie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=fr" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=frie=UTF-8&amp;u=https://www.santamariademartorelles.cat/ajuntament/anuncis-edictes&amp;sl=ca&amp;tl=fr">Francès</a></li>
166                            </ul>
167        </li>
168    </ul>
169</div>
170<script>
171(function () {
172    var toggle = document.getElementById('languagesToggle');
173    if (!toggle) return;
174    var li = toggle.parentElement;
175    var submenu = li.querySelector('ul');
176    var links = Array.prototype.slice.call(submenu.querySelectorAll('a'));
177
178    function keyName(e) {
179        return e.key || e.code || e.keyCode;
180    }
181
182    function isSpaceKey(e) {
183        var key = keyName(e);
184        return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32;
185    }
186
187    function open(focusFirst) {
188        li.classList.add('is-open');
189        submenu.style.display = 'block';
190        submenu.style.padding = '1em';
191        toggle.setAttribute('aria-expanded', 'true');
192        if (focusFirst && links.length) links[0].focus();
193    }
194
195    function close() {
196        li.classList.remove('is-open');
197        submenu.style.display = '';
198        submenu.style.padding = '';
199        toggle.setAttribute('aria-expanded', 'false');
200    }
201
202    function isOpen() {
203        return toggle.getAttribute('aria-expanded') === 'true';
204    }
205
206    function focusLink(index) {
207        if (!links.length) return;
208        links[(index + links.length) % links.length].focus();
209    }
210
211    function focusedLinkIndex() {
212        return links.indexOf(document.activeElement);
213    }
214
215    toggle.addEventListener('click', function (e) {
216        e.preventDefault();
217        isOpen() ? close() : open(false);
218    });
219
220    toggle.addEventListener('keydown', function (e) {
221        var key = keyName(e);
222        if (key === 'Enter' || isSpaceKey(e)) {
223            e.preventDefault();
224            isOpen() ? close() : open(false);
225        } else if (key === 'ArrowDown' || key === 40) {
226            e.preventDefault();
227            open(true);
228        } else if (key === 'ArrowUp' || key === 38) {
229            e.preventDefault();
230            open(false);
231            focusLink(links.length - 1);
232        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
233            if (isOpen()) {
234                e.preventDefault();
235                close();
236            }
237        }
238    });
239
240    submenu.addEventListener('keydown', function (e) {
241        var key = keyName(e);
242        var index = focusedLinkIndex();
243
244        if (key === 'ArrowDown' || key === 40) {
245            e.preventDefault();
246            focusLink(index + 1);
247        } else if (key === 'ArrowUp' || key === 38) {
248            e.preventDefault();
249            focusLink(index - 1);
250        } else if (key === 'Home' || key === 36) {
251            e.preventDefault();
252            focusLink(0);
253        } else if (key === 'End' || key === 35) {
254            e.preventDefault();
255            focusLink(links.length - 1);
256        } else if (isSpaceKey(e)) {
257            e.preventDefault();
258            if (document.activeElement && document.activeElement.click) {
259                document.activeElement.click();
260            }
261        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
262            e.preventDefault();
263            close();
264            toggle.focus();
265        }
266    });
267
268    li.addEventListener('focusout', function () {
269        window.setTimeout(function () {
270            if (!li.contains(document.activeElement)) close();
271        }, 0);
272    });
273
274    document.addEventListener('click', function (e) {
275        if (!li.contains(e.target)) close();
276    });
277})();
278</script>
278
279                <div class="currentDate" style='padding:9px;color:white'>
280    <span id="clock" class="clock" title='Data i hora oficial' >
281        02.10.2026 | 23:09    </span>
282</div>            </div>
283        </div>
284    </div>
285</div>
286<div class="header ">
287    <div class="branding">
288        <div class="container-xl">
289            <div class="row">
290                <div class="col-md-8 col-sm-8 col-lg-8 logo_box">
291    <a class="logo" href="/" aria-label="Ajuntament de Santa Maria de Martorelles - Pàgina d'inici">
292        <img src="/themes/santamariademartorelles/images/logos/header.png" alt="" width="355" height="111" id="mainLogo">
293    </a>
294    </div>                <div class="col-md-4 col-sm-4 col-lg-4 middle search_box">
295    <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search">
296        <label for="search" accesskey="4">
297            <span class="visually-hidden">Cercar:</span>
298        </label>
299        <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar...">
300        <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button>
301    </form>
302</div>
303            </div>
304        </div>
305    </div>
306        <div id="navbar-top" class="navbar navbar-expand-lg navbar-dark"><div class="nav"><div class="container-xl"><div class="row"><div class="col"><nav class="menu_principal" aria-label="menú"><div class="menu-flexible__wrapper menu-font-medium menu-alignment-left menu-spacing-normal menu-animation-fade menu-text-transform-none menu-columns-1" style="--menu-cols:1;--menu-submenu-width:200px;--menu-hover-delay:300ms;--menu-image-width:160px;" data-menu-columns="1" data-expand-type="click" data-menu-sticky="false" data-menu-alignment="left" data-menu-spacing="normal" data-menu-animation="fade" data-menu-external-icon="auto" data-menu-external-dim="false" data-menu-text-transform="none"><div class="menu-flexible__topbar"><a href="#" class="menu-flexible__toggle phoneMenuButton" aria-label="Menú" aria-expanded="false"><i class="fa fa-bars"></i></a></div><ul class="menu-flexible menu-flexible__list"><li class="menu-flexible__item page-1 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament" ><span class="menu-flexible__item-text">Ajuntament</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-8 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/govern" ><span class="menu-flexible__item-text">Govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-13 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/consistori" ><span class="menu-flexible__item-text">Consistori</span></a></li><li class="menu-flexible__item page-14 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/regidories-organitzacio-municipal" ><span class="menu-flexible__item-text">Regidories</span></a></li><li class="menu-flexible__item page-115 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/informacio-dels-regidors-i-regidores" ><span class="menu-flexible__item-text">Informació dels regidors i regidores</span></a></li><li class="menu-flexible__item page-116 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/agenda-politica" ><span class="menu-flexible__item-text">Agenda política</span></a></li><li class="menu-flexible__item page-15 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/grups-municipals" ><span class="menu-flexible__item-text">Grups municipals</span></a></li><li class="menu-flexible__item page-17 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/tecnics-municipals" ><span class="menu-flexible__item-text">Tècnics municipals</span></a></li><li class="menu-flexible__item page-81 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/organismes-dependents-o-vinculats" ><span class="menu-flexible__item-text">Organismes dependents o vinculats</span></a></li><li class="menu-flexible__item page-132 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/altres-administracions" ><span class="menu-flexible__item-text">Altres administracions</span></a></li><li class="menu-flexible__item page-24 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/pressupostos-i-plantilles" ><span class="menu-flexible__item-text">Pressupostos i plantilles</span></a></li><li class="menu-flexible__item page-127 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/resultats-electorals" ><span class="menu-flexible__item-text">Resultats electorals</span></a></li></ul></li><li class="menu-flexible__item page-80 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/ple-municipal" ><span class="menu-flexible__item-text">
306Ple municipal</span></a></li><li class="menu-flexible__item page-16 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/plans-campanyes-i-programes" ><span class="menu-flexible__item-text">Plans, campanyes i programes</span></a></li><li class="menu-flexible__item page-18 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/anuncis-edictes" ><span class="menu-flexible__item-text">Anuncis / Edictes</span></a></li><li class="menu-flexible__item page-26 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/perfil-de-contractant" ><span class="menu-flexible__item-text">Perfil de contractant</span></a></li><li class="menu-flexible__item page-126 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/normativa" ><span class="menu-flexible__item-text">Normativa</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-27 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santamariademartorelles/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes/ordenances-reguladores-i-reglaments" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Normativa / Ordenances generals</span></a></li><li class="menu-flexible__item page-22 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santamariademartorelles/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes/ordenances-fiscals" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Ordenances fiscals</span></a></li><li class="menu-flexible__item page-28 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santamariademartorelles/govern-obert-i-transparencia/accio-de-govern-i-normativa/urbanisme" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Urbanisme</span></a></li></ul></li><li class="menu-flexible__item page-122 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/seu-electronica" ><span class="menu-flexible__item-text">Seu electrònica</span></a></li><li class="menu-flexible__item page-123 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/transparencia" ><span class="menu-flexible__item-text">Transparència</span></a></li></ul></li><li class="menu-flexible__item page-10 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/serveis-i-tramits" ><span class="menu-flexible__item-text">Serveis i tràmits</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-82 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/oficines-municipals" ><span class="menu-flexible__item-text">Oficines municipals</span></a></li><li class="menu-flexible__item page-140 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/cataleg-de-serveis" ><span class="menu-flexible__item-text">Catàleg de Serveis</span></a></li><li class="menu-flexible__item page-31 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santamariademartorelles/tramits-i-gestions" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Tràmits i gestions</span></a></li><li class="menu-flexible__item page-90 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/mygov/0825670005" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Carpeta ciutadana</span></a></li><li class="menu-flexible__item page-141 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/notificacions-electroniques" ><span class="menu-flexible__item-text">Notificacions electròniques</span></a></li><li class="menu-flexible__item page-32 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/impostos" ><span class="menu-flexible__item-text">Impostos</span></a></li><li class="menu-flexible__item page-88 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/factura-electronica" ><span class="menu-flexible__item-text">Factura electrònica</span></a></li><li class="menu-flexible__item page-133 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/finestreta-unica-empresarial-fue" ><span class="menu-flexible__item-text">Finestreta Única Empresarial (FUE)</span></a></li></ul></li><li class="menu-flexible__item page-2 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi" ><span class="menu-flexible__item-text">El municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-34 level2"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/com-arribar-hi" ><span class="menu-flexible__item-text">Com arribar-hi</span></a></li><li class="menu-flexible__item page-36 level2"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-de-carrers--planol" ><span class="menu-flexible__item-text">Guia de carrers / Plànol</span></a></li><li class="menu-flexible__item page-3 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi/guia-del-municipi" ><span class="menu-flexible__item-text">Guia del municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-37 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/equipaments" ><span class="menu-flexible__item-text">Equipaments</span></a></li><li class="menu-flexible__item page-39 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/empreses-i-comercos" ><span class="menu-flexible__item-text">Empreses i comerços</span></a></li><li class="menu-flexible__item page-40 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/entitats-i-associacions" ><span class="menu-flexible__item-text">Entitats i associacions</span></a></li><li class="menu-flexible__item page-42 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/subministraments" ><span class="menu-flexible__item-text">Subministraments</span></a></li><li class="menu-flexible__item page-43 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/guia-del-municipi/emergencie
306s" ><span class="menu-flexible__item-text">Emergències</span></a></li></ul></li><li class="menu-flexible__item page-7 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi/informacio-del-municipi" ><span class="menu-flexible__item-text">Informació del municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-44 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/introduccio" ><span class="menu-flexible__item-text">Introducció</span></a></li><li class="menu-flexible__item page-46 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/historia" ><span class="menu-flexible__item-text">Història</span></a></li><li class="menu-flexible__item page-47 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/el-municipi-en-xifres" ><span class="menu-flexible__item-text">El municipi en xifres</span></a></li><li class="menu-flexible__item page-49 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-del-municipi/patrimoni-cultural" ><span class="menu-flexible__item-text">Patrimoni cultural</span></a></li></ul></li><li class="menu-flexible__item page-131 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/el-municipi/turisme" ><span class="menu-flexible__item-text">Turisme</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-50 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/turisme/festes-i-fires" ><span class="menu-flexible__item-text">Festes i fires</span></a></li><li class="menu-flexible__item page-129 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/turisme/rutes" ><span class="menu-flexible__item-text">Rutes</span></a></li><li class="menu-flexible__item page-41 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/turisme/llocs-dinteres" ><span class="menu-flexible__item-text">Llocs d&#039;interès</span></a></li><li class="menu-flexible__item page-130 level3"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/turisme/on-menjar" ><span class="menu-flexible__item-text">On menjar</span></a></li></ul></li><li class="menu-flexible__item page-48 level2"><a class="menu-flexible__link" aria-expanded="false" href="/el-municipi/informacio-geografica" ><span class="menu-flexible__item-text">Informació geogràfica</span></a></li></ul></li><li class="menu-flexible__item page-4 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/actualitat" ><span class="menu-flexible__item-text">Actualitat</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-128 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/avisos" ><span class="menu-flexible__item-text">Avisos</span></a></li><li class="menu-flexible__item page-53 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/noticies" ><span class="menu-flexible__item-text">Notícies</span></a></li><li class="menu-flexible__item page-54 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/agenda" ><span class="menu-flexible__item-text">Agenda</span></a></li><li class="menu-flexible__item page-55 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/butlleti-digital" ><span class="menu-flexible__item-text">Butlletí digital</span></a></li><li class="menu-flexible__item page-56 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/dalt-la-vall" ><span class="menu-flexible__item-text">Dalt La Vall</span></a></li><li class="menu-flexible__item page-57 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/rss" ><span class="menu-flexible__item-text">RSS</span></a></li><li class="menu-flexible__item page-58 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/hemeroteca" ><span class="menu-flexible__item-text">Hemeroteca</span></a></li></ul></li><li class="menu-flexible__item page-93 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/temes" ><span class="menu-flexible__item-text">Temes</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-139 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/educacio" ><span class="menu-flexible__item-text">Educació</span></a></li><li class="menu-flexible__item page-136 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/cultura" ><span class="menu-flexible__item-text">Cultura</span></a></li><li class="menu-flexible__item page-138 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/salut" ><span class="menu-flexible__item-text">Salut</span></a></li><li class="menu-flexible__item page-137 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/benestar-i-ciutadania" ><span class="menu-flexible__item-text">Benestar i ciutadania</span></a></li><li class="menu-flexible__item page-135 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/medi-ambient" ><span class="menu-flexible__item-text">Medi ambient</span></a></li></ul></li><li class="menu-flexible__item page-5 level1"><a class="menu-flexible__link" aria-expanded="false" href="/adreces-i-telefons" ><span class="menu-flexible__item-text">Adreces i telèfons</span></a></li></ul></div>
306<script>(function() {
307    'use strict';
308
309    // Mega panel
310
311    function initMegaPanels(navContainer) {
312        var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]'));
313        if (!menuItems.length) return;
314
315        var navUl    = navContainer.querySelector('ul');
316        var topItems = navUl
317            ? menuItems.filter(function(el) { return el.parentElement === navUl; })
318            : menuItems;
319
320        var wrapper    = navContainer.closest('.menu-flexible__wrapper');
321        var isClick    = wrapper && wrapper.getAttribute('data-expand-type') === 'click';
322
323        menuItems.forEach(function(item) {
324            var panel = getPanelForItem(item, navContainer);
325            if (!panel) return;
326
327            if (isClick) {
328                var link = item.querySelector('a');
329                if (link) {
330                    link.addEventListener('click', function(e) {
331                        // En mòbil, els elements naveguen directament sense desplegar submenús
332                        if (window.innerWidth <= 992) return;
333                        if (panel.classList.contains('mf-mega-visible')) {
334                            // Segon clic: navegar
335                            return;
336                        }
337                        e.preventDefault();
338                        hideAllMegaPanels(navContainer);
339                        showPanel(item, panel);
340                    });
341                }
342            } else {
343                var hoverDelay = parseInt(
344                    getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10
345                ) || 0;
346                var hoverTimer = null;
347
348                var leaveTimer = null;
349
350                item.addEventListener('mouseenter', function() {
351                    clearTimeout(hoverTimer);
352                    clearTimeout(leaveTimer);
353                    if (hoverDelay > 0) {
354                        hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay);
355                    } else {
356                        showPanel(item, panel);
357                    }
358                });
359                item.addEventListener('mouseleave', function(e) {
360                    clearTimeout(hoverTimer);
361                    if (!panel.contains(e.relatedTarget)) {
362                        leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300);
363                    }
364                });
365                panel.addEventListener('mouseenter', function() {
366                    clearTimeout(leaveTimer);
367                });
368                panel.addEventListener('mouseleave', function(e) {
369                    clearTimeout(hoverTimer);
370                    clearTimeout(leaveTimer);
371                    if (!item.contains(e.relatedTarget)) hidePanel(item, panel);
372                });
373
374                // Tàctil: fallback quan hover no disponible (només escriptori tàctil)
375                var link = item.querySelector('a');
376                if (link) {
377                    link.addEventListener('click', function(e) {
378                        if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) {
379                            if (panel.classList.contains('mf-mega-visible')) {
380                                // Segon clic en tàctil: navegar
381                                return;
382                            }
383                            e.preventDefault();
384                            hideAllMegaPanels(navContainer);
385                            showPanel(item, panel);
386                        }
387                    });
388                }
389            }
390        });
391
392        navContainer.addEventListener('keydown', function(e) {
393            handleMegaKeydown(e, navContainer, topItems);
394        });
395
396        if (!isClick) {
397            navContainer.addEventListener('focusin', function(e) {
398                var item = e.target.closest('[data-mega-id]');
399                if (!item) return;
400                var panel = getPanelForItem(item, navContainer);
401                if (!panel) return;
402                hideAllMegaPanels(navContainer);
403                showPanel(item, panel);
404            });
405        }
406
407        navContainer.addEventListener('focusout', function() {
408            setTimeout(function() {
409                if (!navContainer.contains(document.activeElement)) {
410                    hideAllMegaPanels(navContainer);
411                }
412            }, 0);
413        });
414
415        document.addEventListener('click', function(e) {
416            if (!navContainer.contains(e.target)) {
417                hideAllMegaPanels(navContainer);
418            }
419        });
420    }
421
422    function handleMegaKeydown(e, navContainer, topItems) {
423        var focused = document.activeElement;
424        if (!focused) return;
425
426        var currentItem = focused.closest('[data-mega-id]');
427        var currentPanel = focused.closest('.menu-flexible__mega-panel');
428        var key = e.key || e.code || e.keyCode;
429
430        function directLink(item) {
431            if (!item) return null;
432            return Array.prototype.slice.call(item.children).find(function(el) {
433                return el.tagName === 'A';
434            }) || item.querySelector('a');
435        }
436
437        function itemForPanel(panel) {
438            if (!panel) return null;
439            var id = panel.getAttribute('data-mega-id');
440            return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
441        }
442
443        function focusPanelLink(panel, index) {
444            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
445            if (!links.length) return;
446            links[(index + links.length) % links.length].focus();
447        }
448
449        function focusPanelSibling(panel, offset) {
450            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
451            var idx = links.indexOf(focused);
452            if (idx === -1) return;
453            links[(idx + offset + links.length) % links.length].focus();
454        }
455
456        function panelColumnForLink(link) {
457            return link ? link.closest('.menu-flexible__mega-col') : null;
458        }
459
460        function focusAdjacentPanelColumn(panel, offset) {
461            var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col'));
462            var currentColumn = panelColumnForLink(focused);
463            var idx = columns.indexOf(currentColumn);
464            if (idx === -1) return false;
465
466            var targetColumn = columns[(idx + offset + columns.length) % columns.length];
467            var targetLink = targetColumn.querySelector('a');
468            if (targetLink) {
469                targetLink.focus();
470                return true;
471            }
472
473            return false;
474        }
475
476        function focusTopItem(item, offset) {
477            var idx = topItems.indexOf(item);
478            if (idx === -1) return;
479
480            var next = topItems[(idx + offset + topItems.length) % topItems.length];
481            hideAllMegaPanels(navContainer);
482
483            var nextLink = directLink(next);
484            if (nextLink) {
485                nextLink.focus();
486                var nextPanel = getPanelForItem(next, navContainer);
487                if (nextPanel) showPanel(next, nextPanel);
488            }
489        }
490
491        switch (key) {
492            case 'Escape':
493            case 'Esc':
494            case 27: {
495                e.preventDefault();
496                hideAllMegaPanels(navContainer);
497                if (currentPanel) {
498                    var item = itemForPanel(currentPanel);
499                    var lnk = directLink(item);
500                    if (lnk) lnk.focus();
501                }
502                break;
503            }
504
505            case 'ArrowRight':
506            case 39:
507            case 'ArrowLeft':
508            case 37: {
509                var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1;
510                e.preventDefault();
511
512                if (currentPanel) {
513                    if (!focusAdjacentPanelColumn(currentPanel, direction)) {
514                        var ownerItem = itemForPanel(currentPanel);
515                        focusTopItem(ownerItem, direction);
516                    }
517                    break;
518                }
519
520                if (!currentItem) return;
521                focusTopItem(currentItem, direction);
522                break;
523            }
524
525            case 'ArrowDown':
526            case 40: {
527                e.preventDefault();
528                if (currentPanel) {
529                    focusPanelSibling(currentPanel, 1);
530                    break;
531                }
532                if (!currentItem) return;
533                var panel = getPanelForItem(currentItem, navContainer);
534                if (!panel) return;
535                if (!panel.classList.contains('mf-mega-visible')) {
536                    hideAllMegaPanels(navContainer);
537                    showPanel(currentItem, panel);
538                }
539                focusPanelLink(panel, 0);
540                break;
541            }
542
543            case ' ':
544            case 'Space':
545            case 'Spacebar':
546            case 32: {
547                if (currentPanel || !currentItem) return;
548                var spacePanel = getPanelForItem(currentItem, navContainer);
549                if (!spacePanel) return;
550
551                e.preventDefault();
552                if (spacePanel.classList.contains('mf-mega-visible')) {
553                    hidePanel(currentItem, spacePanel);
554                } else {
555                    hideAllMegaPanels(navContainer);
556                    showPanel(currentItem, spacePanel);
557                }
558                break;
559            }
560
561            case 'ArrowUp':
562            case 38: {
563                if (!currentPanel) return;
564                e.preventDefault();
565                var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a'));
566                var focusedIndex = panelLinks.indexOf(focused);
567
568                if (focusedIndex > 0) {
569                    focusPanelLink(currentPanel, focusedIndex - 1);
570                } else {
571                    var parentItem = itemForPanel(currentPanel);
572                    var parentLink = directLink(parentItem);
573                    if (parentLink) parentLink.focus();
574                    if (parentItem) hidePanel(parentItem, currentPanel);
575                }
576                break;
577            }
578        }
579    }
580
581    function getPanelForItem(item, navContainer) {
582        var id = item.getAttribute('data-mega-id');
583        return id
584            ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]')
585            : null;
586    }
587
588    function showPanel(item, panel) {
589        panel.classList.add('mf-mega-visible');
590        panel.setAttribute('aria-hidden', 'false');
591        var link = item.querySelector('a');
592        if (link) link.setAttribute('aria-expanded', 'true');
593    }
594
595    function hidePanel(item, panel) {
596        panel.classList.remove('mf-mega-visible');
597        panel.setAttribute('aria-hidden', 'true');
598        var link = item.querySelector('a');
599        if (link) link.setAttribute('aria-expanded', 'false');
600    }
601
602    function hideAllMegaPanels(navContainer) {
603        navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible')
604            .forEach(function(panel) {
605                var id   = panel.getAttribute('data-mega-id');
606                var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
607                if (item) {
608                    hidePanel(item, panel);
609                } else {
610                    panel.classList.remove('mf-mega-visible');
611                    panel.setAttribute('aria-hidden', 'true');
612                }
613            });
614    }
615
616
617    // Tecles de fletxa (menú estàndard)
618
619    function initStandardKeyboard(wrapper) {
620        var menu = wrapper.querySelector('.menu-flexible__list');
621        if (!menu) return;
622
623        function closeAll() {
624            Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]'))
625                .forEach(function(item) {
626                    item.setAttribute('focus', 'false');
627                    var submenu = Array.prototype.slice.call(item.children).find(function(el) {
628                        return el.classList && el.classList.contains('menu-flexible__submenu');
629                    });
630                    if (submenu) {
631                        submenu.style.left = '';
632                        submenu.style.opacity = '';
633                        submenu.style.visibility = '';
634                        submenu.style.pointerEvents = '';
635                        submenu.style.transform = '';
636                    }
637                    var link = Array.prototype.slice.call(item.children).find(function(el) {
638                        return el.tagName === 'A';
639                    });
640                    if (link && link.classList.contains('menu-flexible__link--dropdown')) {
641                        link.setAttribute('aria-expanded', 'false');
642                    }
643                });
644        }
645
646        wrapper.addEventListener('keydown', function(e) {
647            handleStandardKeydown(e, menu);
648        });
649
650        wrapper.addEventListener('focusout', function() {
651            setTimeout(function() {
652                if (!wrapper.contains(document.activeElement)) {
653                    closeAll();
654                }
655            }, 0);
656        });
657    }
658
659    function handleStandardKeydown(e, menu) {
660        var focused = document.activeElement;
661        if (!focused || !menu.contains(focused)) return;
662
663        var itemSel = '.menu-flexible__item';
664        var linkSel = '.menu-flexible__link';
665
666        var currentLi = focused.closest(itemSel);
667        if (!currentLi) return;
668
669        var parentUl = currentLi.parentElement;
670        var isLevel1 = parentUl === menu;
671
672        function directLink(li) {
673            var direct = Array.prototype.slice.call(li.children).find(function(el) {
674                return el.tagName === 'A';
675            });
676            return direct || li.querySelector(linkSel);
677        }
678
679        function siblingItems(ul) {
680            return Array.prototype.slice.call(ul.children).filter(function(el) {
681                return el.matches(itemSel);
682            });
683        }
684
685        function childMenu(li) {
686            return Array.prototype.slice.call(li.children).find(function(el) {
687                return el.classList && el.classList.contains('menu-flexible__submenu');
688            });
689        }
690
691        function setSubmenuVisible(li, visible) {
692            var submenu = childMenu(li);
693            if (!submenu) return;
694
695            if (visible) {
696                submenu.style.left = li.parentElement === menu ? '0' : '100%';
697                submenu.style.opacity = '1';
698                submenu.style.visibility = 'visible';
699                submenu.style.pointerEvents = 'auto';
700                submenu.style.transform = 'none';
701            } else {
702                submenu.style.left = '';
703                submenu.style.opacity = '';
704                submenu.style.visibility = '';
705                submenu.style.pointerEvents = '';
706                submenu.style.transform = '';
707            }
708        }
709
710        function setExpanded(li, expanded) {
711            li.setAttribute('focus', expanded ? 'true' : 'false');
712            setSubmenuVisible(li, expanded);
713            var lnk = directLink(li);
714            if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) {
715                lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false');
716            }
717            if (!expanded) {
718                Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]'))
719                    .forEach(function(item) {
720                        item.setAttribute('focus', 'false');
721                        setSubmenuVisible(item, false);
722                        var childLink = directLink(item);
723                        if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) {
724                            childLink.setAttribute('aria-expanded', 'false');
725                        }
726                    });
727            }
728        }
729
730        function closeSiblings(li) {
731            Array.prototype.slice.call(li.parentElement.children)
732                .filter(function(item) {
733                    return item !== li && item.matches(itemSel);
734                })
735                .forEach(function(item) {
736                    setExpanded(item, false);
737                });
738        }
739
740        function openChild(li) {
741            var submenu = childMenu(li);
742            if (!submenu) return false;
743            closeSiblings(li);
744            setExpanded(li, true);
745            var firstChild = submenu.querySelector(linkSel);
746            if (firstChild) firstChild.focus();
747            return true;
748        }
749
750        function focusSibling(offset) {
751            var sibs = siblingItems(parentUl);
752            var idx  = sibs.indexOf(currentLi);
753            var lnk  = directLink(sibs[(idx + offset + sibs.length) % sibs.length]);
754            if (lnk) lnk.focus();
755        }
756
757        var key = e.key || e.code || e.keyCode;
758
759        switch (key) {
760            case 'ArrowRight':
761            case 39: {
762                if (!isLevel1) return;
763                e.preventDefault();
764                setExpanded(currentLi, false);
765                focusSibling(1);
766                break;
767            }
768            case 'ArrowLeft':
769            case 37: {
770                if (!isLevel1) return;
771                e.preventDefault();
772                setExpanded(currentLi, false);
773                focusSibling(-1);
774                break;
775            }
776            case 'ArrowDown':
777            case 40: {
778                e.preventDefault();
779                if (focused === directLink(currentLi) && openChild(currentLi)) {
780                    break;
781                }
782                var sibsDown = siblingItems(parentUl);
783                var idxDown  = sibsDown.indexOf(currentLi);
784                if (idxDown < sibsDown.length - 1) {
785                    var lnkDown = directLink(sibsDown[idxDown + 1]);
786                    if (lnkDown) lnkDown.focus();
787                }
788                break;
789            }
790            case 'ArrowUp':
791            case 38: {
792                e.preventDefault();
793                var sibsUp = siblingItems(parentUl);
794                var idxUp  = sibsUp.indexOf(currentLi);
795                if (idxUp > 0) {
796                    var lnkUp = directLink(sibsUp[idxUp - 1]);
797                    if (lnkUp) lnkUp.focus();
798                } else if (!isLevel1) {
799                    var parentItemUp = parentUl.closest(itemSel);
800                    if (parentItemUp) {
801                        setExpanded(parentItemUp, false);
802                        var parentLinkUp = directLink(parentItemUp);
803                        if (parentLinkUp) parentLinkUp.focus();
804                    }
805                }
806                break;
807            }
808            case ' ':
809            case 'Space':
810            case 'Spacebar':
811            case 32: {
812                if (!focused.classList.contains('menu-flexible__link--dropdown')) return;
813                e.preventDefault();
814                currentLi.getAttribute('focus') === 'true'
815                    ? setExpanded(currentLi, false)
816                    : openChild(currentLi);
817                break;
818            }
819            case 'Escape':
820            case 'Esc':
821            case 27: {
822                if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return;
823                e.preventDefault();
824                if (!isLevel1) {
825                    var parentItemEsc = parentUl.closest(itemSel);
826                    if (parentItemEsc) {
827                        setExpanded(parentItemEsc, false);
828                        var parentLinkEsc = directLink(parentItemEsc);
829                        if (parentLinkEsc) parentLinkEsc.focus();
830                    }
831                } else {
832                    setExpanded(currentLi, false);
833                }
834                break;
835            }
836        }
837    }
838
839
840    // Click mode: expandir submenús via [focus=true]
841
842    function initClickExpand(wrapper) {
843        var menu = wrapper.querySelector('.menu-flexible__list');
844        if (!menu) return;
845
846        var itemSel        = '.menu-flexible__item';
847        var dropdownSel    = '.menu-flexible__link--dropdown';
848
849        function closeAll(container) {
850            Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]'))
851                .forEach(function(el) { el.setAttribute('focus', 'false'); });
852        }
853
854        function closeSiblings(item) {
855            var parentUl = item.parentElement;
856            Array.prototype.slice.call(parentUl.children)
857                .filter(function(el) {
858                    return el !== item
859                        && el.matches(itemSel)
860                        && el.getAttribute('focus') === 'true';
861                })
862                .forEach(function(el) {
863                    el.setAttribute('focus', 'false');
864                    closeAll(el);
865                });
866        }
867
868        menu.addEventListener('click', function(e) {
869            var link = e.target.closest(dropdownSel);
870            if (!link || !menu.contains(link)) return;
871
872            var item = link.parentElement;
873            if (!item || !item.matches(itemSel)) return;
874
875            // En mòbil, els elements naveguen directament sense desplegar submenús
876            if (window.innerWidth <= 992) return;
877
878            var isOpen = item.getAttribute('focus') === 'true';
879
880            if (isOpen) {
881                // Segon clic: navegar
882                return;
883            }
884
885            e.preventDefault();
886            closeSiblings(item);
887            item.setAttribute('focus', 'true');
888        });
889
890        document.addEventListener('click', function(e) {
891            var openItem = menu.querySelector(itemSel + '[focus="true"]');
892            if (!openItem) return;
893            if (!openItem.contains(e.target)) {
894                closeAll(menu);
895            }
896        });
897    }
898
899
900    // Hamburger (mòbil ≤992px)
901
902    class MenuFlexible {
903        constructor(wrapper) {
904            this.wrapper   = wrapper;
905            this.hamburger = wrapper.querySelector('.menu-flexible__toggle');
906            this.menu      = wrapper.querySelector('.menu-flexible__list');
907
908            if (!this.hamburger || !this.menu) return;
909
910            var parent  = this.menu.parentElement;
911            this.isMega = parent && parent.classList.contains('menu-flexible__nav-container');
912            this.target = this.isMega ? parent : this.menu;
913
914            // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla
915            // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem.
916            this.clipper = wrapper.closest('.nav');
917
918            this.init();
919            window.addEventListener('resize', () => this.handleResize());
920        }
921
922        init() {
923            this.hamburger.addEventListener('click', (e) => {
924                e.preventDefault();
925                e.stopPropagation();
926                this.toggleMenu();
927            });
928
929            document.addEventListener('click', (e) => {
930                if (!this.wrapper.contains(e.target) && this.isOpen()) {
931                    this.closeMenu();
932                }
933            });
934
935            this.menu.querySelectorAll('a').forEach(link => {
936                link.addEventListener('click', () => {
937                    if (window.innerWidth <= 992 && this.isOpen()) {
938                        this.closeMenu();
939                    }
940                });
941            });
942        }
943
944        isOpen()     { return this.target.classList.contains('show'); }
945        toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); }
946
947        liftClip() {
948            if (this.clipper && window.innerWidth <= 992) {
949                this.clipper.style.height = 'auto';
950                this.clipper.style.maxHeight = 'none';
951                this.clipper.style.overflow = 'visible';
952            }
953        }
954
955        restoreClip() {
956            if (this.clipper) {
957                this.clipper.style.height = '';
958                this.clipper.style.maxHeight = '';
959                this.clipper.style.overflow = '';
960            }
961        }
962
963        openMenu() {
964            this.target.classList.add('show');
965            this.target.style.display = this.isMega ? 'block' : 'flex';
966            if (this.isMega) this.menu.style.display = 'flex';
967            this.liftClip();
968            this.hamburger.classList.add('active');
969            this.hamburger.setAttribute('aria-expanded', 'true');
970        }
971
972        closeMenu() {
973            this.target.classList.remove('show');
974            this.target.style.display = 'none';
975            if (this.isMega) {
976                this.menu.style.display = '';
977                var nc = this.wrapper.querySelector('.menu-flexible__nav-container');
978                if (nc) hideAllMegaPanels(nc);
979            }
980            this.restoreClip();
981            this.hamburger.classList.remove('active');
982            this.hamburger.setAttribute('aria-expanded', 'false');
983        }
984
985        handleResize() {
986            if (window.innerWidth > 992) {
987                this.target.classList.remove('show');
988                this.target.style.display = '';
989                if (this.isMega) this.menu.style.display = '';
990                this.restoreClip();
991                this.hamburger.classList.remove('active');
992                this.hamburger.setAttribute('aria-expanded', 'false');
993            }
994        }
995    }
996
997
998    // Init
999
1000    function init() {
1001        document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) {
1002            var navContainer = wrapper.querySelector('.menu-flexible__nav-container');
1003            if (navContainer) {
1004                initMegaPanels(navContainer);
1005            } else {
1006                initStandardKeyboard(wrapper);
1007                if (wrapper.getAttribute('data-expand-type') === 'click') {
1008                    initClickExpand(wrapper);
1009                }
1010            }
1011            new MenuFlexible(wrapper);
1012            if (wrapper.getAttribute('data-menu-sticky') === 'true') {
1013                var stickyTarget = wrapper.closest('#navbar-top')
1014                                || wrapper.closest('.navbar')
1015                                || wrapper.closest('nav');
1016                if (stickyTarget) {
1017                    stickyTarget.classList.add('menu-sticky-enabled');
1018                    document.body.classList.add('has-sticky-menu');
1019
1020                    var navbarHeight   = stickyTarget.offsetHeight;
1021                    var navbarTop      = stickyTarget.getBoundingClientRect().top + window.scrollY;
1022                    var bodyPadApplied = false;
1023
1024                    function updateStickyOffset() {
1025                        navbarHeight = stickyTarget.offsetHeight;
1026                        document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px');
1027
1028                        if (bodyPadApplied) {
1029                            document.body.style.paddingTop = navbarHeight + 'px';
1030                        }
1031                    }
1032
1033                    function getTargetFromHash(hash) {
1034                        if (!hash || hash.charAt(0) !== '#') {
1035                            return null;
1036                        }
1037
1038                        try {
1039                            return document.getElementById(decodeURIComponent(hash.substring(1)));
1040                        } catch (error) {
1041                            return document.getElementById(hash.substring(1));
1042                        }
1043                    }
1044
1045                    function scrollToSkipTarget(hash) {
1046                        var target = getTargetFromHash(hash);
1047                        if (!target) {
1048                            return;
1049                        }
1050
1051                        updateStickyOffset();
1052
1053                        var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight;
1054                        if (expectedTop > navbarTop) {
1055                            applyFixed();
1056                        } else {
1057                            removeFixed();
1058                        }
1059
1060                        try {
1061                            target.focus({ preventScroll: true });
1062                        } catch (error) {
1063                            target.focus();
1064                        }
1065
1066                        var targetTop = target.getBoundingClientRect().top + window.scrollY;
1067                        window.scrollTo(0, Math.max(targetTop - navbarHeight, 0));
1068                    }
1069
1070                    document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) {
1071                        link.addEventListener('click', function(event) {
1072                            var hash = link.getAttribute('href');
1073                            var target = getTargetFromHash(hash);
1074                            if (!target) {
1075                                return;
1076                            }
1077
1078                            event.preventDefault();
1079
1080                            if (window.history && window.history.pushState) {
1081                                window.history.pushState(null, '', hash);
1082                            } else {
1083                                window.location.hash = hash;
1084                            }
1085
1086                            scrollToSkipTarget(hash);
1087                        });
1088                    });
1089
1090                    updateStickyOffset();
1091
1092                    function applyFixed() {
1093                        if (!stickyTarget.classList.contains('fixed-top')) {
1094                            updateStickyOffset();
1095                            stickyTarget.classList.add('fixed-top');
1096                            document.body.style.paddingTop = navbarHeight + 'px';
1097                            bodyPadApplied = true;
1098                        }
1099                    }
1100
1101                    function removeFixed() {
1102                        if (stickyTarget.classList.contains('fixed-top')) {
1103                            stickyTarget.classList.remove('fixed-top');
1104                            document.body.style.paddingTop = '';
1105                            bodyPadApplied = false;
1106                        }
1107                    }
1108
1109                    window.addEventListener('scroll', function() {
1110                        if (window.scrollY > navbarTop) {
1111                            applyFixed();
1112                        } else {
1113                            removeFixed();
1114                        }
1115                    });
1116
1117                    window.addEventListener('resize', function() {
1118                        updateStickyOffset();
1119                        if (!stickyTarget.classList.contains('fixed-top')) {
1120                            navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY;
1121                        }
1122                    });
1123
1124                    if ('ResizeObserver' in window) {
1125                        new ResizeObserver(updateStickyOffset).observe(stickyTarget);
1126                    }
1127
1128                    stickyTarget.querySelectorAll('img').forEach(function(image) {
1129                        if (!image.complete) {
1130                            image.addEventListener('load', updateStickyOffset, { once: true });
1131                        }
1132                    });
1133
1134                    window.addEventListener('load', updateStickyOffset);
1135
1136                    if (window.scrollY > navbarTop) applyFixed();
1137
1138                    if (window.location.hash) {
1139                        window.setTimeout(function() {
1140                            scrollToSkipTarget(window.location.hash);
1141                        }, 0);
1142                    }
1143                }
1144            }
1145        });
1146    }
1147
1148    if (document.readyState === 'loading') {
1149        document.addEventListener('DOMContentLoaded', init);
1150    } else {
1151        init();
1152    }
1153})();
1154</script>
1154</nav></div></div></div></div></div>        </div>        </header>
1155                <main id="main-content" tabindex="-1">
1156            <div class="content">
1157                <div class="container-xl columns " id="Path">
1158    <div class="row">
1159        <nav aria-label="breadcrumb">
1160            <ol class="breadcrumb">
1161            <li class="breadcrumb-item">
1162    <a href="/" target="_self">
1163        <span style="display: none">home</span><i class="fa fa-home" aria-hidden="true"></i>    </a>
1164    </li>
1165<li class="breadcrumb-item">
1166    <a href="/ajuntament" target="_self">
1167        Ajuntament    </a>
1168        <button class="btn dropdown-toggle" type="button" id="defaultDropdow1" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false" aria-label="Desplega"></button>
1169    <ul class="dropdown-menu" aria-label="defaultDropdown1">
1170                    <li><a class="dropdown-item" href="/ajuntament/govern">Govern</a></li>
1171                    <li><a class="dropdown-item" href="/ajuntament/ple-municipal">Ple municipal</a></li>
1172                    <li><a class="dropdown-item" href="/ajuntament/plans-campanyes-i-programes">Plans, campanyes i programes</a></li>
1173                    <li><a class="dropdown-item" href="/ajuntament/anuncis-edictes">Anuncis / Edictes</a></li>
1174                    <li><a class="dropdown-item" href="/ajuntament/perfil-de-contractant">Perfil de contractant</a></li>
1175                    <li><a class="dropdown-item" href="/ajuntament/normativa">Normativa</a></li>
1176                    <li><a class="dropdown-item" href="/ajuntament/seu-electronica">Seu electrònica</a></li>
1177                    <li><a class="dropdown-item" href="/ajuntament/transparencia">Transparència</a></li>
1178            </ul>
1179    </li>
1180            </ol>
1181        </nav>
1182    </div>
1183</div>
1184                <div class="container-xl columns">
1185                                        <div class="row">
1186    <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 leftSidebar responsiveHeight" data-nosnippet>
1187        <nav class="menuLeft" id="Menuleft_page" aria-label="Menú Anuncis / Edictes">
1188                    <ul>
1189                <li class="subMenuPage-8 level2">
1190    <a href="/ajuntament/govern" target="_self">
1191        Govern            </a>
1192
1193    </li>
1194<li class="subMenuPage-80 level2">
1195    <a href="/ajuntament/ple-municipal" target="_self">
1196        Ple municipal            </a>
1197
1198    </li>
1199<li class="subMenuPage-16 level2">
1200    <a href="/ajuntament/plans-campanyes-i-programes" target="_self">
1201        Plans, campanyes i programes            </a>
1202
1203    </li>
1204<li class="subMenuPage-18 current level2">
1205    <a href="/ajuntament/anuncis-edictes" target="_self" aria-current="page">
1206        Anuncis / Edictes            </a>
1207
1208    </li>
1209<li class="subMenuPage-26 level2">
1210    <a href="/ajuntament/perfil-de-contractant" target="_self">
1211        Perfil de contractant            </a>
1212
1213    </li>
1214<li class="subMenuPage-126 level2">
1215    <a href="/ajuntament/normativa" target="_self">
1216        Normativa            </a>
1217
1218    </li>
1219<li class="subMenuPage-122 level2">
1220    <a href="/ajuntament/seu-electronica" target="_self">
1221        Seu electrònica            </a>
1222
1223    </li>
1224<li class="subMenuPage-123 level2">
1225    <a href="/ajuntament/transparencia" target="_self">
1226        Transparència            </a>
1227
1228    </li>
1229            </ul>
1230                    </nav>
1231</div>
1232    <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9 article responsiveHeight" id="readspeakerPage" tabindex="-1">
1233                    <div class="hideTablets">
1234    </div>
1235<h1 class="title"  id='title0' data-attribute="Anuncis / Edictes">Anuncis / Edictes</h1><div class="showTablets">
1236    </div>
1237<div>
1238        <div class="dinamic">
1239                                            
1240                                                                        <div class="subtitle" id="marcador0">e-Tauler</div><br>
1241                                                                                        <div class="ddbbtext">
1242                            <p>L'e-Tauler és un servei del Consorci AOC que permet la publicació i la gestió d'edictes electrònics mitjançant Internet. És una eina de publicació certificada amb automatismes associats a la gestió de la publicació dels edictes (control de períodes d'exposició, generació de diligències, etc.). L'e-Tauler permet gestionar les evidències electròniques del procés de publicació per tal de garantir els temps d'exposició i la integritat de la informació.</p>
1243
1244<p>L'avantatge per al ciutadà és que pot accedir a les publicacions oficials de qualsevol municipi sense haver de desplaçar-se sempre que facin servir la mateixa eina.</p>
1245
1246<p><a href="/url_etauler" target="_blank">Accediu a l'e-Tauler</a></p>
1247
1248<p>Important: per anuncis anteriors a 5 de maig de 2022 accediu a <a href="https://santamariademartorelles.eadministracio.cat/board" target="_blank">aquest tauler</a></p>
1249                        </div>
1250                                        </div>                                        </div>
1251<div class="hideTablets">
1252                            </div>
1253<div id="share"><div class="js-widget o-widget clearfix boxBX  default "  >  <div class="o-widget-wrapper clearfix default-BX   row " ><div class="o-widget-container ">
1253<div class="o-share o-share--icones_rodones">
1254    
1255    <div class="o-share__list">
1256                    <a
1257                class="o-share__link o-share__link--facebook"
1258                href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.santamariademartorelles.cat%2Fajuntament%2Fanuncis-edictes"
1259                target="_blank"
1260                rel="noopener"
1261                title="Facebook"
1262            >
1263                <span class="o-share__icon" aria-hidden="true">
1264                    <i class="fa-brands fa-facebook-f"></i>
1265                </span>
1266                <span class="visually-hidden">Facebook</span>
1267            </a>
1268                    <a
1269                class="o-share__link o-share__link--x"
1270                href="https://twitter.com/intent/tweet?text=Anuncis%20%2F%20Edictes&amp;url=https%3A%2F%2Fwww.santamariademartorelles.cat%2Fajuntament%2Fanuncis-edictes"
1271                target="_blank"
1272                rel="noopener"
1273                title="X"
1274            >
1275                <span class="o-share__icon" aria-hidden="true">
1276                    <i class="fa-brands fa-x-twitter"></i>
1277                </span>
1278                <span class="visually-hidden">X</span>
1279            </a>
1280            </div>
1281</div>
1282</div>  </div></div></div>
1283<span class="updated">Darrera actualització: 9.06.2022 | 10:20</span>
1284                </div>
1285    </div>
1286                </div>
1287            </div>
1288        </main>
1289        <footer id="footer-content" tabindex="-1">
1290            <div class="footer">
1291    <div class="shortcuts">
1292    <div class="container-xl">            
1293        <div class="featuredItem responsiveHeight">
1294    <h2 class="title">RSS</h2>
1295    <p class="subtitle">L'actualitat a un clic</p>
1296    <ul id="cm_rss">
1297        <li style="background-image: url('/front/view/images/ico_16_rss.png');">
1298    <a href="/rss/12">
1299           Agenda    </a>
1300</li>
1301<li style="background-image: url('/front/view/images/ico_16_rss.png');">
1302    <a href="/rss/15">
1303           Agenda política    </a>
1304</li>
1305<li style="background-image: url('/front/view/images/ico_16_rss.png');">
1306    <a href="/rss/13">
1307           Avisos    </a>
1308</li>
1309<li style="background-image: url('/front/view/images/ico_16_rss.png');">
1310    <a href="/rss/11">
1311           Notícies    </a>
1312</li>
1313    </ul>
1314</div>
1315<div class="featuredItem responsiveHeight">
1316    <h2 class="title">Adreces i telèfons</h2>
1317    
1318    <img width="96" height="96" src="/themes/santamariademartorelles/images/icons/plugin_home.png" alt="">
1319
1320    <p class="elem_button">
1321        <a href="/adreces-i-telefons" aria-label="Adreces i telèfons">
1322            Accedeix        </a>
1323    </p>
1324</div>
1325<div class="featuredItem">
1326    <h2 class="title">Meteo</h2>
1327    <div id="cm_meteocat">
1328        <ul class="bxslider">
1329            <li>
1330    Dissabte, 3 d’octubre    <img width="80" height="80"
1331        alt="ruixat"
1332        src="/themes/santamariademartorelles/images/meteocat/pluja.png"
1333    >
1334    <p>
1335        T.Màx: 27&deg;
1336        <br>
1337        T.Min: 17&deg;
1338    </p>
1339    </li>
1340<li>
1341    Diumenge, 4 d’octubre    <img width="80" height="80"
1342        alt="plugim"
1343        src="/themes/santamariademartorelles/images/meteocat/plugim.png"
1344    >
1345    <p>
1346        T.Màx: 25&deg;
1347        <br>
1348        T.Min: 19&deg;
1349    </p>
1350            <p>
1351            Tarda
1352            <img alt="ruixat" width="24" height="24"
1353                src="/themes/santamariademartorelles/images/meteocat/pluja.png"
1354            >
1355        </p>
1356    </li>
1357        </ul>
1358        <div class="outside">
1359            <p><span id="slider-prev"></span><span id="slider-next"></span></p>
1360        </div>
1361
1362    </div>
1363</div>
1364<div class="featuredItem responsiveHeight">
1365    <h2 class="title">Butlletí digital</h2>
1366    <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt="">
1367    <p class="elem_button">
1368        <a href="/actualitat/butlleti-digital" aria-label="Butlletí digital">
1369            Subscriu-te        </a>
1370    </p>
1371</div>
1372<div id="cm_planol" class="featuredItem responsiveHeight">
1373    <h2 class="title">Plànol / Carrers</h2>
1374
1375    <img width="96" height="96" src="/themes/santamariademartorelles/images/icons/plugin_map.png" alt="">
1376
1377    <p class="elem_button">
1378        <a href="/el-municipi/guia-de-carrers--planol" aria-label="Plànol">
1379            Accedeix        </a>
1380    </p>
1381</div>
1382    </div>
1383</div>
1384    <div class="hightlights">
1385        <div class="container-xl">
1386                    </div>
1387    </div>
1388    <nav class="menu" aria-label="Peu de menú">
1389        <ul class="container-xl sitemap">
1390            <li class="page-1 Inferior">  <a class="page-1" href="/ajuntament" target="_self" >Ajuntament  </a><ul id="footer-menu-1"><li class="subMenuPage-8">  <a class="subMenuPage-8" href="/ajuntament/govern" target="_self" >Govern  </a></li><li class="subMenuPage-80">  <a class="subMenuPage-80" href="/ajuntament/ple-municipal" target="_self" >Ple municipal  </a></li><li class="subMenuPage-16">  <a class="subMenuPage-16" href="/ajuntament/plans-campanyes-i-programes" target="_self" >Plans, campanyes i programes  </a></li><li class="subMenuPage-18">  <a class="subMenuPage-18" href="/ajuntament/anuncis-edictes" target="_self" >Anuncis / Edictes  </a></li><li class="subMenuPage-26">  <a class="subMenuPage-26" href="/ajuntament/perfil-de-contractant" target="_self" >Perfil de contractant  </a></li><li class="subMenuPage-126">  <a class="subMenuPage-126" href="/ajuntament/normativa" target="_self" >Normativa  </a></li><li class="subMenuPage-122">  <a class="subMenuPage-122" href="/ajuntament/seu-electronica" target="_self" >Seu electrònica  </a></li><li class="subMenuPage-123">  <a class="subMenuPage-123" href="/ajuntament/transparencia" target="_self" >Transparència  </a></li></ul></li><li class="page-10 Inferior">  <a class="page-10" href="/serveis-i-tramits" target="_self" >Serveis i tràmits  </a><ul id="footer-menu-10"><li class="subMenuPage-82">  <a class="subMenuPage-82" href="/serveis-i-tramits/oficines-municipals" target="_self" >Oficines municipals  </a></li><li class="subMenuPage-140">  <a class="subMenuPage-140" href="/serveis-i-tramits/cataleg-de-serveis" target="_self" >Catàleg de Serveis  </a></li><li class="subMenuPage-31">  <a class="subMenuPage-31" href="https://www.seu-e.cat/ca/web/santamariademartorelles/tramits-i-gestions" target="_blank" rel="noopener noreferrer" >Tràmits i gestions  </a></li><li class="subMenuPage-90">  <a class="subMenuPage-90" href="https://seu-e.cat/mygov/0825670005" target="_blank" rel="noopener noreferrer" >Carpeta ciutadana  </a></li><li class="subMenuPage-141">  <a class="subMenuPage-141" href="/serveis-i-tramits/notificacions-electroniques" target="_self" >Notificacions electròniques  </a></li><li class="subMenuPage-32">  <a class="subMenuPage-32" href="/serveis-i-tramits/impostos" target="_self" >Impostos  </a></li><li class="subMenuPage-88">  <a class="subMenuPage-88" href="/serveis-i-tramits/factura-electronica" target="_self" >Factura electrònica  </a></li><li class="subMenuPage-133">  <a class="subMenuPage-133" href="/serveis-i-tramits/finestreta-unica-empresarial-fue" target="_self" >Finestreta Única Empresarial (FUE)  </a></li></ul></li><li class="page-2 Inferior">  <a class="page-2" href="/el-municipi" target="_self" >El municipi  </a><ul id="footer-menu-2"><li class="subMenuPage-34">  <a class="subMenuPage-34" href="/el-municipi/com-arribar-hi" target="_self" >Com arribar-hi  </a></li><li class="subMenuPage-36">  <a class="subMenuPage-36" href="/el-municipi/guia-de-carrers--planol" target="_self" >Guia de carrers / Plànol  </a></li><li class="subMenuPage-3">  <a class="subMenuPage-3" href="/el-municipi/guia-del-municipi" target="_self" >Guia del municipi  </a></li><li class="subMenuPage-7">  <a class="subMenuPage-7" href="/el-municipi/informacio-del-municipi" target="_self" >Informació del municipi  </a></li><li class="subMenuPage-131">  <a class="subMenuPage-131" href="/el-municipi/turisme" target="_self" >Turisme  </a></li><li class="subMenuPage-48">  <a class="subMenuPage-48" href="/el-municipi/informacio-geografica" target="_self" >Informació geogràfica  </a></li></ul></li><li class="page-4 Inferior">  <a class="page-4" href="/actualitat" target="_self" >Actualitat  </a><ul id="footer-menu-4"><li class="subMenuPage-128">  <a class="subMenuPage-128" href="/actualitat/avisos" target="_self" >Avisos  </a></li><li class="subMenuPage-53">  <a class="subMenuPage-53" href="/actualitat/noticies" target="_self" >Notícies  </a></li><li class="subMenuPage-54">  <a class="subMenuPage-54" href="/actualitat/agenda" target="_self" >Agenda  </a></li><li class="subMenuPage-55">  <a class="subMenuPage-55" href="/actualitat/butlleti-digital" target="_self" >Butlletí digital  </a></li><li class="subMenuPage-56">  <a class="subMenuPage-56" href="/actualitat/dalt-la-vall" target="_self" >Dalt La Vall  </a></li><li class="subMenuPage-57">  <a class="subMenuPage-57" href="/actualitat/rss" target="_self" >RSS  </a></li><li class="subMenuPage-58">  <a class="subMenuPage-58" href="/actualitat/hemeroteca" target="_self" >Hemeroteca  </a></li></ul></li><li class="page-93 Inferior">  <a class="page-93" href="/temes" target="_self" >Temes  </a><ul id="footer-menu-93"><li class="subMenuPage-139">  <a class="subMenuPage-139" href="/temes/educacio" target="_self" >Educació  </a></li><li class="subMenuPage-136">  <a class="subMenuPage-136" href="/temes/cultura" target="_self" >Cultura  </a></li><li class="subMenuPage-138">  <a class="subMenuPage-138" href="/temes/salut" target="_self" >Salut  </a></li><li class="subMenuPage-137">  <a class="subMenuPage-137" href="/temes/benestar-i-ciutadania" target="_self" >Benestar i ciutadania  </a></li><li class="subMenuPage-135">  <a class="subMenuPage-135" href="/temes/medi-ambient" target="_self" >Medi ambient  </a></li></ul></li>        </ul>
1391    </nav>
1392    <div class="links">
1393        <div class="container-xl">
1394            <div class="row">
1395                <div class="xxss col-md-6 col-sm-6 col-lg-6 middle">                
1396                        <span class="titol">Xarxes socials:</span>
1397  
1398    <a target="_blank" aria-label="Facebook" href="https://es-es.facebook.com/AjuntamentSantaMariaMartorelles/" title="Obre en finestra nova: Facebook">
1399        <span style="display: none">Facebook</span>
1400        <img src="/themes/santamariademartorelles/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
1401    </a>
1402  
1403    <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCPXxAzDSWTJF5pvqzWLUTOw" title="Obre en finestra nova: Youtube">
1404        <span style="display: none">Youtube</span>
1405        <img src="/themes/santamariademartorelles/images/icons/social/youtube.png" alt="Youtube" width="32" height="32">
1406    </a>
1407  
1408    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajstamariamartorelles/" title="Obre en finestra nova: Instagram">
1409        <span style="display: none">Instagram</span>
1410        <img src="/themes/santamariademartorelles/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
1411    </a>
1412                </div>
1413                <div class="col-md-6 col-sm-6 col-lg-6 middle">
1414                    <nav class="menu"><ul id="Inferior2"><li class="page-63">  <a href="/altres-continguts/credits" target="_self" >Crèdits  </a></li><li class="page-62">  <a href="/altres-continguts/contacte" target="_self" >Contacte  </a></li><li class="page-60">  <a href="/altres-continguts/proteccio-de-dades" target="_self" >Protecció de dades  </a></li><li class="page-59">  <a href="/altres-continguts/avis-legal" target="_self" >Avís legal  </a></li><li class="page-61">  <a href="/altres-continguts/accessibilitat" target="_self" >Accessibilitat  </a></li></ul></nav>                </div>
1415            </div>
1416        </div>
1417    </div>
1418    <div class="contact">
1419        <div class="container-xl">
1420            <div class="row">
1421                <address class="address col-md-6 col-sm-6 col-lg-6">
1422    <div class="title">
1423        Ajuntament de Santa Maria de Martorelles    </div>
1424    Plaça Mossèn Josep Paituví, 1<br>08106 Santa Maria de Martorelles<br>Tel. 935 931 828<br>NIF P0825600J<br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner">
1425    <div class="title">
1426        Amb la col·laboració de:    </div>
1427    <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona">
1428        <span style="display: none">Diputació de Barcelona</span>
1429        <img src="/front/view//images/logoDiba/Blanc.svg" alt="Diputació de Barcelona" class="logo-diba">
1430    </a>
1431</div>            </div>
1432        </div>
1433    </div>
1434</div>
1435        </footer>
1436        <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1437<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1437
1437
1438<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1438
1438
1439<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790975369"></script>
vendor: 1 bytes, line 1439
1439
1440<script src="/front/view/js/bower_components/jscal/index.js?ver=1790975369"></script>
vendor: 1 bytes, line 1440
1440
1441<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1441
1441
1442<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790975369"></script>
vendor: 1 bytes, line 1442
1442
1443<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1443
1443
1444<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1444
1444
1445<script src="/front/view/js/constants.js?ver=1790975369"></script>
vendor: 1 bytes, line 1445
1445
1446<script src="/front/view/js/functions.js?ver=1790975369"></script>
vendor: 1 bytes, line 1446
1446
1447<script src="/front/view/js/functions/footer.js?ver=1790975369"></script>
vendor: 1 bytes, line 1447
1447
1448<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790975369"></script>
vendor: 1 bytes, line 1448
1448
1449<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790975369"></script>
vendor: 1 bytes, line 1449
1449
1450<script>
1451    $(document).ready(function(){
1452                    $("a[rel^='prettyPhoto']").prettyPhoto();
1453            $("a[rel^='prettyFrame']").prettyPhoto();
1454            });
1455</script>
vendor: 1 bytes, line 1455
1455
1456<script>
1457        var TWITTER = true;
1458            var FACEBOOK = true;
1459        $(window).on("load", function() {
1460        start();
1461    });
1462        $(document).ready(function() {
1463        if (typeof articlesId !== 'undefined') {
1464            var today = new Date();
1465                        var date = today
1466                        articlesId.push('internal_calendar');
1467
1468            var oneYearAfter = new Date();
1469            oneYearAfter.setDate(oneYearAfter.getDate() + 365);
1470            for (id in articlesId) {
1471                Calendar.setup({
1472                    id: articlesId[id],
1473                    cont: "dv_calendar_" + articlesId[id],
1474                    fdow: 1,
1475                    date: date,
1476                    noScroll: true,
1477                    bottomBar: false,
1478                    max: oneYearAfter,
1479                    animation: false,
1480                    titleFormat: "%B %Y",
1481                    dateInfo: getDateInfo
1482                });
1483                setEqualContentColumns();
1484            }
1485        }
1486    });
1487
1488        
1489    // Initialize Select2 with icon support for category filter
1490    $(document).ready(function() {
1491        if ($('#categoryFilter').length) {
1492            $('#categoryFilter').select2({
1493                templateResult: function(option) {
1494                    if (!option.id) return option.text;
1495                    var icon = $(option.element).data('icon');
1496                    if (!icon) return option.text;
1497                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1498                },
1499                templateSelection: function(option) {
1500                    if (!option.id) return option.text;
1501                    var icon = $(option.element).data('icon');
1502                    if (!icon) return option.text;
1503                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1504                },
1505                allowHtml: true
1506            });
1507        }
1508    });
1509</script>
1509
1510        <!-- CSS final-->
1511
1512        
1512<script>
1513          const css = "";
1514          const style = document.createElement('style');
1515          style.textContent = css;
1516          document.head.appendChild(style);
1517        </script>
1517
1518
1519        <!-- Start Modal views-->
1520        
1521        <div class="modal fade" id="videoModal" tabindex="-1" role="dialog"  aria-hidden="true">
1522    <div class="modal-dialog modal-dialog-centered" role="document">
1523        <div class="modal-content">
1524            <div class="modal-header">
1525                <div class="title-head"></div>
1526            </div>
1527            <div class="modal-body">
1528                <div class="tiktok-div-embed"></div>
1529                <iframe id="iframeVideo" title="Vídeo" class="iframeVideo" allowfullscreen></iframe>
1530
1531            </div>
1532            <div class="modal-footer">
1533                <span id="titleVideo" class="titleVideo"></span>
1534                <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a>
1535
1536            </div>
1537        </div>
1538    </div>
1539</div>        <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog"  aria-hidden="true">
1540    <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document">
1541        <div class="modal-content">
1542            <div class="modal-header">
1543                <div class="title-head"></div>
1544            </div>
1545            <div class="modal-body">
1546                <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe>
1547            </div>
1548            <div class="modal-footer">
1549                <span id="titlePdf" class="titlePdf"></span>
1550                <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a>
1551            </div>
1552        </div>
1553    </div>
1554</div>        <!-- End Modal views -->
1555        
1555<script src="/front/view/js/endScript.js?ver=1790975369"></script>
1555
1556        <!-- Només activar per desenvolupament
1557        
1557<script src="../../../node_modules/axe-core/axe.js"></script>
1557
1558        
1558<script src="../../../dist/my-first-webpack.bundle.js"></script>
1558
1559        -->
1560                
1560<script>
1561            $(document).ready(function () {
1562                startClock(1790975369);
1563                if (typeof (callMenuAfterJQueryLoaded) == "function") {
1564                    callMenuAfterJQueryLoaded();
1565                }
1566                
1567                datepickerInit();
1568                carouselControlSmall();
1569
1570                if (typeof (callMenuBeforeJQueryLoaded) == "function") {
1571                    callMenuBeforeJQueryLoaded();
1572                }
1573
1574                if (typeof (callMenuBeforeTopJQueryLoaded) == "function") {
1575                    callMenuBeforeTopJQueryLoaded();
1576                }
1577                addAttributesDivVcards();
1578                modalsImage();
1579                modalsPdf();
1580                translateWeb();
1581                var carousel = $('#carouselControls');
1582                carousel.on('slide.bs.carousel', function (event) {
1583                    toSlideImage(event);
1584                });
1585                /** Només activar per desenvolupament
1586                axe.configure({
1587                    locale: {
1588                        lang: 'es',
1589                    }
1590                });
1591
1592                axe.run().then(results => {
1593                        if (results.violations.length) {
1594                            console.log(results.violations);
1595                            throw new Error('Accessibility issues found');
1596                        }
1597                    })
1598                    .catch(err => {
1599                        console.log('Something bad happened:', err.message);
1600                    });
1601                */
1602            });
1603
1604            $(window).resize(function() {
1605                equalHeightIconTime();
1606            })
1607        </script>
1607
1608                    </body>
1609</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.