PageSourceSearch

https://www.gelida.cat/ajuntament/plans-campanyes-i-programes

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