PageSourceSearch

https://www.monistroldecalders.cat/ajuntament/benvinguda

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