PageSourceSearch

https://www.cubelles.cat/ajuntament/salutacio-de-lalcaldessa

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