PageSourceSearch

https://www.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html

html dosrius.cat collected 2026-10-02 12:54:51 UTC 113,613 bytes, 1,558 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="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania - Ajuntament de Dosrius">
8<meta name="description" lang="ca" content="Ja es pot descarregar a Play Store i Apple Store de forma gratuïta. Inclou notícies, l&#039;agenda municipal, contactes d&#039;interès i facilita la comunicació d&#039;incidències, entre d&#039;altres. 
9
10 ">
11<meta name="author" lang="ca" content="Ajuntament de Dosrius">
12<meta name="date" lang="ca" content="2021-11-16 16:45:27">
13<meta name="generator" lang="ca" content="Ajuntament de Dosrius">
14<meta name="robots" content="index, follow">
15
16        <title>L'Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania - Ajuntament de Dosrius</title>
17
18        <!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 18-19
18
19<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
19UA-32846222-1
vendor: 12 bytes, line 19
19"></script>
20<script type="text/plain" data-type="text/javascript" data-name="ga">
21    
vendor: 140 bytes, lines 21-25
21window.dataLayer = window.dataLayer || [];
22    function gtag(){dataLayer.push(arguments);}
23    gtag('js', new Date());
24
25    gtag('config', '
25UA-32846222-1
vendor: 8 bytes, lines 25-26
25');
26    
26// Creates the default tracker.
27    gtag('event', 'page_view', { 'send_to': 'UA-32846222-1' });
28</script>
28
29<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4-->
30        <link rel="canonical" href="https://www.dosrius.cat/actualitat/noticies/lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html">
31
32        <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790945690">
33<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790945690">
34<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790945690">
35<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790945690">
36<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790945690">
37
38        <!-- Real Favicon Genenrator-->
39<link rel="apple-touch-icon" href="/themes/dosrius/images/favicons/apple-touch-icon.png">
40<link rel="icon" type="image/png" href="/themes/dosrius/images/favicons/favicon-16x16.png" sizes="16x16">
41<link rel="icon" type="image/png" href="/themes/dosrius/images/favicons/favicon-32x32.png" sizes="32x32">
42<link rel="shortcut icon" href="/themes/dosrius/images/favicons/favicon.ico">
43        
43<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 43
43
44<script>
45	// Fallback defensiu: si per algun motiu el PHP no retorna la configuració,
46	// assegurem una configuració mínima perquè Klaro no falli i mostri el banner.
47	window.klaroConfig = window.klaroConfig || {
48		version: '1.0',
49		elementID: 'klaro',
50		storageMethod: 'cookie',
51		storageName: 'klaro',
52		cookieName: 'klaro',
53		htmlTexts: true,
54		acceptAll: true,
55		hideDeclineAll: false,
56		services: []
57	};
58</script>
vendor: 1 bytes, line 58
58
59<script src="/front/view/js/klaro.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 59
59
60<script src="/front/view/js/klaro-init.js?ver=1790945690"></script>
60
61
62        <!-- Twitter Card data -->
63<meta name="twitter:card" content="summary">
64<meta name="twitter:title" content="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">
65<meta name="twitter:description" content="Ja es pot descarregar a Play Store i Apple Store de forma gratuïta. Inclou notícies, l&#039;agenda municipal, contactes d&#039;interès i facilita la comunicació d&#039;incidències, entre d&#039;altres. 
66
67 ">
68<meta name="twitter:image" content="https://www.dosrius.cat/media/repository/Com_descarregar_App_Aj.jpg">
69    <meta name="twitter:image:alt" content="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">
70        <!-- Open Graph data -->
71<meta property="og:title" content="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">
72<meta property="og:type" content="article">
73<meta property="og:url" content="https://www.dosrius.cat/actualitat/noticies/lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html">
74<meta property="og:image" content="https://www.dosrius.cat/media/repository/Com_descarregar_App_Aj.jpg">
75    <meta property="og:image:alt" content="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">
76    <meta property="og:description" content="Ja es pot descarregar a Play Store i Apple Store de forma gratuïta. Inclou notícies, l&#039;agenda municipal, contactes d&#039;interès i facilita la comunicació d&#039;incidències, entre d&#039;altres. 
77
78 ">
79<meta property="og:site_name" content="Ajuntament de Dosrius">
80
81        <!-- HTML5 compatible tags -->
82<script>
83    document.createElement('header');
84    document.createElement('footer');
85    document.createElement('section');
86    document.createElement('aside');
87    document.createElement('nav');
88    document.createElement('article');
89    document.createElement('hgroup');
90    document.createElement('lh');
91</script>
91
92        
92<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
92
93<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css">
94<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css">
95<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
96<script  src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 96
96
97<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 97
97
98<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 98
98
99<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 99
99
100<script  src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 100
100
101<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 101
101
102<script type="text/plain" data-type="text/javascript" data-name="maps" data-src="https://maps.google.com/maps/api/js?key=6LdPgo8UAAAAAP2lyXZpm3PmHBcydEkkxnklPFZE&amp;loading=async&amp;callback=onGoogleMapsReady"></script>
vendor: 1 bytes, line 102
102
103<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 103
103
104<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 104
104
105<script  src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 105
105
106<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 106
106
107<script src="/front/view/js/maps.js"></script>
107        <!-- Init addHeadExtraStyles -->
108        <style>html body{font-size:1em !important;} .backgroundImageHeader {background-repeat: repeat;  background-size: cover;  background-image:url("/media/repository/baners__capcaleres__destacats/capcaleres_web/dosriusCap.png");} </style>
109        <!-- End addHeadExtraStyles -->
110        <!-- Font Awesome 7 + v4-shims for backward compatibility -->
111        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet">
112        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet">
113        <!-- Popperjs + Tempus Dominus -->
114        
114<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790945690"></script>
vendor: 1 bytes, line 114
114
115<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790945690"></script>
115
116                <link rel="stylesheet" media="all" href="/themes/dosrius/styles/style.min.css?ver=1790945690">
117            </head>
118    <body class="article id-2945 noticies">
119        <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">
120                                    <div class="toolbar clearfix">
121    <div class="container-xl">
122                <div class="fright">
123            <div class="toolbarItem">
124    <div class="toolbarItem page-62 page-contactar">
125    <a 
126        href="/altra-informacio/contactar"
127        target="_self"
128        rel=""
129            >
130        Contactar    </a>
131</div>
132</div>                        <div id="social" class="toolbarItem">
133                  
134    <a target="_blank" aria-label="Twitter" href="https://twitter.com/dosrius" title="Obre en finestra nova: Twitter">
135        <span style="display: none">Twitter</span>
136        <img src="/themes/dosrius/images/icons/social/twitter.png" alt="Twitter" width="32" height="32">
137    </a>
138  
139    <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/dosrius/" title="Obre en finestra nova: Facebook">
140        <span style="display: none">Facebook</span>
141        <img src="/themes/dosrius/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
142    </a>
143  
144    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/dosrius/" title="Obre en finestra nova: Instagram">
145        <span style="display: none">Instagram</span>
146        <img src="/themes/dosrius/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
147    </a>
148            </div>
149                        <div class="toolbarItem">
150                <div id="toolbarLanguages">
151    <ul id="languages">
152        <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a>
153            <ul id="languagesList">
154                                    <li><a class="link-language" href="https://www.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html?lang=ca" data-target="https://www.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html?lang=ca">Català</a></li>
155                                    <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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&amp;sl=ca&amp;tl=es">Castellà</a></li>
156                                    <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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&amp;sl=ca&amp;tl=en">Anglès</a></li>
157                                    <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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&amp;sl=ca&amp;tl=de">Alemany</a></li>
158                                    <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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&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.dosrius.cat//continguts//lajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&amp;sl=ca&amp;tl=fr">Francès</a></li>
159                            </ul>
160        </li>
161    </ul>
162</div>
163<script>
164(function () {
165    var toggle = document.getElementById('languagesToggle');
166    if (!toggle) return;
167    var li = toggle.parentElement;
168    var submenu = li.querySelector('ul');
169    var links = Array.prototype.slice.call(submenu.querySelectorAll('a'));
170
171    function keyName(e) {
172        return e.key || e.code || e.keyCode;
173    }
174
175    function isSpaceKey(e) {
176        var key = keyName(e);
177        return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32;
178    }
179
180    function open(focusFirst) {
181        li.classList.add('is-open');
182        submenu.style.display = 'block';
183        submenu.style.padding = '1em';
184        toggle.setAttribute('aria-expanded', 'true');
185        if (focusFirst && links.length) links[0].focus();
186    }
187
188    function close() {
189        li.classList.remove('is-open');
190        submenu.style.display = '';
191        submenu.style.padding = '';
192        toggle.setAttribute('aria-expanded', 'false');
193    }
194
195    function isOpen() {
196        return toggle.getAttribute('aria-expanded') === 'true';
197    }
198
199    function focusLink(index) {
200        if (!links.length) return;
201        links[(index + links.length) % links.length].focus();
202    }
203
204    function focusedLinkIndex() {
205        return links.indexOf(document.activeElement);
206    }
207
208    toggle.addEventListener('click', function (e) {
209        e.preventDefault();
210        isOpen() ? close() : open(false);
211    });
212
213    toggle.addEventListener('keydown', function (e) {
214        var key = keyName(e);
215        if (key === 'Enter' || isSpaceKey(e)) {
216            e.preventDefault();
217            isOpen() ? close() : open(false);
218        } else if (key === 'ArrowDown' || key === 40) {
219            e.preventDefault();
220            open(true);
221        } else if (key === 'ArrowUp' || key === 38) {
222            e.preventDefault();
223            open(false);
224            focusLink(links.length - 1);
225        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
226            if (isOpen()) {
227                e.preventDefault();
228                close();
229            }
230        }
231    });
232
233    submenu.addEventListener('keydown', function (e) {
234        var key = keyName(e);
235        var index = focusedLinkIndex();
236
237        if (key === 'ArrowDown' || key === 40) {
238            e.preventDefault();
239            focusLink(index + 1);
240        } else if (key === 'ArrowUp' || key === 38) {
241            e.preventDefault();
242            focusLink(index - 1);
243        } else if (key === 'Home' || key === 36) {
244            e.preventDefault();
245            focusLink(0);
246        } else if (key === 'End' || key === 35) {
247            e.preventDefault();
248            focusLink(links.length - 1);
249        } else if (isSpaceKey(e)) {
250            e.preventDefault();
251            if (document.activeElement && document.activeElement.click) {
252                document.activeElement.click();
253            }
254        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
255            e.preventDefault();
256            close();
257            toggle.focus();
258        }
259    });
260
261    li.addEventListener('focusout', function () {
262        window.setTimeout(function () {
263            if (!li.contains(document.activeElement)) close();
264        }, 0);
265    });
266
267    document.addEventListener('click', function (e) {
268        if (!li.contains(e.target)) close();
269    });
270})();
271</script>
271
272                <div class="currentDate" style='padding:9px;color:white'>
273    <span id="clock" class="clock" title='Data i hora oficial' >
274        02.10.2026 | 14:54    </span>
275</div>            </div>
276        </div>
277    </div>
278</div>
279<div class="header ">
280    <div class="branding">
281        <div class="container-xl">
282            <div class="row">
283                <div class="col-md-8 col-sm-8 col-lg-8 logo_box">
284    <a class="logo" href="/" aria-label="Ajuntament de Dosrius - Pàgina d'inici">
285        <img src="/themes/dosrius/images/logos/header.png" alt="" width="355" height="125" id="mainLogo">
286    </a>
287    </div>                <div class="col-md-4 col-sm-4 col-lg-4 middle search_box">
288    <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search">
289        <label for="search" accesskey="4">
290            <span class="visually-hidden">Cercar:</span>
291        </label>
292        <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar...">
293        <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button>
294    </form>
295</div>
296            </div>
297        </div>
298    </div>
299        <div id="navbar-top" class="navbar navbar-expand-lg navbar-dark"><div class="nav"><div class="container-xl"><div class="row"><div class="col"><nav class="menu_principal" aria-label="menú"><div class="menu-flexible__wrapper menu-font-medium menu-alignment-left menu-spacing-normal menu-animation-fade menu-text-transform-none menu-columns-1" style="--menu-cols:1;--menu-submenu-width:200px;--menu-hover-delay:300ms;--menu-image-width:160px;" data-menu-columns="1" data-expand-type="hover" data-menu-sticky="false" data-menu-alignment="left" data-menu-spacing="normal" data-menu-animation="fade" data-menu-external-icon="auto" data-menu-external-dim="false" data-menu-text-transform="none"><div class="menu-flexible__topbar"><a href="#" class="menu-flexible__toggle phoneMenuButton" aria-label="Menú" aria-expanded="false"><i class="fa fa-bars"></i></a></div><ul class="menu-flexible menu-flexible__list"><li class="menu-flexible__item page-96 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament" ><span class="menu-flexible__item-text">Ajuntament</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-313 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/alcaldia" ><span class="menu-flexible__item-text">Alcaldia</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-97 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/alcaldia/benvinguda-i-informacio-de-lalcaldessa" ><span class="menu-flexible__item-text">Benvinguda i informació de l&#039;Alcaldessa</span></a></li><li class="menu-flexible__item page-365 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/alcaldia/agenda-institucional-de-lalcaldia" ><span class="menu-flexible__item-text">Agenda institucional de l&#039;Alcaldia</span></a></li><li class="menu-flexible__item page-348 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/alcaldia/historic-de-lagenda-institucional-de-lalcaldia" ><span class="menu-flexible__item-text">Històric de l&#039;agenda institucional de l&#039;alcaldia</span></a></li></ul></li><li class="menu-flexible__item page-341 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/consistori" ><span class="menu-flexible__item-text">Consistori</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-99 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/carrecs-electes" ><span class="menu-flexible__item-text">Càrrecs electes</span></a></li><li class="menu-flexible__item page-127 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/grups-municipals-informacio-i-noticies" ><span class="menu-flexible__item-text">Grups municipals: informació i notícies</span></a></li><li class="menu-flexible__item page-360 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/govern-municipal" ><span class="menu-flexible__item-text">
299Govern municipal</span></a></li><li class="menu-flexible__item page-347 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/oposicio" ><span class="menu-flexible__item-text">Oposició</span></a></li><li class="menu-flexible__item page-427 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/junta-de-portaveus" ><span class="menu-flexible__item-text">Junta de Portaveus</span></a></li><li class="menu-flexible__item page-160 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/retribucions-de-regidors-i-regidores-dels-grups-municipals" ><span class="menu-flexible__item-text">Retribucions de regidors i regidores dels grups municipals</span></a></li><li class="menu-flexible__item page-159 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/declaracio-de-bens-patrimonials-dels-regidors-i-regidores" ><span class="menu-flexible__item-text">Declaració de Béns Patrimonials dels regidors i regidores</span></a></li><li class="menu-flexible__item page-319 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/codi-de-conducta-i-pla-de-mesures-antifrau" ><span class="menu-flexible__item-text">Codi de conducta i Pla de mesures antifrau</span></a></li><li class="menu-flexible__item page-372 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/consistori/reglament-organic-municipal" ><span class="menu-flexible__item-text">Reglament Orgànic Municipal</span></a></li></ul></li><li class="menu-flexible__item page-342 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/govern-i-organigrama-municipal" ><span class="menu-flexible__item-text">Govern i organigrama municipal</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-317 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-i-organigrama-municipal/membres-del-govern-municipal" ><span class="menu-flexible__item-text">Membres del Govern municipal</span></a></li><li class="menu-flexible__item page-373 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-i-organigrama-municipal/organigrama-municipal" ><span class="menu-flexible__item-text">Organigrama municipal</span></a></li><li class="menu-flexible__item page-136 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-i-organigrama-municipal/regidories-de-govern" ><span class="menu-flexible__item-text">Regidories de Govern</span></a></li><li class="menu-flexible__item page-394 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://plans-dosrius.diba.cat/planes/pla-de-mandat/2024/" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Pla d&#039;Actuació Municipal (PAM)</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-371 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/govern-i-organigrama-municipal/retiment-de-comptes" ><span class="menu-flexible__item-text">Retiment de comptes</span></a></li></ul></li><li class="menu-flexible__item page-349 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/organs-de-govern" ><span class="menu-flexible__item-text">Òrgans de Govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-206 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple" ><span class="menu-flexible__item-text">El Ple</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-350 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2026" ><span class="menu-flexible__item-text">Sessions 2026</span></a></li><li class="menu-flexible__item page-412 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2025" ><span class="menu-flexible__item-text">Sessions 2025</span></a></li><li class="menu-flexible__item page-393 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2024" ><span class="menu-flexible__item-text">Sessions 2024</span></a></li><li class="menu-flexible__item page-385 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2023" ><span class="menu-flexible__item-text">Sessions 2023</span></a></li><li class="menu-flexible__item page-386 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2022" ><span class="menu-flexible__item-text">Sessions 2022</span></a></li><li class="menu-flexible__item page-384 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2021" ><span class="menu-flexible__item-text">Sessions 2021</span></a></li><li class="menu-flexible__item page-389 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2020" ><span class="menu-flexible__item-text">Sessions 2020</span></a></li><li class="menu-flexible__item page-390 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/206-el-ple/sessions-2019" ><span class="menu-flexible__item-text">Sessions 2019</span></a></li></ul></li><li class="menu-flexible__item page-157 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/junta-de-govern-local" ><span class="menu-flexible__item-text">Junta de Govern Local</span></a></li><li class="menu-flexible__item page-344 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/organs-de-govern/comissio-informativa-general" ><span class="menu-flexible__item-text">Comissió informativa general</span></a></li></ul></li><li class="menu-flexible__item page-354 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/grups-municipals-noticies-intervencions-i-opinions" ><span class="menu-flexible__item-text">Grups municipals: notícies, intervencions i opinions</span></a></li><li class="menu-flexible__item page-98 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes" ><span class="menu-flexible__item-text">Gestió econòmica: pressupost, subvencions i contractes</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-326 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes/pressupost-modificacions-pressupostaries-i-liquidacions" ><span class="menu-flexible__item-text">Pressupost, modificacions pressupostàries i liquidacions</span></a></li><li class="menu-flexible__item page-333 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes/execucio-pressupostaria-trimestral" ><span class="menu-flexible__item-text">Execució pressupostària trimestral</span></a></li><li class="menu-flexible__item page-201 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes/compliment-objectius-destabilitat-pressupostaria" ><span class="menu-flexible__item-text">Compliment objectius d&#039;estabilitat pressupostària</span></a></li><li class="menu-flexible__item page-377 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/gestio-economica" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Indicadors de gestió econòmica</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-395 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://expedients.sindicatura.cat/VerEnteLiferayCG.php?Codigo=080752000&amp;l=ca_ES" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Compte general</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-323 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes/ajuts-i-subvencions-convocatories-i-atorgaments" ><span class="menu-flexible__item-text">Ajuts i subvencions (convocatòries i atorgaments)</span></a></li><li class="menu-flexible__item page-346 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes/contractes-administratius" ><span class="menu-flexible__item-text">Contractes administratius</span></a></li><li class="menu-flexible__item page-361 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/gestio-economica/patrimoni" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Inventari patrimonial</span><i class="align-middle fa fa-external-link ms-2"></i></a></li></ul></li><li class="menu-flexible__item page-353 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/convenis" ><span class="menu-flexible__item-text">Convenis</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-345 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/contractes-convenis-i-subvencions/convenis-i-subvencions/convenis-de-col-laboracio" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Convenis de col·laboració</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-335 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/convenis/convenis-urbanistics" ><span class="menu-flexible__item-text">Convenis urbanístics</span></a></li></ul></li><li class="menu-flexible__item page-351 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/resolucions-administratives-i-judicials" ><span class="menu-flexible__item-text">Resolucions administratives i judicials</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-397 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/resolucions-administratives-i-judicials/decrets-i-resolucions-rellevants-" ><span class="menu-flexible__item-text">Decrets i resolucions rellevants </span></a></li><li class="menu-flexible__item page-320 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/resolucions-administratives-i-judicials/resolucions-administratives-i-judicials-que-afecten-a-lajuntament-de-dosrius" ><span class="menu-flexible__item-text">Resolucions administratives i judicials que afecten a l&#039;Ajuntament de Dosrius</span></a></li><li class="menu-flexible__item page-329 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/resolucions-administratives-i-judicials/dictamens-de-la-comissio-juridica-assessora-i-altres-organs-consultius-que-afecten-a-lajuntament-de-dosrius" ><span class="menu-flexible__item-text">Dictàmens de la Comissió Jurídica Assessora i altres òrgans consultius que afecten a l&#039;Ajuntament de Dosrius</span></a></li></ul></li><li class="menu-flexible__item page-352 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/recursos-humans-i-convocatories-de-personal" ><span class="menu-flexible__item-text">Recursos humans i convocatòries de personal</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-322 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/convocatories-de-personal" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Oferta pública d&#039;ocupació i convocatòries de personal</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-435 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/resultats-de-les-convocatories-de-personal" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Resultats de les convocatòries de personal i models</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-358 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/plantilla-empleats-publics" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Plantilla de personal</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-321 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/recursos-humans-i-convocatories-de-personal/relacio-de-llocs-de-treball-i-retribucions-del-personal-segons-categoria" ><span class="menu-flexible__item-text">Relació de llocs de treball i retribucions del personal segons categoria</span></a></li><li class="menu-flexible__item page-327 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/recursos-humans-i-convocatories-de-personal/personal-directiu-carrecs-de-confianca-io-assessors-dels-grups-politics" ><span class="menu-flexible__item-text">Personal directiu, càrrecs de confiança i/o assessors dels grups polítics</span></a></li><li class="menu-flexible__item page-125 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/recursos-humans-i-convocatories-de-personal/125-tecnics-municipals" ><span class="menu-flexible__item-text">Tècnics municipals</span></a></li></ul></li><li class="menu-flexible__item page-163 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/normativa-ordenances-i-reglaments" ><span class="menu-flexible__item-text">Normativa: ordenances i reglaments</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-356 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes/ordenances-reguladores-i-reglaments" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Ordenances reguladores i reglaments</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-357 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/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><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-362 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/normativa-ordenances-i-reglaments/normativa-urbanistica" ><span class="menu-flexible__item-text">Normativa urbanística</span></a></li><li class="menu-flexible__item page-355 level3"><a class="menu-flexible__link menu-link--external" aria-
299expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/accio-de-govern-i-normativa" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Acció de govern i normativa</span><i class="align-middle fa fa-external-link ms-2"></i></a></li></ul></li><li class="menu-flexible__item page-325 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana" ><span class="menu-flexible__item-text">Participació ciutadana</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-366 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/reglament-de-participacio-ciutadana" ><span class="menu-flexible__item-text">Reglament de participació ciutadana</span></a></li><li class="menu-flexible__item page-367 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/processos-participatius-de-lajuntament-de-dosrius" ><span class="menu-flexible__item-text">Processos participatius de l&#039;Ajuntament de Dosrius</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-375 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/processos-participatius-de-lajuntament-de-dosrius/processos-participatius-oberts" ><span class="menu-flexible__item-text">Processos participatius oberts</span></a></li><li class="menu-flexible__item page-376 level4"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/processos-participatius-de-lajuntament-de-dosrius/processos-participatius-tancats" ><span class="menu-flexible__item-text">Processos participatius tancats</span></a></li></ul></li><li class="menu-flexible__item page-368 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/espais-de-participacio-ciutadana" ><span class="menu-flexible__item-text">Espais de participació ciutadana</span></a></li><li class="menu-flexible__item page-369 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/consultes-publiques-de-projectes-normatius-en-tramit-i-projectes-dobres-i-planejament-urbanistic" ><span class="menu-flexible__item-text">Consultes públiques de projectes normatius en tràmit i projectes d&#039;obres i planejament urbanístic</span></a></li><li class="menu-flexible__item page-370 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/325-participacio-ciutadana/processos-participatius-de-la-generalitat-de-catalunya" ><span class="menu-flexible__item-text">Processos participatius de la Generalitat de Catalunya</span></a></li></ul></li><li class="menu-flexible__item page-123 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/transparencia-i-acces-a-la-informacio-publica" ><span class="menu-flexible__item-text">Transparència i Accés a la informació pública</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-402 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/transparencia-i-acces-a-la-informacio-publica/peticions-dacces-a-la-informacio" ><span class="menu-flexible__item-text">Peticions d&#039;accés a la informació</span></a></li></ul></li><li class="menu-flexible__item page-328 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/lajuntament/comunicacio" ><span class="menu-flexible__item-text">Comunicació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-324 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://seu-e.cat/ca/web/dosrius/govern-obert-i-transparencia/informacio-institucional-i-organitzativa/empleats-publics/responsable-de-comunicacio/premsa" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Responsable de Premsa, Informació i Comunicació</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-204 level3"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/comunicacio/imatge-corporativa" ><span class="menu-flexible__item-text">Imatge Corporativa</span></a></li></ul></li><li class="menu-flexible__item page-26 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/perfil-de-contractant" ><span class="menu-flexible__item-text">Perfil de contractant</span></a></li><li class="menu-flexible__item page-211 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/seu-electronica" ><span class="menu-flexible__item-text">Seu electrònica</span></a></li><li class="menu-flexible__item page-18 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/anuncis-edictes" ><span class="menu-flexible__item-text">Anuncis / Edictes</span></a></li><li class="menu-flexible__item page-374 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/374-carta-de-serveis" ><span class="menu-flexible__item-text">Carta de serveis</span></a></li><li class="menu-flexible__item page-425 level2"><a class="menu-flexible__link" aria-expanded="false" href="/lajuntament/425-bustia-etica" ><span class="menu-flexible__item-text">Bústia ètica</span></a></li></ul></li><li class="menu-flexible__item page-108 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/tramits-i-serveis" ><span class="menu-flexible__item-text">Tràmits i serveis</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-364 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/quei
299xes-suggeriments-i-propostes" ><span class="menu-flexible__item-text">Queixes, suggeriments i propostes</span></a></li><li class="menu-flexible__item page-112 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/carpeta-ciutadana" ><span class="menu-flexible__item-text">Carpeta ciutadana</span></a></li><li class="menu-flexible__item page-200 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/200-cataleg-de-serveis" ><span class="menu-flexible__item-text">Catàleg de serveis</span></a></li><li class="menu-flexible__item page-114 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/factura-electronica" ><span class="menu-flexible__item-text">Factura electrònica</span></a></li><li class="menu-flexible__item page-113 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/impostos" ><span class="menu-flexible__item-text">Impostos</span></a></li><li class="menu-flexible__item page-272 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/informacio-dinteres" ><span class="menu-flexible__item-text">Informació d&#039;interès</span></a></li><li class="menu-flexible__item page-310 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/notificacions-electroniques" ><span class="menu-flexible__item-text">Notificacions electròniques</span></a></li><li class="menu-flexible__item page-153 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="/tramits-i-serveis/oficina-datencio-al-ciutada-oac/oficina-datencio-al-ciutada-oac.html" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Oficina d&#039;Atenció al Ciutadà (OAC)</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-195 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="/tramits-i-serveis/registre-civil/jutjat-de-pau-registre-civil.html" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Registre Civil</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-111 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/tramits-i-gestions" ><span class="menu-flexible__item-text">Tràmits i gestions</span></a></li><li class="menu-flexible__item page-216 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/finestreta-unica-empresarial" ><span class="menu-flexible__item-text">Finestreta Única Empresarial</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="/municipi" ><span class="menu-flexible__item-text">Municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-339 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/municipi/el-nostre-municipi" ><span class="menu-flexible__item-text">El nostre municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-3 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/el-nostre-municipi/nuclis-de-poblacio" ><span class="menu-flexible__item-text">Nuclis de població</span></a></li><li class="menu-flexible__item page-167 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/el-nostre-municipi/esdeveniments-festes-mercats-i-concursos" ><span class="menu-flexible__item-text">Esdeveniments, festes, mercats i concursos</span></a></li><li class="menu-flexible__item page-49 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/el-nostre-municipi/patrimoni-cultural-i-natural" ><span class="menu-flexible__item-text">Patrimoni cultural i natural</span></a></li></ul></li><li class="menu-flexible__item page-336 level2"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/historia-del-municipi" ><span class="menu-flexible__item-text">Història del municipi</span></a></li><li class="menu-flexible__item page-46 level2"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/el-municipi-en-dades" ><span class="menu-flexible__item-text">El municipi en dades</span></a></li><li class="menu-flexible__item page-340 level2"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.dosrius.cat/arees/224-entitats-i-associacions" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Portal d&#039;entitats i associacions</span><i class="align-middle fa fa-external-link ms-2"></i></a></li><li class="menu-flexible__item page-237 level2"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/agenda-dactivitats-municipals-i-ciutadanes" ><span class="menu-flexible__item-text">Agenda d&#039;activitats municipals i ciutadanes</span></a></li><li class="menu-flexible__item page-34 level2"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/com-arribar-hi" ><span class="menu-flexible__item-text">Com arribar-hi</span></a></li><li class="menu-flexible__item page-337 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/municipi/337-informacio-dinteres" ><span class="menu-flexible__item-text">Informació d&#039;interès</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-39 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/337-informacio-dinteres/empreses-i-comercos" ><span class="menu-flexible__item-text">Empreses i comerços</span></a></li><li class="menu-flexible__item page-37 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/337-informacio-dinteres/equipaments" ><span class="menu-flexible__item-text">Equipaments</span></a></li><li class="menu-flexible__item page-36 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/337-informacio-dinteres/guia-de-carrers--planol" ><span class="menu-flexible__item-text">Guia de carrers / Plànol</span></a></li><li class="menu-flexible__item page-48 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/337-informacio-dinteres/informacio-geografica" ><span class="menu-flexible__item-text">Informació geogràfica</span></a></li><li class="menu-flexible__item page-202 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/337-informacio-dinteres/mapes" ><span class="menu-flexible__item-text">Mapes</span></a></li></ul></li><li class="menu-flexible__item page-234 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/municipi/que-fer-a-dosrius" ><span class="menu-flexible__item-text">Què fer a Dosrius</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-236 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/que-fer-a-dosrius/activitats-de-lleure" ><span class="menu-flexible__item-text">Activitats de lleure</span></a></li><li class="menu-flexible__item page-128 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/que-fer-a-dosrius/llocs-dinteres" ><span class="menu-flexible__item-text">Llocs d&#039;interès</span></a></li><li class="menu-flexible__item page-38 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/que-fer-a-dosrius/menjar-i-beure" ><span class="menu-flexible__item-text">Menjar i beure</span></a></li><li class="menu-flexible__item page-235 level3"><a class="menu-flexible__link" aria-expanded="false" href="/municipi/que-fer-a-dosrius/on-dormir" ><span class="menu-flexible__item-text">On dormir</span></a></li></ul></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-54 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/agenda" ><span class="menu-flexible__item-text">Agenda</span></a></li><li class="menu-flexible__item page-55 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/butlleti-digital" ><span class="menu-flexible__item-text">Butlletí digital</span></a></li><li class="menu-flexible__item page-56 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/el-full" ><span class="menu-flexible__item-text">El Full</span></a></li><li class="menu-flexible__item page-58 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/hemeroteca" ><span class="menu-flexible__item-text">Hemeroteca</span></a></li><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-134 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/publicacions" ><span class="menu-flexible__item-text">Publicacions</span></a></li><li class="menu-flexible__item page-429 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/actualitat/429-can-canyamars" ><span class="menu-flexible__item-text">Can Canyamars</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-428 level3"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/429-can-canyamars/sollicitud-de-millores-legals-sobre-udus" ><span class="menu-flexible__item-text">Sol·licitud de millores legals sobre UDU&#039;s</span></a></li><li class="menu-flexible__item page-430 level3"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/429-can-canyamars/reparcellacio" ><span class="menu-flexible__item-text">Reparcel·lació</span></a></li><li class="menu-flexible__item page-431 level3"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/429-can-canyamars/projecte-durbanitzacio" ><span class="menu-flexible__item-text">Projecte d&#039;urbanització</span></a></li><li class="menu-flexible__item page-432 level3"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/429-can-canyamars/servei-daigua" ><span class="menu-flexible__item-text">Servei d&#039;aigua</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-189 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/arees" ><span class="menu-flexible__item-text">Àrees</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-382 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/policia-local" ><span class="menu-flexible__item-text">Policia Local</span></a></li><li class="menu-flexible__item page-226 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/arxiu-municipal" ><span class="menu-flexible__item-text">
299Arxiu Municipal</span></a></li><li class="menu-flexible__item page-145 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/educacio" ><span class="menu-flexible__item-text">Educació</span></a></li><li class="menu-flexible__item page-311 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/els-localets" ><span class="menu-flexible__item-text">Els Localets</span></a></li><li class="menu-flexible__item page-224 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/224-entitats-i-associacions" ><span class="menu-flexible__item-text">Entitats i associacions</span></a></li><li class="menu-flexible__item page-244 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/igualtat" ><span class="menu-flexible__item-text">Igualtat</span></a></li><li class="menu-flexible__item page-227 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/arees/medi-ambient" ><span class="menu-flexible__item-text">Medi Ambient</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-407 level3"><a class="menu-flexible__link" aria-expanded="false" href="/arees/medi-ambient/refugis-climatics" ><span class="menu-flexible__item-text">Refugis climàtics</span></a></li><li class="menu-flexible__item page-281 level3"><a class="menu-flexible__link" aria-expanded="false" href="/arees/medi-ambient/dosrius-residus" ><span class="menu-flexible__item-text">Dosrius Residus</span></a></li></ul></li><li class="menu-flexible__item page-171 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/serveis-socials" ><span class="menu-flexible__item-text">Serveis Socials</span></a></li><li class="menu-flexible__item page-209 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/urbanisme" ><span class="menu-flexible__item-text">Urbanisme</span></a></li><li class="menu-flexible__item page-406 level2"><a class="menu-flexible__link" aria-expanded="false" href="/arees/seguretat-i-prevencio" ><span class="menu-flexible__item-text">Seguretat i prevenció</span></a></li></ul></li></ul></div>
299<script>(function() {
300    'use strict';
301
302    // Mega panel
303
304    function initMegaPanels(navContainer) {
305        var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]'));
306        if (!menuItems.length) return;
307
308        var navUl    = navContainer.querySelector('ul');
309        var topItems = navUl
310            ? menuItems.filter(function(el) { return el.parentElement === navUl; })
311            : menuItems;
312
313        var wrapper    = navContainer.closest('.menu-flexible__wrapper');
314        var isClick    = wrapper && wrapper.getAttribute('data-expand-type') === 'click';
315
316        menuItems.forEach(function(item) {
317            var panel = getPanelForItem(item, navContainer);
318            if (!panel) return;
319
320            if (isClick) {
321                var link = item.querySelector('a');
322                if (link) {
323                    link.addEventListener('click', function(e) {
324                        // En mòbil, els elements naveguen directament sense desplegar submenús
325                        if (window.innerWidth <= 992) return;
326                        if (panel.classList.contains('mf-mega-visible')) {
327                            // Segon clic: navegar
328                            return;
329                        }
330                        e.preventDefault();
331                        hideAllMegaPanels(navContainer);
332                        showPanel(item, panel);
333                    });
334                }
335            } else {
336                var hoverDelay = parseInt(
337                    getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10
338                ) || 0;
339                var hoverTimer = null;
340
341                var leaveTimer = null;
342
343                item.addEventListener('mouseenter', function() {
344                    clearTimeout(hoverTimer);
345                    clearTimeout(leaveTimer);
346                    if (hoverDelay > 0) {
347                        hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay);
348                    } else {
349                        showPanel(item, panel);
350                    }
351                });
352                item.addEventListener('mouseleave', function(e) {
353                    clearTimeout(hoverTimer);
354                    if (!panel.contains(e.relatedTarget)) {
355                        leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300);
356                    }
357                });
358                panel.addEventListener('mouseenter', function() {
359                    clearTimeout(leaveTimer);
360                });
361                panel.addEventListener('mouseleave', function(e) {
362                    clearTimeout(hoverTimer);
363                    clearTimeout(leaveTimer);
364                    if (!item.contains(e.relatedTarget)) hidePanel(item, panel);
365                });
366
367                // Tàctil: fallback quan hover no disponible (només escriptori tàctil)
368                var link = item.querySelector('a');
369                if (link) {
370                    link.addEventListener('click', function(e) {
371                        if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) {
372                            if (panel.classList.contains('mf-mega-visible')) {
373                                // Segon clic en tàctil: navegar
374                                return;
375                            }
376                            e.preventDefault();
377                            hideAllMegaPanels(navContainer);
378                            showPanel(item, panel);
379                        }
380                    });
381                }
382            }
383        });
384
385        navContainer.addEventListener('keydown', function(e) {
386            handleMegaKeydown(e, navContainer, topItems);
387        });
388
389        if (!isClick) {
390            navContainer.addEventListener('focusin', function(e) {
391                var item = e.target.closest('[data-mega-id]');
392                if (!item) return;
393                var panel = getPanelForItem(item, navContainer);
394                if (!panel) return;
395                hideAllMegaPanels(navContainer);
396                showPanel(item, panel);
397            });
398        }
399
400        navContainer.addEventListener('focusout', function() {
401            setTimeout(function() {
402                if (!navContainer.contains(document.activeElement)) {
403                    hideAllMegaPanels(navContainer);
404                }
405            }, 0);
406        });
407
408        document.addEventListener('click', function(e) {
409            if (!navContainer.contains(e.target)) {
410                hideAllMegaPanels(navContainer);
411            }
412        });
413    }
414
415    function handleMegaKeydown(e, navContainer, topItems) {
416        var focused = document.activeElement;
417        if (!focused) return;
418
419        var currentItem = focused.closest('[data-mega-id]');
420        var currentPanel = focused.closest('.menu-flexible__mega-panel');
421        var key = e.key || e.code || e.keyCode;
422
423        function directLink(item) {
424            if (!item) return null;
425            return Array.prototype.slice.call(item.children).find(function(el) {
426                return el.tagName === 'A';
427            }) || item.querySelector('a');
428        }
429
430        function itemForPanel(panel) {
431            if (!panel) return null;
432            var id = panel.getAttribute('data-mega-id');
433            return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
434        }
435
436        function focusPanelLink(panel, index) {
437            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
438            if (!links.length) return;
439            links[(index + links.length) % links.length].focus();
440        }
441
442        function focusPanelSibling(panel, offset) {
443            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
444            var idx = links.indexOf(focused);
445            if (idx === -1) return;
446            links[(idx + offset + links.length) % links.length].focus();
447        }
448
449        function panelColumnForLink(link) {
450            return link ? link.closest('.menu-flexible__mega-col') : null;
451        }
452
453        function focusAdjacentPanelColumn(panel, offset) {
454            var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col'));
455            var currentColumn = panelColumnForLink(focused);
456            var idx = columns.indexOf(currentColumn);
457            if (idx === -1) return false;
458
459            var targetColumn = columns[(idx + offset + columns.length) % columns.length];
460            var targetLink = targetColumn.querySelector('a');
461            if (targetLink) {
462                targetLink.focus();
463                return true;
464            }
465
466            return false;
467        }
468
469        function focusTopItem(item, offset) {
470            var idx = topItems.indexOf(item);
471            if (idx === -1) return;
472
473            var next = topItems[(idx + offset + topItems.length) % topItems.length];
474            hideAllMegaPanels(navContainer);
475
476            var nextLink = directLink(next);
477            if (nextLink) {
478                nextLink.focus();
479                var nextPanel = getPanelForItem(next, navContainer);
480                if (nextPanel) showPanel(next, nextPanel);
481            }
482        }
483
484        switch (key) {
485            case 'Escape':
486            case 'Esc':
487            case 27: {
488                e.preventDefault();
489                hideAllMegaPanels(navContainer);
490                if (currentPanel) {
491                    var item = itemForPanel(currentPanel);
492                    var lnk = directLink(item);
493                    if (lnk) lnk.focus();
494                }
495                break;
496            }
497
498            case 'ArrowRight':
499            case 39:
500            case 'ArrowLeft':
501            case 37: {
502                var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1;
503                e.preventDefault();
504
505                if (currentPanel) {
506                    if (!focusAdjacentPanelColumn(currentPanel, direction)) {
507                        var ownerItem = itemForPanel(currentPanel);
508                        focusTopItem(ownerItem, direction);
509                    }
510                    break;
511                }
512
513                if (!currentItem) return;
514                focusTopItem(currentItem, direction);
515                break;
516            }
517
518            case 'ArrowDown':
519            case 40: {
520                e.preventDefault();
521                if (currentPanel) {
522                    focusPanelSibling(currentPanel, 1);
523                    break;
524                }
525                if (!currentItem) return;
526                var panel = getPanelForItem(currentItem, navContainer);
527                if (!panel) return;
528                if (!panel.classList.contains('mf-mega-visible')) {
529                    hideAllMegaPanels(navContainer);
530                    showPanel(currentItem, panel);
531                }
532                focusPanelLink(panel, 0);
533                break;
534            }
535
536            case ' ':
537            case 'Space':
538            case 'Spacebar':
539            case 32: {
540                if (currentPanel || !currentItem) return;
541                var spacePanel = getPanelForItem(currentItem, navContainer);
542                if (!spacePanel) return;
543
544                e.preventDefault();
545                if (spacePanel.classList.contains('mf-mega-visible')) {
546                    hidePanel(currentItem, spacePanel);
547                } else {
548                    hideAllMegaPanels(navContainer);
549                    showPanel(currentItem, spacePanel);
550                }
551                break;
552            }
553
554            case 'ArrowUp':
555            case 38: {
556                if (!currentPanel) return;
557                e.preventDefault();
558                var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a'));
559                var focusedIndex = panelLinks.indexOf(focused);
560
561                if (focusedIndex > 0) {
562                    focusPanelLink(currentPanel, focusedIndex - 1);
563                } else {
564                    var parentItem = itemForPanel(currentPanel);
565                    var parentLink = directLink(parentItem);
566                    if (parentLink) parentLink.focus();
567                    if (parentItem) hidePanel(parentItem, currentPanel);
568                }
569                break;
570            }
571        }
572    }
573
574    function getPanelForItem(item, navContainer) {
575        var id = item.getAttribute('data-mega-id');
576        return id
577            ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]')
578            : null;
579    }
580
581    function showPanel(item, panel) {
582        panel.classList.add('mf-mega-visible');
583        panel.setAttribute('aria-hidden', 'false');
584        var link = item.querySelector('a');
585        if (link) link.setAttribute('aria-expanded', 'true');
586    }
587
588    function hidePanel(item, panel) {
589        panel.classList.remove('mf-mega-visible');
590        panel.setAttribute('aria-hidden', 'true');
591        var link = item.querySelector('a');
592        if (link) link.setAttribute('aria-expanded', 'false');
593    }
594
595    function hideAllMegaPanels(navContainer) {
596        navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible')
597            .forEach(function(panel) {
598                var id   = panel.getAttribute('data-mega-id');
599                var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
600                if (item) {
601                    hidePanel(item, panel);
602                } else {
603                    panel.classList.remove('mf-mega-visible');
604                    panel.setAttribute('aria-hidden', 'true');
605                }
606            });
607    }
608
609
610    // Tecles de fletxa (menú estàndard)
611
612    function initStandardKeyboard(wrapper) {
613        var menu = wrapper.querySelector('.menu-flexible__list');
614        if (!menu) return;
615
616        function closeAll() {
617            Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]'))
618                .forEach(function(item) {
619                    item.setAttribute('focus', 'false');
620                    var submenu = Array.prototype.slice.call(item.children).find(function(el) {
621                        return el.classList && el.classList.contains('menu-flexible__submenu');
622                    });
623                    if (submenu) {
624                        submenu.style.left = '';
625                        submenu.style.opacity = '';
626                        submenu.style.visibility = '';
627                        submenu.style.pointerEvents = '';
628                        submenu.style.transform = '';
629                    }
630                    var link = Array.prototype.slice.call(item.children).find(function(el) {
631                        return el.tagName === 'A';
632                    });
633                    if (link && link.classList.contains('menu-flexible__link--dropdown')) {
634                        link.setAttribute('aria-expanded', 'false');
635                    }
636                });
637        }
638
639        wrapper.addEventListener('keydown', function(e) {
640            handleStandardKeydown(e, menu);
641        });
642
643        wrapper.addEventListener('focusout', function() {
644            setTimeout(function() {
645                if (!wrapper.contains(document.activeElement)) {
646                    closeAll();
647                }
648            }, 0);
649        });
650    }
651
652    function handleStandardKeydown(e, menu) {
653        var focused = document.activeElement;
654        if (!focused || !menu.contains(focused)) return;
655
656        var itemSel = '.menu-flexible__item';
657        var linkSel = '.menu-flexible__link';
658
659        var currentLi = focused.closest(itemSel);
660        if (!currentLi) return;
661
662        var parentUl = currentLi.parentElement;
663        var isLevel1 = parentUl === menu;
664
665        function directLink(li) {
666            var direct = Array.prototype.slice.call(li.children).find(function(el) {
667                return el.tagName === 'A';
668            });
669            return direct || li.querySelector(linkSel);
670        }
671
672        function siblingItems(ul) {
673            return Array.prototype.slice.call(ul.children).filter(function(el) {
674                return el.matches(itemSel);
675            });
676        }
677
678        function childMenu(li) {
679            return Array.prototype.slice.call(li.children).find(function(el) {
680                return el.classList && el.classList.contains('menu-flexible__submenu');
681            });
682        }
683
684        function setSubmenuVisible(li, visible) {
685            var submenu = childMenu(li);
686            if (!submenu) return;
687
688            if (visible) {
689                submenu.style.left = li.parentElement === menu ? '0' : '100%';
690                submenu.style.opacity = '1';
691                submenu.style.visibility = 'visible';
692                submenu.style.pointerEvents = 'auto';
693                submenu.style.transform = 'none';
694            } else {
695                submenu.style.left = '';
696                submenu.style.opacity = '';
697                submenu.style.visibility = '';
698                submenu.style.pointerEvents = '';
699                submenu.style.transform = '';
700            }
701        }
702
703        function setExpanded(li, expanded) {
704            li.setAttribute('focus', expanded ? 'true' : 'false');
705            setSubmenuVisible(li, expanded);
706            var lnk = directLink(li);
707            if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) {
708                lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false');
709            }
710            if (!expanded) {
711                Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]'))
712                    .forEach(function(item) {
713                        item.setAttribute('focus', 'false');
714                        setSubmenuVisible(item, false);
715                        var childLink = directLink(item);
716                        if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) {
717                            childLink.setAttribute('aria-expanded', 'false');
718                        }
719                    });
720            }
721        }
722
723        function closeSiblings(li) {
724            Array.prototype.slice.call(li.parentElement.children)
725                .filter(function(item) {
726                    return item !== li && item.matches(itemSel);
727                })
728                .forEach(function(item) {
729                    setExpanded(item, false);
730                });
731        }
732
733        function openChild(li) {
734            var submenu = childMenu(li);
735            if (!submenu) return false;
736            closeSiblings(li);
737            setExpanded(li, true);
738            var firstChild = submenu.querySelector(linkSel);
739            if (firstChild) firstChild.focus();
740            return true;
741        }
742
743        function focusSibling(offset) {
744            var sibs = siblingItems(parentUl);
745            var idx  = sibs.indexOf(currentLi);
746            var lnk  = directLink(sibs[(idx + offset + sibs.length) % sibs.length]);
747            if (lnk) lnk.focus();
748        }
749
750        var key = e.key || e.code || e.keyCode;
751
752        switch (key) {
753            case 'ArrowRight':
754            case 39: {
755                if (!isLevel1) return;
756                e.preventDefault();
757                setExpanded(currentLi, false);
758                focusSibling(1);
759                break;
760            }
761            case 'ArrowLeft':
762            case 37: {
763                if (!isLevel1) return;
764                e.preventDefault();
765                setExpanded(currentLi, false);
766                focusSibling(-1);
767                break;
768            }
769            case 'ArrowDown':
770            case 40: {
771                e.preventDefault();
772                if (focused === directLink(currentLi) && openChild(currentLi)) {
773                    break;
774                }
775                var sibsDown = siblingItems(parentUl);
776                var idxDown  = sibsDown.indexOf(currentLi);
777                if (idxDown < sibsDown.length - 1) {
778                    var lnkDown = directLink(sibsDown[idxDown + 1]);
779                    if (lnkDown) lnkDown.focus();
780                }
781                break;
782            }
783            case 'ArrowUp':
784            case 38: {
785                e.preventDefault();
786                var sibsUp = siblingItems(parentUl);
787                var idxUp  = sibsUp.indexOf(currentLi);
788                if (idxUp > 0) {
789                    var lnkUp = directLink(sibsUp[idxUp - 1]);
790                    if (lnkUp) lnkUp.focus();
791                } else if (!isLevel1) {
792                    var parentItemUp = parentUl.closest(itemSel);
793                    if (parentItemUp) {
794                        setExpanded(parentItemUp, false);
795                        var parentLinkUp = directLink(parentItemUp);
796                        if (parentLinkUp) parentLinkUp.focus();
797                    }
798                }
799                break;
800            }
801            case ' ':
802            case 'Space':
803            case 'Spacebar':
804            case 32: {
805                if (!focused.classList.contains('menu-flexible__link--dropdown')) return;
806                e.preventDefault();
807                currentLi.getAttribute('focus') === 'true'
808                    ? setExpanded(currentLi, false)
809                    : openChild(currentLi);
810                break;
811            }
812            case 'Escape':
813            case 'Esc':
814            case 27: {
815                if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return;
816                e.preventDefault();
817                if (!isLevel1) {
818                    var parentItemEsc = parentUl.closest(itemSel);
819                    if (parentItemEsc) {
820                        setExpanded(parentItemEsc, false);
821                        var parentLinkEsc = directLink(parentItemEsc);
822                        if (parentLinkEsc) parentLinkEsc.focus();
823                    }
824                } else {
825                    setExpanded(currentLi, false);
826                }
827                break;
828            }
829        }
830    }
831
832
833    // Click mode: expandir submenús via [focus=true]
834
835    function initClickExpand(wrapper) {
836        var menu = wrapper.querySelector('.menu-flexible__list');
837        if (!menu) return;
838
839        var itemSel        = '.menu-flexible__item';
840        var dropdownSel    = '.menu-flexible__link--dropdown';
841
842        function closeAll(container) {
843            Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]'))
844                .forEach(function(el) { el.setAttribute('focus', 'false'); });
845        }
846
847        function closeSiblings(item) {
848            var parentUl = item.parentElement;
849            Array.prototype.slice.call(parentUl.children)
850                .filter(function(el) {
851                    return el !== item
852                        && el.matches(itemSel)
853                        && el.getAttribute('focus') === 'true';
854                })
855                .forEach(function(el) {
856                    el.setAttribute('focus', 'false');
857                    closeAll(el);
858                });
859        }
860
861        menu.addEventListener('click', function(e) {
862            var link = e.target.closest(dropdownSel);
863            if (!link || !menu.contains(link)) return;
864
865            var item = link.parentElement;
866            if (!item || !item.matches(itemSel)) return;
867
868            // En mòbil, els elements naveguen directament sense desplegar submenús
869            if (window.innerWidth <= 992) return;
870
871            var isOpen = item.getAttribute('focus') === 'true';
872
873            if (isOpen) {
874                // Segon clic: navegar
875                return;
876            }
877
878            e.preventDefault();
879            closeSiblings(item);
880            item.setAttribute('focus', 'true');
881        });
882
883        document.addEventListener('click', function(e) {
884            var openItem = menu.querySelector(itemSel + '[focus="true"]');
885            if (!openItem) return;
886            if (!openItem.contains(e.target)) {
887                closeAll(menu);
888            }
889        });
890    }
891
892
893    // Hamburger (mòbil ≤992px)
894
895    class MenuFlexible {
896        constructor(wrapper) {
897            this.wrapper   = wrapper;
898            this.hamburger = wrapper.querySelector('.menu-flexible__toggle');
899            this.menu      = wrapper.querySelector('.menu-flexible__list');
900
901            if (!this.hamburger || !this.menu) return;
902
903            var parent  = this.menu.parentElement;
904            this.isMega = parent && parent.classList.contains('menu-flexible__nav-container');
905            this.target = this.isMega ? parent : this.menu;
906
907            // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla
908            // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem.
909            this.clipper = wrapper.closest('.nav');
910
911            this.init();
912            window.addEventListener('resize', () => this.handleResize());
913        }
914
915        init() {
916            this.hamburger.addEventListener('click', (e) => {
917                e.preventDefault();
918                e.stopPropagation();
919                this.toggleMenu();
920            });
921
922            document.addEventListener('click', (e) => {
923                if (!this.wrapper.contains(e.target) && this.isOpen()) {
924                    this.closeMenu();
925                }
926            });
927
928            this.menu.querySelectorAll('a').forEach(link => {
929                link.addEventListener('click', () => {
930                    if (window.innerWidth <= 992 && this.isOpen()) {
931                        this.closeMenu();
932                    }
933                });
934            });
935        }
936
937        isOpen()     { return this.target.classList.contains('show'); }
938        toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); }
939
940        liftClip() {
941            if (this.clipper && window.innerWidth <= 992) {
942                this.clipper.style.height = 'auto';
943                this.clipper.style.maxHeight = 'none';
944                this.clipper.style.overflow = 'visible';
945            }
946        }
947
948        restoreClip() {
949            if (this.clipper) {
950                this.clipper.style.height = '';
951                this.clipper.style.maxHeight = '';
952                this.clipper.style.overflow = '';
953            }
954        }
955
956        openMenu() {
957            this.target.classList.add('show');
958            this.target.style.display = this.isMega ? 'block' : 'flex';
959            if (this.isMega) this.menu.style.display = 'flex';
960            this.liftClip();
961            this.hamburger.classList.add('active');
962            this.hamburger.setAttribute('aria-expanded', 'true');
963        }
964
965        closeMenu() {
966            this.target.classList.remove('show');
967            this.target.style.display = 'none';
968            if (this.isMega) {
969                this.menu.style.display = '';
970                var nc = this.wrapper.querySelector('.menu-flexible__nav-container');
971                if (nc) hideAllMegaPanels(nc);
972            }
973            this.restoreClip();
974            this.hamburger.classList.remove('active');
975            this.hamburger.setAttribute('aria-expanded', 'false');
976        }
977
978        handleResize() {
979            if (window.innerWidth > 992) {
980                this.target.classList.remove('show');
981                this.target.style.display = '';
982                if (this.isMega) this.menu.style.display = '';
983                this.restoreClip();
984                this.hamburger.classList.remove('active');
985                this.hamburger.setAttribute('aria-expanded', 'false');
986            }
987        }
988    }
989
990
991    // Init
992
993    function init() {
994        document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) {
995            var navContainer = wrapper.querySelector('.menu-flexible__nav-container');
996            if (navContainer) {
997                initMegaPanels(navContainer);
998            } else {
999                initStandardKeyboard(wrapper);
1000                if (wrapper.getAttribute('data-expand-type') === 'click') {
1001                    initClickExpand(wrapper);
1002                }
1003            }
1004            new MenuFlexible(wrapper);
1005            if (wrapper.getAttribute('data-menu-sticky') === 'true') {
1006                var stickyTarget = wrapper.closest('#navbar-top')
1007                                || wrapper.closest('.navbar')
1008                                || wrapper.closest('nav');
1009                if (stickyTarget) {
1010                    stickyTarget.classList.add('menu-sticky-enabled');
1011                    document.body.classList.add('has-sticky-menu');
1012
1013                    var navbarHeight   = stickyTarget.offsetHeight;
1014                    var navbarTop      = stickyTarget.getBoundingClientRect().top + window.scrollY;
1015                    var bodyPadApplied = false;
1016
1017                    function updateStickyOffset() {
1018                        navbarHeight = stickyTarget.offsetHeight;
1019                        document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px');
1020
1021                        if (bodyPadApplied) {
1022                            document.body.style.paddingTop = navbarHeight + 'px';
1023                        }
1024                    }
1025
1026                    function getTargetFromHash(hash) {
1027                        if (!hash || hash.charAt(0) !== '#') {
1028                            return null;
1029                        }
1030
1031                        try {
1032                            return document.getElementById(decodeURIComponent(hash.substring(1)));
1033                        } catch (error) {
1034                            return document.getElementById(hash.substring(1));
1035                        }
1036                    }
1037
1038                    function scrollToSkipTarget(hash) {
1039                        var target = getTargetFromHash(hash);
1040                        if (!target) {
1041                            return;
1042                        }
1043
1044                        updateStickyOffset();
1045
1046                        var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight;
1047                        if (expectedTop > navbarTop) {
1048                            applyFixed();
1049                        } else {
1050                            removeFixed();
1051                        }
1052
1053                        try {
1054                            target.focus({ preventScroll: true });
1055                        } catch (error) {
1056                            target.focus();
1057                        }
1058
1059                        var targetTop = target.getBoundingClientRect().top + window.scrollY;
1060                        window.scrollTo(0, Math.max(targetTop - navbarHeight, 0));
1061                    }
1062
1063                    document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) {
1064                        link.addEventListener('click', function(event) {
1065                            var hash = link.getAttribute('href');
1066                            var target = getTargetFromHash(hash);
1067                            if (!target) {
1068                                return;
1069                            }
1070
1071                            event.preventDefault();
1072
1073                            if (window.history && window.history.pushState) {
1074                                window.history.pushState(null, '', hash);
1075                            } else {
1076                                window.location.hash = hash;
1077                            }
1078
1079                            scrollToSkipTarget(hash);
1080                        });
1081                    });
1082
1083                    updateStickyOffset();
1084
1085                    function applyFixed() {
1086                        if (!stickyTarget.classList.contains('fixed-top')) {
1087                            updateStickyOffset();
1088                            stickyTarget.classList.add('fixed-top');
1089                            document.body.style.paddingTop = navbarHeight + 'px';
1090                            bodyPadApplied = true;
1091                        }
1092                    }
1093
1094                    function removeFixed() {
1095                        if (stickyTarget.classList.contains('fixed-top')) {
1096                            stickyTarget.classList.remove('fixed-top');
1097                            document.body.style.paddingTop = '';
1098                            bodyPadApplied = false;
1099                        }
1100                    }
1101
1102                    window.addEventListener('scroll', function() {
1103                        if (window.scrollY > navbarTop) {
1104                            applyFixed();
1105                        } else {
1106                            removeFixed();
1107                        }
1108                    });
1109
1110                    window.addEventListener('resize', function() {
1111                        updateStickyOffset();
1112                        if (!stickyTarget.classList.contains('fixed-top')) {
1113                            navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY;
1114                        }
1115                    });
1116
1117                    if ('ResizeObserver' in window) {
1118                        new ResizeObserver(updateStickyOffset).observe(stickyTarget);
1119                    }
1120
1121                    stickyTarget.querySelectorAll('img').forEach(function(image) {
1122                        if (!image.complete) {
1123                            image.addEventListener('load', updateStickyOffset, { once: true });
1124                        }
1125                    });
1126
1127                    window.addEventListener('load', updateStickyOffset);
1128
1129                    if (window.scrollY > navbarTop) applyFixed();
1130
1131                    if (window.location.hash) {
1132                        window.setTimeout(function() {
1133                            scrollToSkipTarget(window.location.hash);
1134                        }, 0);
1135                    }
1136                }
1137            }
1138        });
1139    }
1140
1141    if (document.readyState === 'loading') {
1142        document.addEventListener('DOMContentLoaded', init);
1143    } else {
1144        init();
1145    }
1146})();
1147</script>
1147</nav></div></div></div></div></div>        </div>        </header>
1148                <main id="main-content" tabindex="-1">
1149            <div class="content">
1150                                <div class="container-xl columns">
1151                                        <div class="row">
1152        <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 leftSidebar responsiveHeight" data-nosnippet>
1153            </div>
1154    <div class="col-xs-12 col-sm-9 col-md-6 col-lg-6 article responsiveHeight" id="readspeakerPage" tabindex="-1">
1155                    <div class="containerArticle">
1156                <h1 class="title"  id='title0' data-attribute="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">L'Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania</h1><div class="date">Dimecres, 17 de novembre de 2021</div>
1157<div class="ddbbtext">
1158    <div class="entradeta"><p style="text-align: justify;"><strong>Ja es pot descarregar a Play Store i Apple Store de forma gratuïta. Inclou notícies, l'agenda municipal, contactes d'interès i facilita la comunicació d'incidències, entre d'altres. </strong></p>
1159
1160<p style="text-align: justify;"> </p>
1161</div>
1162    <p style="text-align: justify;">L'Ajuntament de Dosrius posa en funcionament una nova App mòbil pensada perquè la ciutadania pugui informar-se de tot el que té a veure amb l'Ajuntament, així com simplificar la comunicació d'incidències o la gestió de tràmits amb l'administració.</p>
1163
1164<p style="text-align: justify;">L'aplicació ja està disponible a Play Store i a Apple Store, on es pot aconseguir de forma gratuïta. Només cal cercar ‘Ajuntament de Dosrius' i descarregar-la. (També escanejant el codi QR de la fotografia).</p>
1165
1166<p style="text-align: justify;">Aquesta nova eina de comunicació permetrà a la ciutadania consultar comunicats, notícies, activitats d'agenda i el tauler d'anuncis de l'Ajuntament. També facilita informació sobre què fer al municipi (llocs d'interès, on menjar, què veure, on dormir o quines rutes passen per Dosrius), quins són els contactes dels espais municipals (casals, deixalleria, equipaments esportius i educatius...) així com dels comerços del poble. Per últim també pretén millorar la relació amb l'administració i dóna accés a la seu electrònica, a la bústia per comunicar incidències i als tràmits amb l'Ajuntament (formular una instància, demanar cita prèvia).</p>
1167    </div>
1168        <div id="share">
1169    <div class="js-widget o-widget clearfix boxBX  default "  >  <div class="o-widget-wrapper clearfix default-BX   row " ><div class="o-widget-container ">
1169<div class="o-share o-share--icones_rodones">
1170    
1171    <div class="o-share__list">
1172                    <a
1173                class="o-share__link o-share__link--facebook"
1174                href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.dosrius.cat%2F%2Fcontinguts%2F%2Flajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html"
1175                target="_blank"
1176                rel="noopener"
1177                title="Facebook"
1178            >
1179                <span class="o-share__icon" aria-hidden="true">
1180                    <i class="fa-brands fa-facebook-f"></i>
1181                </span>
1182                <span class="visually-hidden">Facebook</span>
1183            </a>
1184                    <a
1185                class="o-share__link o-share__link--x"
1186                href="https://twitter.com/intent/tweet?text=L%27Ajuntament%20de%20Dosrius%20impulsa%20una%20App%20m%C3%B2bil%20per%20a%20la%20ciutadania&amp;url=https%3A%2F%2Fwww.dosrius.cat%2F%2Fcontinguts%2F%2Flajuntament-de-dosrius-impulsa-una-app-mobil-per-a-la-ciutadania.html&amp;hashtags=dosrius"
1187                target="_blank"
1188                rel="noopener"
1189                title="X"
1190            >
1191                <span class="o-share__icon" aria-hidden="true">
1192                    <i class="fa-brands fa-x-twitter"></i>
1193                </span>
1194                <span class="visually-hidden">X</span>
1195            </a>
1196            </div>
1197</div>
1198</div>  </div></div></div>
1199<span class="updated">Darrera actualització: 16.11.2021 | 16:45</span>
1200                    </div>
1201            </div>
1202        <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 barraDreta responsiveHeight">
1203        <div class="first-image"><div class="first-image">
1204    <a href="#" id="imageItem0" title="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania" onclick="openGallery(0)">
1205        <span class="visually-hidden">L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania</span>
1206        <img id="imgItem0" src="/media/repository/Com_descarregar_App_Aj.jpg" data-src="/Com_descarregar_App_Aj.jpg" data-content="L&#039;Ajuntament de Dosrius impulsa una App m&ograve;bil per a la ciutadania"  alt="L&#039;Ajuntament de Dosrius impulsa una App mòbil per a la ciutadania">
1207        <span class="name">L&#039;Ajuntament de Dosrius impulsa una App m&ograve;bil per a la ciutadania</span>
1208            </a>
1209</div>
1210</div>    </div>
1211</div>
1212                </div>
1213            </div>
1214        </main>
1215        <footer id="footer-content" tabindex="-1">
1216            <div class="footer">
1217    <div class="shortcuts">
1218    <div class="container-xl">            
1219        <div class="featuredItem responsiveHeight">
1220    <h2 class="title">RSS</h2>
1221    <p class="subtitle">L'actualitat a un clic</p>
1222    <ul id="cm_rss">
1223        <li style="background-image: url('/themes/dosrius/images/ico_16_rss.png');">
1224    <a href="/rss/12">
1225           Agenda    </a>
1226</li>
1227<li style="background-image: url('/themes/dosrius/images/ico_16_rss.png');">
1228    <a href="/rss/13">
1229           Avisos    </a>
1230</li>
1231<li style="background-image: url('/themes/dosrius/images/ico_16_rss.png');">
1232    <a href="/rss/11">
1233           Notícies    </a>
1234</li>
1235<li style="background-image: url('/themes/dosrius/images/ico_16_rss.png');">
1236    <a href="/rss/14">
1237           Publicacions    </a>
1238</li>
1239    </ul>
1240</div>
1241<div class="featuredItem responsiveHeight">
1242    <h2 class="title">Adreces i telèfons</h2>
1243    
1244    <img width="96" height="96" src="/themes/dosrius/images/icons/plugin_home.png" alt="">
1245
1246    <p class="elem_button">
1247        <a href="/adreces-i-telefons" aria-label="Adreces i telèfons">
1248            Accedeix        </a>
1249    </p>
1250</div>
1251<div class="featuredItem">
1252    <h2 class="title">Meteo</h2>
1253    <div id="cm_meteocat">
1254        <ul class="bxslider">
1255            <li>
1256    Dissabte, 3 d’octubre    <img width="80" height="80"
1257        alt="entre mig i molt ennuvolat"
1258        src="/themes/dosrius/images/meteocat/nuvol.png"
1259    >
1260    <p>
1261        T.Màx: 26&deg;
1262        <br>
1263        T.Min: 18&deg;
1264    </p>
1265            <p>
1266            Tarda
1267            <img alt="xàfec" width="24" height="24"
1268                src="/themes/dosrius/images/meteocat/pluja.png"
1269            >
1270        </p>
1271    </li>
1272<li>
1273    Diumenge, 4 d’octubre    <img width="80" height="80"
1274        alt="plugim"
1275        src="/themes/dosrius/images/meteocat/plugim.png"
1276    >
1277    <p>
1278        T.Màx: 25&deg;
1279        <br>
1280        T.Min: 20&deg;
1281    </p>
1282            <p>
1283            Tarda
1284            <img alt="ruixat" width="24" height="24"
1285                src="/themes/dosrius/images/meteocat/pluja.png"
1286            >
1287        </p>
1288    </li>
1289        </ul>
1290        <div class="outside">
1291            <p><span id="slider-prev"></span><span id="slider-next"></span></p>
1292        </div>
1293
1294    </div>
1295</div>
1296<div class="featuredItem responsiveHeight">
1297    <h2 class="title">Butlletí digital</h2>
1298    <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt="">
1299    <p class="elem_button">
1300        <a href="/actualitat/butlleti-digital" aria-label="Butlletí digital">
1301            Subscriu-te        </a>
1302    </p>
1303</div>
1304<div id="cm_planol" class="featuredItem responsiveHeight">
1305    <h2 class="title">Plànol / Carrers</h2>
1306
1307    <img width="96" height="96" src="/themes/dosrius/images/icons/plugin_map.png" alt="">
1308
1309    <p class="elem_button">
1310        <a href="/municipi/337-informacio-dinteres/guia-de-carrers--planol" aria-label="Plànol">
1311            Accedeix        </a>
1312    </p>
1313</div>
1314    </div>
1315</div>
1316    <div class="hightlights">
1317        <div class="container-xl">
1318                    </div>
1319    </div>
1320    <nav class="menu" aria-label="Peu de menú">
1321        <ul class="container-xl sitemap">
1322            <li class="page-96 Inferior">  <a class="page-96" href="/lajuntament" target="_self" >L'Ajuntament  </a><ul id="footer-menu-96"><li class="subMenuPage-313">  <a class="subMenuPage-313" href="/lajuntament/alcaldia" target="_self" >Alcaldia  </a></li><li class="subMenuPage-341">  <a class="subMenuPage-341" href="/lajuntament/consistori" target="_self" >Consistori  </a></li><li class="subMenuPage-342">  <a class="subMenuPage-342" href="/lajuntament/govern-i-organigrama-municipal" target="_self" >Govern i organigrama municipal  </a></li><li class="subMenuPage-349">  <a class="subMenuPage-349" href="/lajuntament/organs-de-govern" target="_self" >Òrgans de Govern  </a></li><li class="subMenuPage-354">  <a class="subMenuPage-354" href="/lajuntament/grups-municipals-noticies-intervencions-i-opinions" target="_self" >Grups municipals: notícies, intervencions i opinions  </a></li><li class="subMenuPage-98">  <a class="subMenuPage-98" href="/lajuntament/gestio-economica-pressupost-subvencions-i-contractes" target="_self" >Gestió econòmica: pressupost, subvencions i contractes  </a></li><li class="subMenuPage-353">  <a class="subMenuPage-353" href="/lajuntament/convenis" target="_self" >Convenis  </a></li><li class="subMenuPage-351">  <a class="subMenuPage-351" href="/lajuntament/resolucions-administratives-i-judicials" target="_self" >
1322Resolucions administratives i judicials  </a></li><li class="subMenuPage-352">  <a class="subMenuPage-352" href="/lajuntament/recursos-humans-i-convocatories-de-personal" target="_self" >Recursos humans i convocatòries de personal  </a></li><li class="subMenuPage-163">  <a class="subMenuPage-163" href="/lajuntament/normativa-ordenances-i-reglaments" target="_self" >Normativa: ordenances i reglaments  </a></li><li class="subMenuPage-325">  <a class="subMenuPage-325" href="/lajuntament/325-participacio-ciutadana" target="_self" >Participació ciutadana  </a></li><li class="subMenuPage-123">  <a class="subMenuPage-123" href="/lajuntament/transparencia-i-acces-a-la-informacio-publica" target="_self" >Transparència i Accés a la informació pública  </a></li><li class="subMenuPage-328">  <a class="subMenuPage-328" href="/lajuntament/comunicacio" target="_self" >Comunicació  </a></li><li class="subMenuPage-26">  <a class="subMenuPage-26" href="/lajuntament/perfil-de-contractant" target="_self" >Perfil de contractant  </a></li><li class="subMenuPage-211">  <a class="subMenuPage-211" href="/lajuntament/seu-electronica" target="_self" >Seu electrònica  </a></li><li class="subMenuPage-18">  <a class="subMenuPage-18" href="/lajuntament/anuncis-edictes" target="_self" >Anuncis / Edictes  </a></li><li class="subMenuPage-374">  <a class="subMenuPage-374" href="/lajuntament/374-carta-de-serveis" target="_self" >Carta de serveis  </a></li><li class="subMenuPage-425">  <a class="subMenuPage-425" href="/lajuntament/425-bustia-etica" target="_self" >Bústia ètica  </a></li></ul></li><li class="page-108 Inferior">  <a class="page-108" href="/tramits-i-serveis" target="_self" >Tràmits i serveis  </a><ul id="footer-menu-108"><li class="subMenuPage-364">  <a class="subMenuPage-364" href="/tramits-i-serveis/queixes-suggeriments-i-propostes" target="_self" >Queixes, suggeriments i propostes  </a></li><li class="subMenuPage-112">  <a class="subMenuPage-112" href="/tramits-i-serveis/carpeta-ciutadana" target="_self" >Carpeta ciutadana  </a></li><li class="subMenuPage-200">  <a class="subMenuPage-200" href="/tramits-i-serveis/200-cataleg-de-serveis" target="_self" >Catàleg de serveis  </a></li><li class="subMenuPage-114">  <a class="subMenuPage-114" href="/tramits-i-serveis/factura-electronica" target="_self" >Factura electrònica  </a></li><li class="subMenuPage-113">  <a class="subMenuPage-113" href="/tramits-i-serveis/impostos" target="_self" >Impostos  </a></li><li class="subMenuPage-272">  <a class="subMenuPage-272" href="/tramits-i-serveis/informacio-dinteres" target="_self" >Informació d'interès  </a></li><li class="subMenuPage-310">  <a class="subMenuPage-310" href="/tramits-i-serveis/notificacions-electroniques" target="_self" >Notificacions electròniques  </a></li><li class="subMenuPage-153">  <a class="subMenuPage-153" href="/tramits-i-serveis/oficina-datencio-al-ciutada-oac/oficina-datencio-al-ciutada-oac.html" target="_blank" rel="noopener noreferrer" >Oficina d'Atenció al Ciutadà (OAC)<i class="fa fa-external-link"></i>  </a></li><li class="subMenuPage-195">  <a class="subMenuPage-195" href="/tramits-i-serveis/registre-civil/jutjat-de-pau-registre-civil.html" target="_blank" rel="noopener noreferrer" >Registre Civil<i class="fa fa-external-link"></i>  </a></li><li class="subMenuPage-111">  <a class="subMenuPage-111" href="/tramits-i-serveis/tramits-i-gestions" target="_self" >Tràmits i gestions  </a></li><li class="subMenuPage-216">  <a class="subMenuPage-216" href="/tramits-i-serveis/finestreta-unica-empresarial" target="_self" >Finestreta Única Empresarial  </a></li></ul></li><li class="page- Inferior">  <a class="page-" href="http://dosrius_prd.diba.cat/adreces-i-telefons/horaris.html" target="_blank" rel="noopener noreferrer" ><i class="fa fa-external-link"></i>  </a></li><li class="page-4 Inferior">  <a class="page-4" href="/actualitat" target="_self" >Actualitat  </a><ul id="footer-menu-4"><li class="subMenuPage-54">  <a class="subMenuPage-54" href="/actualitat/agenda" target="_self" >Agenda  </a></li><li class="subMenuPage-55">  <a class="subMenuPage-55" href="/actualitat/butlleti-digital" target="_self" >Butlletí digital  </a></li><li class="subMenuPage-56">  <a class="subMenuPage-56" href="/actualitat/el-full" target="_self" >El Full  </a></li><li class="subMenuPage-58">  <a class="subMenuPage-58" href="/actualitat/hemeroteca" target="_self" >Hemeroteca  </a></li><li class="subMenuPage-53">  <a class="subMenuPage-53" href="/actualitat/noticies" target="_self" >Notícies  </a></li><li class="subMenuPage-134">  <a class="subMenuPage-134" href="/actualitat/publicacions" target="_self" >Publicacions  </a></li><li class="subMenuPage-429">  <a class="subMenuPage-429" href="/actualitat/429-can-canyamars" target="_self" >Can Canyamars  </a></li></ul></li>        </ul>
1323    </nav>
1324    <div class="links">
1325        <div class="container-xl">
1326            <div class="row">
1327                <div class="xxss col-md-6 col-sm-6 col-lg-6 middle">                
1328                        <span class="titol">Xarxes socials:</span>
1329  
1330    <a target="_blank" aria-label="Twitter" href="https://twitter.com/dosrius" title="Obre en finestra nova: Twitter">
1331        <span style="display: none">Twitter</span>
1332        <img src="/themes/dosrius/images/icons/social/twitter.png" alt="Twitter" width="32" height="32">
1333    </a>
1334  
1335    <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/dosrius/" title="Obre en finestra nova: Facebook">
1336        <span style="display: none">Facebook</span>
1337        <img src="/themes/dosrius/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
1338    </a>
1339  
1340    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/dosrius/" title="Obre en finestra nova: Instagram">
1341        <span style="display: none">Instagram</span>
1342        <img src="/themes/dosrius/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
1343    </a>
1344                </div>
1345                <div class="col-md-6 col-sm-6 col-lg-6 middle">
1346                    <nav class="menu"><ul id="Inferior2"><li class="page-63">  <a href="/altra-informacio/credits" target="_self" >Crèdits  </a></li><li class="page-62">  <a href="/altra-informacio/contactar" target="_self" >Contactar  </a></li><li class="page-60">  <a href="/altra-informacio/proteccio-de-dades" target="_self" >Protecció de dades  </a></li><li class="page-59">  <a href="/altra-informacio/avis-legal" target="_self" >Avís legal  </a></li><li class="page-61">  <a href="/altra-informacio/accessibilitat" target="_self" >Accessibilitat  </a></li></ul></nav>                </div>
1347            </div>
1348        </div>
1349    </div>
1350    <div class="contact">
1351        <div class="container-xl">
1352            <div class="row">
1353                <address class="address col-md-6 col-sm-6 col-lg-6">
1354    <div class="title">
1355        Ajuntament de Dosrius    </div>
1356    Sant Antoni, 1<br>08319 Dosrius<br>Tel. 937 918 014<br>Fax 937 919 080<br>NIF P0807400G <br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner">
1357    <div class="title">
1358        Amb la col·laboració de:    </div>
1359    <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona">
1360        <span style="display: none">Diputació de Barcelona</span>
1361        <img src="/front/view//images/logoDiba/Blanc.svg" alt="Diputació de Barcelona" class="logo-diba">
1362    </a>
1363</div>            </div>
1364        </div>
1365    </div>
1366</div>
1367        </footer>
1368        <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1369<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1369
1369
1370<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1370
1370
1371<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790945690"></script>
vendor: 1 bytes, line 1371
1371
1372<script src="/front/view/js/bower_components/jscal/index.js?ver=1790945690"></script>
vendor: 1 bytes, line 1372
1372
1373<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1373
1373
1374<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790945690"></script>
vendor: 1 bytes, line 1374
1374
1375<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1375
1375
1376<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1376
1376
1377<script src="/front/view/js/constants.js?ver=1790945690"></script>
vendor: 1 bytes, line 1377
1377
1378<script src="/front/view/js/functions.js?ver=1790945690"></script>
vendor: 1 bytes, line 1378
1378
1379<script src="/front/view/js/functions/footer.js?ver=1790945690"></script>
vendor: 1 bytes, line 1379
1379
1380<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790945690"></script>
vendor: 1 bytes, line 1380
1380
1381<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790945690"></script>
vendor: 1 bytes, line 1381
1381
1382<script>
1383    $(document).ready(function(){
1384                    $("a[rel^='prettyPhoto']").prettyPhoto();
1385            $("a[rel^='prettyFrame']").prettyPhoto();
1386            });
1387</script>
vendor: 1 bytes, line 1387
1387
1388<script>
1389        var TWITTER = true;
1390            var FACEBOOK = true;
1391        $(window).on("load", function() {
1392        start();
1393    });
1394        $(document).ready(function() {
1395        if (typeof articlesId !== 'undefined') {
1396            var today = new Date();
1397                        var date = today
1398                        articlesId.push('internal_calendar');
1399
1400            var oneYearAfter = new Date();
1401            oneYearAfter.setDate(oneYearAfter.getDate() + 365);
1402            for (id in articlesId) {
1403                Calendar.setup({
1404                    id: articlesId[id],
1405                    cont: "dv_calendar_" + articlesId[id],
1406                    fdow: 1,
1407                    date: date,
1408                    noScroll: true,
1409                    bottomBar: false,
1410                    max: oneYearAfter,
1411                    animation: false,
1412                    titleFormat: "%B %Y",
1413                    dateInfo: getDateInfo
1414                });
1415                setEqualContentColumns();
1416            }
1417        }
1418    });
1419
1420        
1421    // Initialize Select2 with icon support for category filter
1422    $(document).ready(function() {
1423        if ($('#categoryFilter').length) {
1424            $('#categoryFilter').select2({
1425                templateResult: function(option) {
1426                    if (!option.id) return option.text;
1427                    var icon = $(option.element).data('icon');
1428                    if (!icon) return option.text;
1429                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1430                },
1431                templateSelection: function(option) {
1432                    if (!option.id) return option.text;
1433                    var icon = $(option.element).data('icon');
1434                    if (!icon) return option.text;
1435                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1436                },
1437                allowHtml: true
1438            });
1439        }
1440    });
1441</script>
1441
1442        <!-- CSS final-->
1443
1444        
1444<script>
1445          const css = "";
1446          const style = document.createElement('style');
1447          style.textContent = css;
1448          document.head.appendChild(style);
1449        </script>
1449
1450
1451        <!-- Start Modal views-->
1452        <div class="modal fade" id="ImageModal" tabindex="-1" role="dialog" aria-hidden="true">
1453    <div class="modal-dialog modal-dialog-centered" role="document">
1454        <div class="modal-content">
1455            <div class="modal-header">
1456                <div class="title-head"></div>
1457            </div>
1458            <div class="modal-body">
1459                                    <img id="imageCarousel0" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="">
1460                            </div>
1461            <div class="modal-footer">
1462                <div id="imageText"></div>
1463                <div id="downloadImage"></div>
1464                <a id="closeModal" class="close" href="javascript:void(0)"><span style="display: none">X</span></a>
1465            </div>
1466        </div>
1467    </div>
1468</div>
1469
1470        <div class="modal fade" id="videoModal" tabindex="-1" role="dialog"  aria-hidden="true">
1471    <div class="modal-dialog modal-dialog-centered" role="document">
1472        <div class="modal-content">
1473            <div class="modal-header">
1474                <div class="title-head"></div>
1475            </div>
1476            <div class="modal-body">
1477                <div class="tiktok-div-embed"></div>
1478                <iframe id="iframeVideo" title="Vídeo" class="iframeVideo" allowfullscreen></iframe>
1479
1480            </div>
1481            <div class="modal-footer">
1482                <span id="titleVideo" class="titleVideo"></span>
1483                <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a>
1484
1485            </div>
1486        </div>
1487    </div>
1488</div>        <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog"  aria-hidden="true">
1489    <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document">
1490        <div class="modal-content">
1491            <div class="modal-header">
1492                <div class="title-head"></div>
1493            </div>
1494            <div class="modal-body">
1495                <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe>
1496            </div>
1497            <div class="modal-footer">
1498                <span id="titlePdf" class="titlePdf"></span>
1499                <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a>
1500            </div>
1501        </div>
1502    </div>
1503</div>        <!-- End Modal views -->
1504        
1504<script src="/front/view/js/endScript.js?ver=1790945690"></script>
1504
1505        <!-- Només activar per desenvolupament
1506        
1506<script src="../../../node_modules/axe-core/axe.js"></script>
1506
1507        
1507<script src="../../../dist/my-first-webpack.bundle.js"></script>
1507
1508        -->
1509                
1509<script>
1510            $(document).ready(function () {
1511                startClock(1790945690);
1512                if (typeof (callMenuAfterJQueryLoaded) == "function") {
1513                    callMenuAfterJQueryLoaded();
1514                }
1515                
1516                datepickerInit();
1517                carouselControlSmall();
1518
1519                if (typeof (callMenuBeforeJQueryLoaded) == "function") {
1520                    callMenuBeforeJQueryLoaded();
1521                }
1522
1523                if (typeof (callMenuBeforeTopJQueryLoaded) == "function") {
1524                    callMenuBeforeTopJQueryLoaded();
1525                }
1526                addAttributesDivVcards();
1527                modalsImage();
1528                modalsPdf();
1529                translateWeb();
1530                var carousel = $('#carouselControls');
1531                carousel.on('slide.bs.carousel', function (event) {
1532                    toSlideImage(event);
1533                });
1534                /** Només activar per desenvolupament
1535                axe.configure({
1536                    locale: {
1537                        lang: 'es',
1538                    }
1539                });
1540
1541                axe.run().then(results => {
1542                        if (results.violations.length) {
1543                            console.log(results.violations);
1544                            throw new Error('Accessibility issues found');
1545                        }
1546                    })
1547                    .catch(err => {
1548                        console.log('Something bad happened:', err.message);
1549                    });
1550                */
1551            });
1552
1553            $(window).resize(function() {
1554                equalHeightIconTime();
1555            })
1556        </script>
1556
1557                    </body>
1558</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.