PageSourceSearch

https://www.muntanyola.cat/

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