PageSourceSearch

https://www.torrelles.cat/

html torrelles.cat collected 2026-10-01 11:56:37 UTC 132,008 bytes, 2,098 lines download raw bytes

1<!DOCTYPE HTML>
2<html lang="ca" xmlns="http://www.w3.org/1999/xhtml" xml:lang="ca" >
3    <head>
4        <!-- METADATA -->
5<meta charset="utf-8">
6<meta name="viewport" content="width=device-width, initial-scale=1">
7<meta name="title" lang="ca" content="Ajuntament de Torrelles de Llobregat">
8<meta name="description" lang="ca" content="Ajuntament de Torrelles de Llobregat">
9<meta name="author" lang="ca" content="Ajuntament de Torrelles de Llobregat">
10<meta name="date" lang="ca" content="2026-10-01">
11<meta name="generator" lang="ca" content="Ajuntament de Torrelles de Llobregat">
12<meta name="robots" content="index, follow">
13
14        <title>Ajuntament de Torrelles de Llobregat</title>
15
16        <!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 16-17
16
17<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
17G-4EP9V91YVL
vendor: 12 bytes, line 17
17"></script>
18<script type="text/plain" data-type="text/javascript" data-name="ga">
19    
vendor: 140 bytes, lines 19-23
19window.dataLayer = window.dataLayer || [];
20    function gtag(){dataLayer.push(arguments);}
21    gtag('js', new Date());
22
23    gtag('config', '
23G-4EP9V91YVL
vendor: 8 bytes, lines 23-24
23');
24    
24// Creates the default tracker.
25    gtag('event', 'page_view', { 'send_to': 'G-4EP9V91YVL' });
26</script>
26
27<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4-->
28        <link rel="canonical" href="https://www.torrelles.cat">
29
30        <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790855795">
31<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790855795">
32<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790855795">
33<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790855795">
34<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790855795">
35
36        <!-- Real Favicon Genenrator-->
37<link rel="apple-touch-icon" href="/themes/torrellesdellobregat/images/favicons/apple-touch-icon.png">
38<link rel="icon" type="image/png" href="/themes/torrellesdellobregat/images/favicons/favicon-16x16.png" sizes="16x16">
39<link rel="icon" type="image/png" href="/themes/torrellesdellobregat/images/favicons/favicon-32x32.png" sizes="32x32">
40<link rel="shortcut icon" href="/themes/torrellesdellobregat/images/favicons/favicon.ico">
41        
41<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 41
41
42<script>
43	// Fallback defensiu: si per algun motiu el PHP no retorna la configuració,
44	// assegurem una configuració mínima perquè Klaro no falli i mostri el banner.
45	window.klaroConfig = window.klaroConfig || {
46		version: '1.0',
47		elementID: 'klaro',
48		storageMethod: 'cookie',
49		storageName: 'klaro',
50		cookieName: 'klaro',
51		htmlTexts: true,
52		acceptAll: true,
53		hideDeclineAll: false,
54		services: []
55	};
56</script>
vendor: 1 bytes, line 56
56
57<script src="/front/view/js/klaro.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 57
57
58<script src="/front/view/js/klaro-init.js?ver=1790855795"></script>
58
59
60        <!-- Twitter Card data -->
61<meta name="twitter:card" content="summary">
62<meta name="twitter:title" content="Ajuntament de Torrelles de Llobregat">
63<meta name="twitter:description" content="">
64<meta name="twitter:image" content="https://www.torrelles.cat/themes/torrellesdellobregat/images/logos/header.png">
65    <meta name="twitter:image:alt" content="Logo">
66        <!-- Open Graph data -->
67<meta property="og:title" content="Ajuntament de Torrelles de Llobregat">
68<meta property="og:type" content="website">
69<meta property="og:url" content="https://www.torrelles.cat">
70<meta property="og:image" content="https://www.torrelles.cat/themes/torrellesdellobregat/images/logos/header.png">
71    <meta property="og:image:alt" content="Logo">
72    <meta property="og:image" content="https://www.torrelles.cat/themes/torrellesdellobregat/images/logos/header_inv.png">
73    <meta property="og:image:alt" content="Logo invertit">
74    <meta property="og:description" content="">
75<meta property="og:site_name" content="Ajuntament de Torrelles de Llobregat">
76
77        <!-- HTML5 compatible tags -->
78<script>
79    document.createElement('header');
80    document.createElement('footer');
81    document.createElement('section');
82    document.createElement('aside');
83    document.createElement('nav');
84    document.createElement('article');
85    document.createElement('hgroup');
86    document.createElement('lh');
87</script>
87
88        
88<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
88
89<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css">
90<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css">
91<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
92<script  src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 92
92
93<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 93
93
94<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 94
94
95<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 95
95
96<script  src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 96
96
97<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 97
97
98<script type="text/plain" data-type="text/javascript" data-name="maps" data-src="https://maps.google.com/maps/api/js?key=AIzaSyDzMQfPcdyACxfYosZzQs43alxB8BKfkx8&amp;loading=async&amp;callback=onGoogleMapsReady"></script>
vendor: 1 bytes, line 98
98
99<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 99
99
100<script  src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 100
100
101<script  src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 101
101
102<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 102
102
103<script src="/front/view/js/maps.js"></script>
103        <!-- Init addHeadExtraStyles -->
104        <style>html body{font-size:1em !important;} .backgroundImageHeader {background-repeat: repeat;  background-size: cover;  background-image:url("/media/repository/capcaleres/capcaleres_web/Skyline.png");} </style>
105        <!-- End addHeadExtraStyles -->
106        <!-- Font Awesome 7 + v4-shims for backward compatibility -->
107        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet">
108        <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet">
109        <!-- Popperjs + Tempus Dominus -->
110        
110<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790855795"></script>
vendor: 1 bytes, line 110
110
111<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790855795"></script>
111
112                <link rel="stylesheet" media="all" href="/themes/torrellesdellobregat/styles/style.min.css?ver=1790855795">
113            </head>
114    <body class="home id-0">
115        <nav class="skip-links" aria-label="Dreceres d&#039;accessibilitat"><ul><li><a href="#site-header">Saltar a la capçalera</a></li><li><a href="#main-content">Saltar al contingut</a></li><li><a href="#footer-content">Saltar al peu de pàgina</a></li></ul></nav>        <header id="site-header" tabindex="-1">
116                                    <div class="js-widget o-widget o-widget--header o-widget-contenidor  clearfix boxBX  WidgetContainer " data-id="74" >  <div class="o-widget-wrapper clearfix default-BX  " data-id="74"><div class="o-widget-container  row"><div class="view-6 js-widget o-widget col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetLegacyHeader " data-id="77" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="77"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="toolbar clearfix">
117    <div class="container-xl">
118                <div class="fright">
119            <div class="toolbarItem">
120    <div class="toolbarItem page-62 page-contacte">
121    <a 
122        href="/altres-continguts/contacte"
123        target="_self"
124        rel=""
125            >
126        Contacte    </a>
127</div>
128</div>                        <div id="social" class="toolbarItem">
129                  
130    <a target="_blank" aria-label="Twitter" href="https://twitter.com/AjTorrelles" title="Obre en finestra nova: Twitter">
131        <span style="display: none">Twitter</span>
132        <img src="/themes/torrellesdellobregat/images/icons/social/twitter.png" alt="Twitter" width="32" height="32">
133    </a>
134  
135    <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/torrelles.cat" title="Obre en finestra nova: Facebook">
136        <span style="display: none">Facebook</span>
137        <img src="/themes/torrellesdellobregat/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
138    </a>
139  
140    <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCe-pqbfpeD4kApMGgeCiN7Q" title="Obre en finestra nova: Youtube">
141        <span style="display: none">Youtube</span>
142        <img src="/themes/torrellesdellobregat/images/icons/social/youtube.png" alt="Youtube" width="32" height="32">
143    </a>
144  
145    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajtorrelles/" title="Obre en finestra nova: Instagram">
146        <span style="display: none">Instagram</span>
147        <img src="/themes/torrellesdellobregat/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
148    </a>
149  
150    <a target="_blank" aria-label="Whatsapp" href="https://whatsapp.com/channel/0029Vb8x6zA42DcetKQI4R16" title="Obre en finestra nova: Whatsapp">
151        <span style="display: none">Whatsapp</span>
152        <img src="/front/view/images/icons/social/whatsapp.png" alt="Whatsapp" width="32" height="32">
153    </a>
154            </div>
155                        <div class="toolbarItem">
156                <div id="toolbarLanguages">
157    <ul id="languages">
158        <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a>
159            <ul id="languagesList">
160                                    <li><a class="link-language" href="https://www.torrelles.cat/?lang=ca" data-target="https://www.torrelles.cat/?lang=ca">Català</a></li>
161                                    <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.torrelles.cat/&amp;sl=ca&amp;tl=es" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=esie=UTF-8&amp;u=https://www.torrelles.cat/&amp;sl=ca&amp;tl=es">Castellà</a></li>
162                                    <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.torrelles.cat/&amp;sl=ca&amp;tl=en" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=enie=UTF-8&amp;u=https://www.torrelles.cat/&amp;sl=ca&amp;tl=en">Anglès</a></li>
163                                    <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.torrelles.cat/&amp;sl=ca&amp;tl=de" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=deie=UTF-8&amp;u=https://www.torrelles.cat/&amp;sl=ca&amp;tl=de">Alemany</a></li>
164                                    <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.torrelles.cat/&amp;sl=ca&amp;tl=fr" data-target="https://translate.google.es/translate?js=y&amp;prev=_t&amp;hl=frie=UTF-8&amp;u=https://www.torrelles.cat/&amp;sl=ca&amp;tl=fr">Francès</a></li>
165                            </ul>
166        </li>
167    </ul>
168</div>
169<script>
170(function () {
171    var toggle = document.getElementById('languagesToggle');
172    if (!toggle) return;
173    var li = toggle.parentElement;
174    var submenu = li.querySelector('ul');
175    var links = Array.prototype.slice.call(submenu.querySelectorAll('a'));
176
177    function keyName(e) {
178        return e.key || e.code || e.keyCode;
179    }
180
181    function isSpaceKey(e) {
182        var key = keyName(e);
183        return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32;
184    }
185
186    function open(focusFirst) {
187        li.classList.add('is-open');
188        submenu.style.display = 'block';
189        submenu.style.padding = '1em';
190        toggle.setAttribute('aria-expanded', 'true');
191        if (focusFirst && links.length) links[0].focus();
192    }
193
194    function close() {
195        li.classList.remove('is-open');
196        submenu.style.display = '';
197        submenu.style.padding = '';
198        toggle.setAttribute('aria-expanded', 'false');
199    }
200
201    function isOpen() {
202        return toggle.getAttribute('aria-expanded') === 'true';
203    }
204
205    function focusLink(index) {
206        if (!links.length) return;
207        links[(index + links.length) % links.length].focus();
208    }
209
210    function focusedLinkIndex() {
211        return links.indexOf(document.activeElement);
212    }
213
214    toggle.addEventListener('click', function (e) {
215        e.preventDefault();
216        isOpen() ? close() : open(false);
217    });
218
219    toggle.addEventListener('keydown', function (e) {
220        var key = keyName(e);
221        if (key === 'Enter' || isSpaceKey(e)) {
222            e.preventDefault();
223            isOpen() ? close() : open(false);
224        } else if (key === 'ArrowDown' || key === 40) {
225            e.preventDefault();
226            open(true);
227        } else if (key === 'ArrowUp' || key === 38) {
228            e.preventDefault();
229            open(false);
230            focusLink(links.length - 1);
231        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
232            if (isOpen()) {
233                e.preventDefault();
234                close();
235            }
236        }
237    });
238
239    submenu.addEventListener('keydown', function (e) {
240        var key = keyName(e);
241        var index = focusedLinkIndex();
242
243        if (key === 'ArrowDown' || key === 40) {
244            e.preventDefault();
245            focusLink(index + 1);
246        } else if (key === 'ArrowUp' || key === 38) {
247            e.preventDefault();
248            focusLink(index - 1);
249        } else if (key === 'Home' || key === 36) {
250            e.preventDefault();
251            focusLink(0);
252        } else if (key === 'End' || key === 35) {
253            e.preventDefault();
254            focusLink(links.length - 1);
255        } else if (isSpaceKey(e)) {
256            e.preventDefault();
257            if (document.activeElement && document.activeElement.click) {
258                document.activeElement.click();
259            }
260        } else if (key === 'Escape' || key === 'Esc' || key === 27) {
261            e.preventDefault();
262            close();
263            toggle.focus();
264        }
265    });
266
267    li.addEventListener('focusout', function () {
268        window.setTimeout(function () {
269            if (!li.contains(document.activeElement)) close();
270        }, 0);
271    });
272
273    document.addEventListener('click', function (e) {
274        if (!li.contains(e.target)) close();
275    });
276})();
277</script>
277
278                <div class="currentDate" style='padding:9px;color:white'>
279    <span id="clock" class="clock" title='Data i hora oficial' >
280        01.10.2026 | 13:56    </span>
281</div>            </div>
282        </div>
283    </div>
284</div>
285<div class="header backgroundImageHeader">
286    <div class="branding">
287        <div class="container-xl">
288            <div class="row">
289                <div class="col-md-8 col-sm-8 col-lg-8 logo_box">
290    <a class="logo" href="/" aria-label="Ajuntament de Torrelles de Llobregat - Pàgina d'inici">
291        <img src="/themes/torrellesdellobregat/images/logos/header_inv.png" alt="" width="355" height="116" id="mainLogo">
292    </a>
293        <h1 class="d-none">Ajuntament de Torrelles de Llobregat</h1>
294    </div>                <div class="col-md-4 col-sm-4 col-lg-4 middle search_box">
295    <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search">
296        <label for="search" accesskey="4">
297            <span class="visually-hidden">Cercar:</span>
298        </label>
299        <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar...">
300        <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button>
301    </form>
302</div>
303            </div>
304        </div>
305    </div>
306        <div id="navbar-top" class="navbar navbar-expand-lg navbar-dark"><div class="nav"><div class="container-xl"><div class="row"><div class="col"><nav class="menu_principal" aria-label="menú"><div class="menu-flexible__wrapper menu-font-medium menu-alignment-left menu-spacing-normal menu-animation-fade menu-text-transform-none menu-columns-1" style="--menu-cols:1;--menu-submenu-width:200px;--menu-hover-delay:300ms;--menu-image-width:160px;" data-menu-columns="1" data-expand-type="click" data-menu-sticky="false" data-menu-alignment="left" data-menu-spacing="normal" data-menu-animation="fade" data-menu-external-icon="auto" data-menu-external-dim="false" data-menu-text-transform="none"><div class="menu-flexible__topbar"><a href="#" class="menu-flexible__toggle phoneMenuButton" aria-label="Menú" aria-expanded="false"><i class="fa fa-bars"></i></a></div><ul class="menu-flexible menu-flexible__list"><li class="menu-flexible__item page-1 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament" ><span class="menu-flexible__item-text">Ajuntament</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-8 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/govern" ><span class="menu-flexible__item-text">Govern</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-12 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/alcaldia" ><span class="menu-flexible__item-text">Alcaldia</span></a></li><li class="menu-flexible__item page-13 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/consistori" ><span class="menu-flexible__item-text">Consistori</span></a></li><li class="menu-flexible__item page-14 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/regidories-organitzacio-municipal" ><span class="menu-flexible__item-text">Regidories</span></a></li><li class="menu-flexible__item page-81 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/representacio-en-organs-collegiats-" ><span class="menu-flexible__item-text">Representació en òrgans col·legiats </span></a></li><li class="menu-flexible__item page-15 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/grups-municipals" ><span class="menu-flexible__item-text">Grups municipals</span></a></li><li class="menu-flexible__item page-80 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/ple-municipal" ><span class="menu-flexible__item-text">Ple municipal</span></a></li><li class="menu-flexible__item page-20 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/juntes-de-govern" ><span class="menu-flexible__item-text">Juntes de govern</span></a></li><li class="menu-flexible__item page-87 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/govern/organigrama" ><span class="menu-flexible__item-text">Organigrama</span></a></li></ul></li><li class="menu-flexible__item page-18 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/anuncis-edictes" ><span class="menu-flexible__item-text">Anuncis / Edictes</span></a></li><li class="menu-flexible__item page-126 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/normativa" ><span class="menu-flexible__item-text">Normativa</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-27 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/normativa/ordenances-municipals" ><span class="menu-flexible__item-text">Ordenances municipals</span></a></li><li class="menu-flexible__item page-22 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/normativa/ordenances-fiscals" ><span class="menu-flexible__item-text">Ordenances fiscals</span></a></li><li class="menu-flexible__item page-172 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/normativa/preus-publics" ><span class="menu-flexible__item-text">Preus públics</span></a></li><li class="menu-flexible__item page-28 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/torrellesdellobregat/govern-obert-i-transparencia/accio-de-govern-i-normativa/urbanisme" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Urbanisme</span></a></li></ul></li><li class="menu-flexible__item page-144 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/informacio-economica-i-contractual" ><span class="menu-flexible__item-text">Informació econòmica i contractual</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-26 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/informacio-economica-i-contractual/perfil-de-contractant" ><span class="menu-flexible__item-text">Perfil de contractant</span></a></li><li class="menu-flexible__item page-145 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/torrellesdellobregat/govern-obert-i-transparencia/contractes-convenis-i-subvencions/convenis-i-subvencions/convocatories-de-subvencions-i-ajuts" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Subvencions i ajuts</span></a></li><li class="menu-flexible__item page-147 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://ocupacio.extranet.gencat.cat/treball_clt/festesMapa.do?any=2026&amp;codiP=1093&amp;
306tipusSeleccio=poblacio&amp;oper=View&amp;preAction=selMapaCat" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Calendari laboral</span></a></li><li class="menu-flexible__item page-148 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://orgt.diba.cat/ca/Informacio/calendari/calendari?idTramit=638bf9b9-972b-4511-9ba3-6f8f86e08b48" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Calendari fiscal</span></a></li></ul></li><li class="menu-flexible__item page-146 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio" ><span class="menu-flexible__item-text">Oferta pública d&#039;ocupació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-166 level3"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/anuncis-de-loferta-publica-docupacio" ><span class="menu-flexible__item-text">Anuncis de l&#039;Oferta Pública d&#039;Ocupació</span></a></li><li class="menu-flexible__item page-167 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/convocatories-de-seleccio" ><span class="menu-flexible__item-text">Convocatòries de selecció</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-171 level4"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/convocatories-de-seleccio/torn-lliure" ><span class="menu-flexible__item-text">Torn lliure</span></a></li><li class="menu-flexible__item page-168 level4"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/convocatories-de-seleccio/promocio-interna" ><span class="menu-flexible__item-text">Promoció interna</span></a></li><li class="menu-flexible__item page-169 level4"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/convocatories-de-seleccio/borses-de-treball" ><span class="menu-flexible__item-text">Borses de treball</span></a></li><li class="menu-flexible__item page-170 level4"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/oferta-publica-docupacio/convocatories-de-seleccio/plans-docupacio" ><span class="menu-flexible__item-text">Plans d&#039;ocupació</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-122 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/seu-electronica" ><span class="menu-flexible__item-text">Seu electrònica</span></a></li><li class="menu-flexible__item page-123 level2"><a class="menu-flexible__link" aria-expanded="false" href="/ajuntament/transparencia" ><span class="menu-flexible__item-text">Transparència</span></a></li></ul></li><li class="menu-flexible__item page-10 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/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-82 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/oficines-municipals" ><span class="menu-flexible__item-text">Oficines municipals</span></a></li><li class="menu-flexible__item page-31 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-90 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/el-meu-espai" ><span class="menu-flexible__item-text">El Meu Espai</span></a></li><li class="menu-flexible__item page-141 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-143 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/verificacio-de-documents" ><span class="menu-flexible__item-text">Verificació de documents</span></a></li><li class="menu-flexible__item page-88 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-140 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/cataleg-de-serveis" ><span class="menu-flexible__item-text">Catàleg de Serveis</span></a></li><li class="menu-flexible__item page-133 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/finestreta-unica-empresarial-fue" ><span class="menu-flexible__item-text">Finestreta Única Empresarial (FUE)</span></a></li><li class="menu-flexible__item page-32 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-175 level2"><a class="menu-flexible__link" aria-expanded="false" href="/tramits-i-serveis/canal-intern-dalertes" ><span class="menu-flexible__item-text">Canal intern d&#039;alertes</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="/torrelles" ><span class="menu-flexible__item-text">Torrelles</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-46 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/historia" ><span class="menu-flexible__item-text">Història</span></a></li><li class="menu-flexible__item page-41 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/llocs-dinteres" ><span class="menu-flexible__item-text">Llocs d&#039;interès</span></a></li><li class="menu-flexible__item page-34 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/com-arribar-hi" ><span class="menu-flexible__item-text">Com arribar-hi</span></a></li><li class="menu-flexible__item page-35 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/transport-public" ><span class="menu-flexible__item-text">Transport públic</span></a></li><li class="menu-flexible__item page-36 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/guia-de-carrers--planol" ><span class="menu-flexible__item-text">Guia de carrers / Plànol</span></a></li><li class="menu-flexible__item page-129 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/rutes" ><span class="menu-flexible__item-text">Rutes</span></a></li><li class="menu-flexible__item page-48 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/informacio-geografica" ><span class="menu-flexible__item-text">Informació geogràfica</span></a></li><li class="menu-flexible__item page-37 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/equipaments" ><span class="menu-flexible__item-text">Equipaments</span></a></li><li class="menu-flexible__item page-40 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/entitats-i-associacions" ><span class="menu-flexible__item-text">Entitats i associacions</span></a></li><li class="menu-flexible__item page-50 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/festes-i-fires" ><span class="menu-flexible__item-text">Festes i fires</span></a></li><li class="menu-flexible__item page-47 level2"><a class="menu-flexible__link" aria-expanded="false" href="/torrelles/el-municipi-en-xifres" ><span class="menu-flexible__item-text">El municipi en xifres</span></a></li></ul></li><li class="menu-flexible__item page-4 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/actualitat" ><span class="menu-flexible__item-text">Actualitat</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-128 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/avisos" ><span class="menu-flexible__item-text">Avisos</span></a></li><li class="menu-flexible__item page-53 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/noticies" ><span class="menu-flexible__item-text">Notícies</span></a></li><li class="menu-flexible__item page-54 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/agenda" ><span class="menu-flexible__item-text">Agenda</span></a></li><li class="menu-flexible__item page-55 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/butlleti-digital" ><span class="menu-flexible__item-text">Butlletí digital</span></a></li><li class="menu-flexible__item page-56 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/revista-municipal" ><span class="menu-flexible__item-text">
306Revista municipal</span></a></li><li class="menu-flexible__item page-149 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/xarxes-socials" ><span class="menu-flexible__item-text">Xarxes Socials</span></a></li><li class="menu-flexible__item page-57 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/rss" ><span class="menu-flexible__item-text">RSS</span></a></li><li class="menu-flexible__item page-58 level2"><a class="menu-flexible__link" aria-expanded="false" href="/actualitat/hemeroteca" ><span class="menu-flexible__item-text">Hemeroteca</span></a></li></ul></li><li class="menu-flexible__item page-93 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/temes" ><span class="menu-flexible__item-text">Temes</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-139 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/activitat-economica-i-turisme" ><span class="menu-flexible__item-text">Activitat econòmica i turisme</span></a></li><li class="menu-flexible__item page-134 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/cooperacio-i-solidaritat" ><span class="menu-flexible__item-text">Cooperació i solidaritat</span></a></li><li class="menu-flexible__item page-159 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/cultura-i-esdeveniments" ><span class="menu-flexible__item-text">Cultura i esdeveniments</span></a></li><li class="menu-flexible__item page-136 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/educacio-i-formacio" ><span class="menu-flexible__item-text">Educació i formació</span></a></li><li class="menu-flexible__item page-138 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/esports" ><span class="menu-flexible__item-text">Esports</span></a></li><li class="menu-flexible__item page-137 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/gent-gran" ><span class="menu-flexible__item-text">Gent gran</span></a></li><li class="menu-flexible__item page-135 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/govern-obert" ><span class="menu-flexible__item-text">Govern obert</span></a></li><li class="menu-flexible__item page-160 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/igualtat" ><span class="menu-flexible__item-text">Igualtat</span></a></li><li class="menu-flexible__item page-151 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/joves" ><span class="menu-flexible__item-text">Joves</span></a></li><li class="menu-flexible__item page-152 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/medi-ambient-i-sostenibilitat" ><span class="menu-flexible__item-text">Medi ambient i sostenibilitat</span></a></li><li class="menu-flexible__item page-153 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/mobilitat-i-transport" ><span class="menu-flexible__item-text">Mobilitat i transport</span></a></li><li class="menu-flexible__item page-154 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/pagesia" ><span class="menu-flexible__item-text">Pagesia</span></a></li><li class="menu-flexible__item page-155 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/participacio" ><span class="menu-flexible__item-text">Participació</span></a></li><li class="menu-flexible__item page-156 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/seguretat-ciutadana" ><span class="menu-flexible__item-text">Seguretat ciutadana</span></a></li><li class="menu-flexible__item page-157 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/serveis-a-les-persones" ><span class="menu-flexible__item-text">Serveis a les persones</span></a></li><li class="menu-flexible__item page-158 level2"><a class="menu-flexible__link" aria-expanded="false" href="/temes/urbanisme-obres-i-via-publica" ><span class="menu-flexible__item-text">Urbanisme, obres i via pública</span></a></li></ul></li><li class="menu-flexible__item page-5 level1"><a class="menu-flexible__link" aria-expanded="false" href="/adreces-i-telefons" ><span class="menu-flexible__item-text">Adreces i telèfons</span></a></li></ul></div>
306<script>(function() {
307    'use strict';
308
309    // Mega panel
310
311    function initMegaPanels(navContainer) {
312        var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]'));
313        if (!menuItems.length) return;
314
315        var navUl    = navContainer.querySelector('ul');
316        var topItems = navUl
317            ? menuItems.filter(function(el) { return el.parentElement === navUl; })
318            : menuItems;
319
320        var wrapper    = navContainer.closest('.menu-flexible__wrapper');
321        var isClick    = wrapper && wrapper.getAttribute('data-expand-type') === 'click';
322
323        menuItems.forEach(function(item) {
324            var panel = getPanelForItem(item, navContainer);
325            if (!panel) return;
326
327            if (isClick) {
328                var link = item.querySelector('a');
329                if (link) {
330                    link.addEventListener('click', function(e) {
331                        // En mòbil, els elements naveguen directament sense desplegar submenús
332                        if (window.innerWidth <= 992) return;
333                        if (panel.classList.contains('mf-mega-visible')) {
334                            // Segon clic: navegar
335                            return;
336                        }
337                        e.preventDefault();
338                        hideAllMegaPanels(navContainer);
339                        showPanel(item, panel);
340                    });
341                }
342            } else {
343                var hoverDelay = parseInt(
344                    getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10
345                ) || 0;
346                var hoverTimer = null;
347
348                var leaveTimer = null;
349
350                item.addEventListener('mouseenter', function() {
351                    clearTimeout(hoverTimer);
352                    clearTimeout(leaveTimer);
353                    if (hoverDelay > 0) {
354                        hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay);
355                    } else {
356                        showPanel(item, panel);
357                    }
358                });
359                item.addEventListener('mouseleave', function(e) {
360                    clearTimeout(hoverTimer);
361                    if (!panel.contains(e.relatedTarget)) {
362                        leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300);
363                    }
364                });
365                panel.addEventListener('mouseenter', function() {
366                    clearTimeout(leaveTimer);
367                });
368                panel.addEventListener('mouseleave', function(e) {
369                    clearTimeout(hoverTimer);
370                    clearTimeout(leaveTimer);
371                    if (!item.contains(e.relatedTarget)) hidePanel(item, panel);
372                });
373
374                // Tàctil: fallback quan hover no disponible (només escriptori tàctil)
375                var link = item.querySelector('a');
376                if (link) {
377                    link.addEventListener('click', function(e) {
378                        if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) {
379                            if (panel.classList.contains('mf-mega-visible')) {
380                                // Segon clic en tàctil: navegar
381                                return;
382                            }
383                            e.preventDefault();
384                            hideAllMegaPanels(navContainer);
385                            showPanel(item, panel);
386                        }
387                    });
388                }
389            }
390        });
391
392        navContainer.addEventListener('keydown', function(e) {
393            handleMegaKeydown(e, navContainer, topItems);
394        });
395
396        if (!isClick) {
397            navContainer.addEventListener('focusin', function(e) {
398                var item = e.target.closest('[data-mega-id]');
399                if (!item) return;
400                var panel = getPanelForItem(item, navContainer);
401                if (!panel) return;
402                hideAllMegaPanels(navContainer);
403                showPanel(item, panel);
404            });
405        }
406
407        navContainer.addEventListener('focusout', function() {
408            setTimeout(function() {
409                if (!navContainer.contains(document.activeElement)) {
410                    hideAllMegaPanels(navContainer);
411                }
412            }, 0);
413        });
414
415        document.addEventListener('click', function(e) {
416            if (!navContainer.contains(e.target)) {
417                hideAllMegaPanels(navContainer);
418            }
419        });
420    }
421
422    function handleMegaKeydown(e, navContainer, topItems) {
423        var focused = document.activeElement;
424        if (!focused) return;
425
426        var currentItem = focused.closest('[data-mega-id]');
427        var currentPanel = focused.closest('.menu-flexible__mega-panel');
428        var key = e.key || e.code || e.keyCode;
429
430        function directLink(item) {
431            if (!item) return null;
432            return Array.prototype.slice.call(item.children).find(function(el) {
433                return el.tagName === 'A';
434            }) || item.querySelector('a');
435        }
436
437        function itemForPanel(panel) {
438            if (!panel) return null;
439            var id = panel.getAttribute('data-mega-id');
440            return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
441        }
442
443        function focusPanelLink(panel, index) {
444            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
445            if (!links.length) return;
446            links[(index + links.length) % links.length].focus();
447        }
448
449        function focusPanelSibling(panel, offset) {
450            var links = Array.prototype.slice.call(panel.querySelectorAll('a'));
451            var idx = links.indexOf(focused);
452            if (idx === -1) return;
453            links[(idx + offset + links.length) % links.length].focus();
454        }
455
456        function panelColumnForLink(link) {
457            return link ? link.closest('.menu-flexible__mega-col') : null;
458        }
459
460        function focusAdjacentPanelColumn(panel, offset) {
461            var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col'));
462            var currentColumn = panelColumnForLink(focused);
463            var idx = columns.indexOf(currentColumn);
464            if (idx === -1) return false;
465
466            var targetColumn = columns[(idx + offset + columns.length) % columns.length];
467            var targetLink = targetColumn.querySelector('a');
468            if (targetLink) {
469                targetLink.focus();
470                return true;
471            }
472
473            return false;
474        }
475
476        function focusTopItem(item, offset) {
477            var idx = topItems.indexOf(item);
478            if (idx === -1) return;
479
480            var next = topItems[(idx + offset + topItems.length) % topItems.length];
481            hideAllMegaPanels(navContainer);
482
483            var nextLink = directLink(next);
484            if (nextLink) {
485                nextLink.focus();
486                var nextPanel = getPanelForItem(next, navContainer);
487                if (nextPanel) showPanel(next, nextPanel);
488            }
489        }
490
491        switch (key) {
492            case 'Escape':
493            case 'Esc':
494            case 27: {
495                e.preventDefault();
496                hideAllMegaPanels(navContainer);
497                if (currentPanel) {
498                    var item = itemForPanel(currentPanel);
499                    var lnk = directLink(item);
500                    if (lnk) lnk.focus();
501                }
502                break;
503            }
504
505            case 'ArrowRight':
506            case 39:
507            case 'ArrowLeft':
508            case 37: {
509                var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1;
510                e.preventDefault();
511
512                if (currentPanel) {
513                    if (!focusAdjacentPanelColumn(currentPanel, direction)) {
514                        var ownerItem = itemForPanel(currentPanel);
515                        focusTopItem(ownerItem, direction);
516                    }
517                    break;
518                }
519
520                if (!currentItem) return;
521                focusTopItem(currentItem, direction);
522                break;
523            }
524
525            case 'ArrowDown':
526            case 40: {
527                e.preventDefault();
528                if (currentPanel) {
529                    focusPanelSibling(currentPanel, 1);
530                    break;
531                }
532                if (!currentItem) return;
533                var panel = getPanelForItem(currentItem, navContainer);
534                if (!panel) return;
535                if (!panel.classList.contains('mf-mega-visible')) {
536                    hideAllMegaPanels(navContainer);
537                    showPanel(currentItem, panel);
538                }
539                focusPanelLink(panel, 0);
540                break;
541            }
542
543            case ' ':
544            case 'Space':
545            case 'Spacebar':
546            case 32: {
547                if (currentPanel || !currentItem) return;
548                var spacePanel = getPanelForItem(currentItem, navContainer);
549                if (!spacePanel) return;
550
551                e.preventDefault();
552                if (spacePanel.classList.contains('mf-mega-visible')) {
553                    hidePanel(currentItem, spacePanel);
554                } else {
555                    hideAllMegaPanels(navContainer);
556                    showPanel(currentItem, spacePanel);
557                }
558                break;
559            }
560
561            case 'ArrowUp':
562            case 38: {
563                if (!currentPanel) return;
564                e.preventDefault();
565                var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a'));
566                var focusedIndex = panelLinks.indexOf(focused);
567
568                if (focusedIndex > 0) {
569                    focusPanelLink(currentPanel, focusedIndex - 1);
570                } else {
571                    var parentItem = itemForPanel(currentPanel);
572                    var parentLink = directLink(parentItem);
573                    if (parentLink) parentLink.focus();
574                    if (parentItem) hidePanel(parentItem, currentPanel);
575                }
576                break;
577            }
578        }
579    }
580
581    function getPanelForItem(item, navContainer) {
582        var id = item.getAttribute('data-mega-id');
583        return id
584            ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]')
585            : null;
586    }
587
588    function showPanel(item, panel) {
589        panel.classList.add('mf-mega-visible');
590        panel.setAttribute('aria-hidden', 'false');
591        var link = item.querySelector('a');
592        if (link) link.setAttribute('aria-expanded', 'true');
593    }
594
595    function hidePanel(item, panel) {
596        panel.classList.remove('mf-mega-visible');
597        panel.setAttribute('aria-hidden', 'true');
598        var link = item.querySelector('a');
599        if (link) link.setAttribute('aria-expanded', 'false');
600    }
601
602    function hideAllMegaPanels(navContainer) {
603        navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible')
604            .forEach(function(panel) {
605                var id   = panel.getAttribute('data-mega-id');
606                var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null;
607                if (item) {
608                    hidePanel(item, panel);
609                } else {
610                    panel.classList.remove('mf-mega-visible');
611                    panel.setAttribute('aria-hidden', 'true');
612                }
613            });
614    }
615
616
617    // Tecles de fletxa (menú estàndard)
618
619    function initStandardKeyboard(wrapper) {
620        var menu = wrapper.querySelector('.menu-flexible__list');
621        if (!menu) return;
622
623        function closeAll() {
624            Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]'))
625                .forEach(function(item) {
626                    item.setAttribute('focus', 'false');
627                    var submenu = Array.prototype.slice.call(item.children).find(function(el) {
628                        return el.classList && el.classList.contains('menu-flexible__submenu');
629                    });
630                    if (submenu) {
631                        submenu.style.left = '';
632                        submenu.style.opacity = '';
633                        submenu.style.visibility = '';
634                        submenu.style.pointerEvents = '';
635                        submenu.style.transform = '';
636                    }
637                    var link = Array.prototype.slice.call(item.children).find(function(el) {
638                        return el.tagName === 'A';
639                    });
640                    if (link && link.classList.contains('menu-flexible__link--dropdown')) {
641                        link.setAttribute('aria-expanded', 'false');
642                    }
643                });
644        }
645
646        wrapper.addEventListener('keydown', function(e) {
647            handleStandardKeydown(e, menu);
648        });
649
650        wrapper.addEventListener('focusout', function() {
651            setTimeout(function() {
652                if (!wrapper.contains(document.activeElement)) {
653                    closeAll();
654                }
655            }, 0);
656        });
657    }
658
659    function handleStandardKeydown(e, menu) {
660        var focused = document.activeElement;
661        if (!focused || !menu.contains(focused)) return;
662
663        var itemSel = '.menu-flexible__item';
664        var linkSel = '.menu-flexible__link';
665
666        var currentLi = focused.closest(itemSel);
667        if (!currentLi) return;
668
669        var parentUl = currentLi.parentElement;
670        var isLevel1 = parentUl === menu;
671
672        function directLink(li) {
673            var direct = Array.prototype.slice.call(li.children).find(function(el) {
674                return el.tagName === 'A';
675            });
676            return direct || li.querySelector(linkSel);
677        }
678
679        function siblingItems(ul) {
680            return Array.prototype.slice.call(ul.children).filter(function(el) {
681                return el.matches(itemSel);
682            });
683        }
684
685        function childMenu(li) {
686            return Array.prototype.slice.call(li.children).find(function(el) {
687                return el.classList && el.classList.contains('menu-flexible__submenu');
688            });
689        }
690
691        function setSubmenuVisible(li, visible) {
692            var submenu = childMenu(li);
693            if (!submenu) return;
694
695            if (visible) {
696                submenu.style.left = li.parentElement === menu ? '0' : '100%';
697                submenu.style.opacity = '1';
698                submenu.style.visibility = 'visible';
699                submenu.style.pointerEvents = 'auto';
700                submenu.style.transform = 'none';
701            } else {
702                submenu.style.left = '';
703                submenu.style.opacity = '';
704                submenu.style.visibility = '';
705                submenu.style.pointerEvents = '';
706                submenu.style.transform = '';
707            }
708        }
709
710        function setExpanded(li, expanded) {
711            li.setAttribute('focus', expanded ? 'true' : 'false');
712            setSubmenuVisible(li, expanded);
713            var lnk = directLink(li);
714            if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) {
715                lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false');
716            }
717            if (!expanded) {
718                Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]'))
719                    .forEach(function(item) {
720                        item.setAttribute('focus', 'false');
721                        setSubmenuVisible(item, false);
722                        var childLink = directLink(item);
723                        if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) {
724                            childLink.setAttribute('aria-expanded', 'false');
725                        }
726                    });
727            }
728        }
729
730        function closeSiblings(li) {
731            Array.prototype.slice.call(li.parentElement.children)
732                .filter(function(item) {
733                    return item !== li && item.matches(itemSel);
734                })
735                .forEach(function(item) {
736                    setExpanded(item, false);
737                });
738        }
739
740        function openChild(li) {
741            var submenu = childMenu(li);
742            if (!submenu) return false;
743            closeSiblings(li);
744            setExpanded(li, true);
745            var firstChild = submenu.querySelector(linkSel);
746            if (firstChild) firstChild.focus();
747            return true;
748        }
749
750        function focusSibling(offset) {
751            var sibs = siblingItems(parentUl);
752            var idx  = sibs.indexOf(currentLi);
753            var lnk  = directLink(sibs[(idx + offset + sibs.length) % sibs.length]);
754            if (lnk) lnk.focus();
755        }
756
757        var key = e.key || e.code || e.keyCode;
758
759        switch (key) {
760            case 'ArrowRight':
761            case 39: {
762                if (!isLevel1) return;
763                e.preventDefault();
764                setExpanded(currentLi, false);
765                focusSibling(1);
766                break;
767            }
768            case 'ArrowLeft':
769            case 37: {
770                if (!isLevel1) return;
771                e.preventDefault();
772                setExpanded(currentLi, false);
773                focusSibling(-1);
774                break;
775            }
776            case 'ArrowDown':
777            case 40: {
778                e.preventDefault();
779                if (focused === directLink(currentLi) && openChild(currentLi)) {
780                    break;
781                }
782                var sibsDown = siblingItems(parentUl);
783                var idxDown  = sibsDown.indexOf(currentLi);
784                if (idxDown < sibsDown.length - 1) {
785                    var lnkDown = directLink(sibsDown[idxDown + 1]);
786                    if (lnkDown) lnkDown.focus();
787                }
788                break;
789            }
790            case 'ArrowUp':
791            case 38: {
792                e.preventDefault();
793                var sibsUp = siblingItems(parentUl);
794                var idxUp  = sibsUp.indexOf(currentLi);
795                if (idxUp > 0) {
796                    var lnkUp = directLink(sibsUp[idxUp - 1]);
797                    if (lnkUp) lnkUp.focus();
798                } else if (!isLevel1) {
799                    var parentItemUp = parentUl.closest(itemSel);
800                    if (parentItemUp) {
801                        setExpanded(parentItemUp, false);
802                        var parentLinkUp = directLink(parentItemUp);
803                        if (parentLinkUp) parentLinkUp.focus();
804                    }
805                }
806                break;
807            }
808            case ' ':
809            case 'Space':
810            case 'Spacebar':
811            case 32: {
812                if (!focused.classList.contains('menu-flexible__link--dropdown')) return;
813                e.preventDefault();
814                currentLi.getAttribute('focus') === 'true'
815                    ? setExpanded(currentLi, false)
816                    : openChild(currentLi);
817                break;
818            }
819            case 'Escape':
820            case 'Esc':
821            case 27: {
822                if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return;
823                e.preventDefault();
824                if (!isLevel1) {
825                    var parentItemEsc = parentUl.closest(itemSel);
826                    if (parentItemEsc) {
827                        setExpanded(parentItemEsc, false);
828                        var parentLinkEsc = directLink(parentItemEsc);
829                        if (parentLinkEsc) parentLinkEsc.focus();
830                    }
831                } else {
832                    setExpanded(currentLi, false);
833                }
834                break;
835            }
836        }
837    }
838
839
840    // Click mode: expandir submenús via [focus=true]
841
842    function initClickExpand(wrapper) {
843        var menu = wrapper.querySelector('.menu-flexible__list');
844        if (!menu) return;
845
846        var itemSel        = '.menu-flexible__item';
847        var dropdownSel    = '.menu-flexible__link--dropdown';
848
849        function closeAll(container) {
850            Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]'))
851                .forEach(function(el) { el.setAttribute('focus', 'false'); });
852        }
853
854        function closeSiblings(item) {
855            var parentUl = item.parentElement;
856            Array.prototype.slice.call(parentUl.children)
857                .filter(function(el) {
858                    return el !== item
859                        && el.matches(itemSel)
860                        && el.getAttribute('focus') === 'true';
861                })
862                .forEach(function(el) {
863                    el.setAttribute('focus', 'false');
864                    closeAll(el);
865                });
866        }
867
868        menu.addEventListener('click', function(e) {
869            var link = e.target.closest(dropdownSel);
870            if (!link || !menu.contains(link)) return;
871
872            var item = link.parentElement;
873            if (!item || !item.matches(itemSel)) return;
874
875            // En mòbil, els elements naveguen directament sense desplegar submenús
876            if (window.innerWidth <= 992) return;
877
878            var isOpen = item.getAttribute('focus') === 'true';
879
880            if (isOpen) {
881                // Segon clic: navegar
882                return;
883            }
884
885            e.preventDefault();
886            closeSiblings(item);
887            item.setAttribute('focus', 'true');
888        });
889
890        document.addEventListener('click', function(e) {
891            var openItem = menu.querySelector(itemSel + '[focus="true"]');
892            if (!openItem) return;
893            if (!openItem.contains(e.target)) {
894                closeAll(menu);
895            }
896        });
897    }
898
899
900    // Hamburger (mòbil ≤992px)
901
902    class MenuFlexible {
903        constructor(wrapper) {
904            this.wrapper   = wrapper;
905            this.hamburger = wrapper.querySelector('.menu-flexible__toggle');
906            this.menu      = wrapper.querySelector('.menu-flexible__list');
907
908            if (!this.hamburger || !this.menu) return;
909
910            var parent  = this.menu.parentElement;
911            this.isMega = parent && parent.classList.contains('menu-flexible__nav-container');
912            this.target = this.isMega ? parent : this.menu;
913
914            // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla
915            // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem.
916            this.clipper = wrapper.closest('.nav');
917
918            this.init();
919            window.addEventListener('resize', () => this.handleResize());
920        }
921
922        init() {
923            this.hamburger.addEventListener('click', (e) => {
924                e.preventDefault();
925                e.stopPropagation();
926                this.toggleMenu();
927            });
928
929            document.addEventListener('click', (e) => {
930                if (!this.wrapper.contains(e.target) && this.isOpen()) {
931                    this.closeMenu();
932                }
933            });
934
935            this.menu.querySelectorAll('a').forEach(link => {
936                link.addEventListener('click', () => {
937                    if (window.innerWidth <= 992 && this.isOpen()) {
938                        this.closeMenu();
939                    }
940                });
941            });
942        }
943
944        isOpen()     { return this.target.classList.contains('show'); }
945        toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); }
946
947        liftClip() {
948            if (this.clipper && window.innerWidth <= 992) {
949                this.clipper.style.height = 'auto';
950                this.clipper.style.maxHeight = 'none';
951                this.clipper.style.overflow = 'visible';
952            }
953        }
954
955        restoreClip() {
956            if (this.clipper) {
957                this.clipper.style.height = '';
958                this.clipper.style.maxHeight = '';
959                this.clipper.style.overflow = '';
960            }
961        }
962
963        openMenu() {
964            this.target.classList.add('show');
965            this.target.style.display = this.isMega ? 'block' : 'flex';
966            if (this.isMega) this.menu.style.display = 'flex';
967            this.liftClip();
968            this.hamburger.classList.add('active');
969            this.hamburger.setAttribute('aria-expanded', 'true');
970        }
971
972        closeMenu() {
973            this.target.classList.remove('show');
974            this.target.style.display = 'none';
975            if (this.isMega) {
976                this.menu.style.display = '';
977                var nc = this.wrapper.querySelector('.menu-flexible__nav-container');
978                if (nc) hideAllMegaPanels(nc);
979            }
980            this.restoreClip();
981            this.hamburger.classList.remove('active');
982            this.hamburger.setAttribute('aria-expanded', 'false');
983        }
984
985        handleResize() {
986            if (window.innerWidth > 992) {
987                this.target.classList.remove('show');
988                this.target.style.display = '';
989                if (this.isMega) this.menu.style.display = '';
990                this.restoreClip();
991                this.hamburger.classList.remove('active');
992                this.hamburger.setAttribute('aria-expanded', 'false');
993            }
994        }
995    }
996
997
998    // Init
999
1000    function init() {
1001        document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) {
1002            var navContainer = wrapper.querySelector('.menu-flexible__nav-container');
1003            if (navContainer) {
1004                initMegaPanels(navContainer);
1005            } else {
1006                initStandardKeyboard(wrapper);
1007                if (wrapper.getAttribute('data-expand-type') === 'click') {
1008                    initClickExpand(wrapper);
1009                }
1010            }
1011            new MenuFlexible(wrapper);
1012            if (wrapper.getAttribute('data-menu-sticky') === 'true') {
1013                var stickyTarget = wrapper.closest('#navbar-top')
1014                                || wrapper.closest('.navbar')
1015                                || wrapper.closest('nav');
1016                if (stickyTarget) {
1017                    stickyTarget.classList.add('menu-sticky-enabled');
1018                    document.body.classList.add('has-sticky-menu');
1019
1020                    var navbarHeight   = stickyTarget.offsetHeight;
1021                    var navbarTop      = stickyTarget.getBoundingClientRect().top + window.scrollY;
1022                    var bodyPadApplied = false;
1023
1024                    function updateStickyOffset() {
1025                        navbarHeight = stickyTarget.offsetHeight;
1026                        document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px');
1027
1028                        if (bodyPadApplied) {
1029                            document.body.style.paddingTop = navbarHeight + 'px';
1030                        }
1031                    }
1032
1033                    function getTargetFromHash(hash) {
1034                        if (!hash || hash.charAt(0) !== '#') {
1035                            return null;
1036                        }
1037
1038                        try {
1039                            return document.getElementById(decodeURIComponent(hash.substring(1)));
1040                        } catch (error) {
1041                            return document.getElementById(hash.substring(1));
1042                        }
1043                    }
1044
1045                    function scrollToSkipTarget(hash) {
1046                        var target = getTargetFromHash(hash);
1047                        if (!target) {
1048                            return;
1049                        }
1050
1051                        updateStickyOffset();
1052
1053                        var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight;
1054                        if (expectedTop > navbarTop) {
1055                            applyFixed();
1056                        } else {
1057                            removeFixed();
1058                        }
1059
1060                        try {
1061                            target.focus({ preventScroll: true });
1062                        } catch (error) {
1063                            target.focus();
1064                        }
1065
1066                        var targetTop = target.getBoundingClientRect().top + window.scrollY;
1067                        window.scrollTo(0, Math.max(targetTop - navbarHeight, 0));
1068                    }
1069
1070                    document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) {
1071                        link.addEventListener('click', function(event) {
1072                            var hash = link.getAttribute('href');
1073                            var target = getTargetFromHash(hash);
1074                            if (!target) {
1075                                return;
1076                            }
1077
1078                            event.preventDefault();
1079
1080                            if (window.history && window.history.pushState) {
1081                                window.history.pushState(null, '', hash);
1082                            } else {
1083                                window.location.hash = hash;
1084                            }
1085
1086                            scrollToSkipTarget(hash);
1087                        });
1088                    });
1089
1090                    updateStickyOffset();
1091
1092                    function applyFixed() {
1093                        if (!stickyTarget.classList.contains('fixed-top')) {
1094                            updateStickyOffset();
1095                            stickyTarget.classList.add('fixed-top');
1096                            document.body.style.paddingTop = navbarHeight + 'px';
1097                            bodyPadApplied = true;
1098                        }
1099                    }
1100
1101                    function removeFixed() {
1102                        if (stickyTarget.classList.contains('fixed-top')) {
1103                            stickyTarget.classList.remove('fixed-top');
1104                            document.body.style.paddingTop = '';
1105                            bodyPadApplied = false;
1106                        }
1107                    }
1108
1109                    window.addEventListener('scroll', function() {
1110                        if (window.scrollY > navbarTop) {
1111                            applyFixed();
1112                        } else {
1113                            removeFixed();
1114                        }
1115                    });
1116
1117                    window.addEventListener('resize', function() {
1118                        updateStickyOffset();
1119                        if (!stickyTarget.classList.contains('fixed-top')) {
1120                            navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY;
1121                        }
1122                    });
1123
1124                    if ('ResizeObserver' in window) {
1125                        new ResizeObserver(updateStickyOffset).observe(stickyTarget);
1126                    }
1127
1128                    stickyTarget.querySelectorAll('img').forEach(function(image) {
1129                        if (!image.complete) {
1130                            image.addEventListener('load', updateStickyOffset, { once: true });
1131                        }
1132                    });
1133
1134                    window.addEventListener('load', updateStickyOffset);
1135
1136                    if (window.scrollY > navbarTop) applyFixed();
1137
1138                    if (window.location.hash) {
1139                        window.setTimeout(function() {
1140                            scrollToSkipTarget(window.location.hash);
1141                        }, 0);
1142                    }
1143                }
1144            }
1145        });
1146    }
1147
1148    if (document.readyState === 'loading') {
1149        document.addEventListener('DOMContentLoaded', init);
1150    } else {
1151        init();
1152    }
1153})();
1154</script>
1154</nav></div></div></div></div></div>        </div></div></div>  </div></div></div>  </div></div>        </header>
1155                <main id="main-content" tabindex="-1">
1156            <div class="content">
1157                                <div class="container-xl columns">
1158                                        <div class="js-widget o-widget o-widget--body o-widget-contenidor  clearfix boxBX  WidgetContainer " data-id="75" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="75"><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget--prova o-widget-contenidor  o-widget-contenidor--columnes  col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContainer " data-id="99" >  <div class="o-widget-wrapper clearfix default-BX  mt-3  row " data-id="99"><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget-contenidor  col-xs-12 col-sm-9 col-md-9 col-lg-9 clearfix boxBX  WidgetContainer " data-id="100" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="100"><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget--sliderBootstrap contentView-22 col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContentsList " data-id="93" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="93"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic">
1159  <div id="carousel93" class="carousel slide pointer-event sliderBootstrap1 carousel-ride-93"
1160         data-bs-ride="carousel-ride-93"
1161         data-bs-interval="5000"
1162         data-bs-id="93"
1163    >
1164    <ol class="carousel-indicators">
1165              <li data-bs-target="#carousel93" data-bs-slide-to="0"
1166          class="active" 
1167          aria-current="true" aria-label=""> 
1168        </li>
1169              <li data-bs-target="#carousel93" data-bs-slide-to="1"
1170           
1171          aria-current="true" aria-label=""> 
1172        </li>
1173              <li data-bs-target="#carousel93" data-bs-slide-to="2"
1174           
1175          aria-current="true" aria-label=""> 
1176        </li>
1177              <li data-bs-target="#carousel93" data-bs-slide-to="3"
1178           
1179          aria-current="true" aria-label=""> 
1180        </li>
1181          </ol>
1182    <div class="carousel-inner">
1183                    <div class="carousel-item active">
1184          <div class="default">
1185                        <a href="https://www.torrelles.cat/actualitat/noticies/9410-servei-de-recollida-descombraries-i-altres-residus.html" target="_self"  >
1186              <span class="visually-hidden">Servei de recollida d'escombraries i altres residus</span>
1187              <img src="/media/repository/Banner_Home.jpg" class="d-block w-100 img" alt="">
1188            </a>
1189                      </div>
1190          <div class="container none">
1191            <div class="carousel-caption d-none-text d-md-block">
1192              <div class="container-text">
1193                              <span>
1194                  <a href="https://www.torrelles.cat/actualitat/noticies/9410-servei-de-recollida-descombraries-i-altres-residus.html" target="_self"  >
1195                    Servei de recollida d'escombraries i altres residus                  </a>
1196                </span>
1197                                                        </div>
1198            </div>
1199          </div>
1200        </div>
1201                      <div class="carousel-item ">
1202          <div class="default">
1203                        <a href="https://www.torrelles.cat/actualitat/noticies/la-linia-l76-amplia-el-seu-recorregut-per-torrelles.html" target="_self"  >
1204              <span class="visually-hidden">La línia L76 amplia el seu recorregut per Torrelles</span>
1205              <img src="/media/repository/Diseno_sin_titulo__37_.png" class="d-block w-100 img" alt="">
1206            </a>
1207                      </div>
1208          <div class="container none">
1209            <div class="carousel-caption d-none-text d-md-block">
1210              <div class="container-text">
1211                              <span>
1212                  <a href="https://www.torrelles.cat/actualitat/noticies/la-linia-l76-amplia-el-seu-recorregut-per-torrelles.html" target="_self"  >
1213                    La línia L76 amplia el seu recorregut per Torrelles                  </a>
1214                </span>
1215                                                        </div>
1216            </div>
1217          </div>
1218        </div>
1219                      <div class="carousel-item ">
1220          <div class="default">
1221                        <a href="https://www.torrelles.cat/torrelles/transport-public" target="_self"  >
1222              <span class="visually-hidden">Mou-te amb transport públic i consulta les parades de bus del municipi</span>
1223              <img src="/media/repository/bannerAMBmobilitat.jpg" class="d-block w-100 img" alt="Mou-te amb transport públic">
1224            </a>
1225                      </div>
1226          <div class="container none">
1227            <div class="carousel-caption d-none-text d-md-block">
1228              <div class="container-text">
1229                              <span>
1230                  <a href="https://www.torrelles.cat/torrelles/transport-public" target="_self"  >
1231                    Mou-te amb transport públic i consulta les parades de bus del municipi                  </a>
1232                </span>
1233                                                        </div>
1234            </div>
1235          </div>
1236        </div>
1237                      <div class="carousel-item ">
1238          <div class="default">
1239                        <a href="https://www.torrelles.cat/actualitat/revista-municipal/" target="_self"  >
1240              <span class="visually-hidden">Consulta en línia la revista d'informació municipal</span>
1241              <img src="/media/repository/noticies/gent_gran_setmana/Baner_nova_revista.png" class="d-block w-100 img" alt="Ja podem consultar el nou número de la revista d'informació municipal">
1242            </a>
1243                      </div>
1244          <div class="container none">
1245            <div class="carousel-caption d-none-text d-md-block">
1246              <div class="container-text">
1247                              <span>
1248                  <a href="https://www.torrelles.cat/actualitat/revista-municipal/" target="_self"  >
1249                    Consulta en línia la revista d'informació municipal                  </a>
1250                </span>
1251                                                        </div>
1252            </div>
1253          </div>
1254        </div>
1255            </div>
1256        <a class="carousel-control-prev" role="button" data-bs-target="#carousel93" data-bs-slide="prev">
1257      <span class="carousel-control-prev-icon" aria-hidden="true"></span>
1258      <span class="visually-hidden">Anterior</span>
1259    </a>
1260    <a class="carousel-control-next" role="button" data-bs-target="#carousel93" data-bs-slide="next">
1261      <span class="carousel-control-next-icon" aria-hidden="true"></span>
1262      <span class="visually-hidden">Següent</span>
1263    </a>
1264              <a id="carouselPlay93"
1265           class="carousel-control-play"
1266           role="button" data-bs-toggle="play"
1267           data-bs-id="93"
1268           onclick="pauseCarousel(93)"
1269           style="z-index: 2">
1270          <span class="carousel-control-icon" aria-hidden="true"><i class="fa fa-play-circle-o" aria-hidden="true"></i></span>
1271          <span class="visually-hidden">Play</span>
1272        </a>
1273        <a id="carouselPause93"
1274           class="carousel-control-pause none"
1275           role="button"
1276           data-bs-toggle="pause"
1277           data-bs-id="93"
1278           onclick="playCarousel(93)"
1279           style="z-index: 1">
1280          <span class="carousel-control-icon" aria-hidden="true"><i class="fa fa-pause-circle-o" aria-hidden="true"></i></span>
1281          <span class="visually-hidden">Play</span>
1282        </a>
1283            </div>
1284</div></div></div>  </div></div></div>  </div></div><div class="view-6 js-widget o-widget o-widget-contenidor  col-xs-12 col-sm-3 col-md-3 col-lg-3 clearfix boxBX  WidgetContainer " data-id="101" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="101"><div class="o-widget-container  row"><div class="view-5 js-widget o-widget o-widget--vcards contentView-35 o-widget--tramits-destacats col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContentsList " data-id="94" >  <div class="o-widget-wrapper clearfix backgroundTitleLine-BX   row  o-widget-wrapper--title-top o-widget-wrapper--title-style-line" data-id="94"><div class="o-widget-title-slot o-widget__title_Line"><span>Tràmits destacats</span></div><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic">
1285        
1286    <div class="clear articlelist vcards medium">
1287    <div class="tplVcards">
1288                    <div class="card-body clearfix">
1289                    <div class="card-title">
1290                <a href="https://www.torrelles.cat/tramits-i-serveis/tramits-i-gestions/instancia-generica.html" target="_self" >Instància genèrica</a>
1291            </div>
1292                        <div class="entradeta ddbbtext"></div>    </div>
1293</div>
1294<div class="tplVcards">
1295                    <div class="card-body clearfix">
1296                    <div class="card-title">
1297                <a href="https://www.torrelles.cat/tramits-i-serveis/tramits-i-gestions/matriculacio-a-lescola-bressol-municipal-el-serralet-pel-curs-2026-2027.html" target="_self" >
1297Matriculació a l'Escola Bressol Municipal “El Serralet” pel curs 2026-2027</a>
1298            </div>
1299                        <div class="entradeta ddbbtext"></div>    </div>
1300</div>
1301<div class="tplVcards">
1302                    <div class="card-body clearfix">
1303                    <div class="card-title">
1304                <a href="https://elmeuespai.aoc.cat/828960009/dades-personals" target="_blank" title ='Obre-ho en una finestra nova'>Volant d'empadronament individual</a>
1305            </div>
1306                        <div class="entradeta ddbbtext"></div>    </div>
1307</div>
1308    </div>
1309    <a class="readMore" href="/tramits-i-serveis/tramits-i-gestions/" target="_self">Més tràmits</a>        
1310</div></div></div>  </div></div></div>  </div></div></div>  </div></div><div class="view-5 js-widget o-widget o-widget-contenidor  col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContainer " data-id="97" >  <div class="o-widget-wrapper clearfix backgroundTitleLine-BX   row  o-widget-wrapper--title-top o-widget-wrapper--title-style-line" data-id="97"><div class="o-widget-title-slot o-widget__title_Line"><span>Administració electrònica</span></div><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget--sliderSmall contentView-23 col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContentsList " data-id="98" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="98"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic sliderSmall">
1311    <div class="container text-center my-3">
1312        <div class="row mx-auto my-auto">
1313            <div id="myCarouselSmall-98" class="carousel desktop slide w-100" data-ride="carousel">
1314                <div class="carousel-inner w-100" role="listbox">
1315                    <div class="carousel-item content-98 small active" data-id="0">        <div class="col-lg-2 margin-image">
1316        <a href="https://www.torrelles.cat/ajuntament/transparencia/" target="_self"  class="banner">
1317                                <div class="background">
1318                <div class="image">
1319                    <div class="ratio default img">
1320                        <img src="/media/repository/administracio_electronica/portal_transparencia.png"
1321                             alt="Portal de transparència">
1322                    </div>
1323                </div>
1324            </div>
1325                                    <div class="titleText">Portal de transparència</div>
1326                </a>
1327    </div>
1328        <div class="col-lg-2 margin-image">
1329        <a href="https://www.torrelles.cat/tramits-i-serveis/tramits-i-gestions/" target="_self"  class="banner">
1330                                <div class="background">
1331                <div class="image">
1332                    <div class="ratio default img">
1333                        <img src="/media/repository/administracio_electronica/tramits.png"
1334                             alt="tramits">
1335                    </div>
1336                </div>
1337            </div>
1338                                    <div class="titleText">Tràmits i gestions</div>
1339                </a>
1340    </div>
1341        <div class="col-lg-2 margin-image">
1342        <a href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&idCap=7158713" target="_blank" title ='Obre-ho en una finestra nova' class="banner">
1343                                <div class="background">
1344                <div class="image">
1345                    <div class="ratio default img">
1346                        <img src="/media/repository/administracio_electronica/perfil_contractant.png"
1347                             alt="Perfil de contractant">
1348                    </div>
1349                </div>
1350            </div>
1351                                    <div class="titleText">Perfil de contractant</div>
1352                </a>
1353    </div>
1354        <div class="col-lg-2 margin-image">
1355        <a href="https://www.torrelles.cat/tramits-i-serveis/notificacions-electroniques/" target="_self"  class="banner">
1356                                <div class="background">
1357                <div class="image">
1358                    <div class="ratio default img">
1359                        <img src="/media/repository/administracio_electronica/notificacions.png"
1360                             alt="Notificacions electròniques">
1361                    </div>
1362                </div>
1363            </div>
1364                                    <div class="titleText">Notificacions electròniques</div>
1365                </a>
1366    </div>
1367        <div class="col-lg-2 margin-image">
1368        <a href="https://efact.eacat.cat/bustia/home.htm" target="_blank" title ='Obre-ho en una finestra nova' class="banner">
1369                                <div class="background">
1370                <div class="image">
1371                    <div class="ratio default img">
1372                        <img src="/media/repository/administracio_electronica/factura_electronica.png"
1373                             alt="Factura electrònica">
1374                    </div>
1375                </div>
1376            </div>
1377                                    <div class="titleText">Factura electrònica</div>
1378                </a>
1379    </div>
1380        <div class="col-lg-2 margin-image">
1381        <a href="https://www.torrelles.cat/tramits-i-serveis/verificacio-de-documents/" target="_self"  class="banner">
1382                                <div class="background">
1383                <div class="image">
1384                    <div class="ratio default img">
1385                        <img src="/media/repository/administracio_electronica/verificacio_de_documents.png"
1386                             alt="verificació de documents">
1387                    </div>
1388                </div>
1389            </div>
1390                                    <div class="titleText">Verificació de documents</div>
1391                </a>
1392    </div>
1393</div>                </div>
1394                <a class="carousel-control-prev hide w-auto" href="javascript:void(0)" data-content="98" role="button" aria-label="Anterior" data-sli
1394de="prev" data-end="0">
1395                    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
1396                    <span class="visually-hidden">Previous</span>
1397                </a>
1398                <a class="carousel-control-next hide w-auto " href="javascript:void(0)" role="button" data-content="98" aria-label='Següent' data-slide="next" data-end="0">
1399                    <span class="carousel-control-next-icon" aria-hidden="true"></span>
1400                    <span class="visually-hidden">Next</span>
1401                </a>
1402            </div>
1403        </div>
1404
1405        <div class="row mx-auto my-auto">
1406            <div id="myCarouselSmallMobile-98" class="carousel mobile slide w-100" data-ride="carousel">
1407                <div class="carousel-inner w-100" role="listbox">
1408                    <div class="carousel-item content-mobile-98  small active" data-id="0">        <div class="col-lg-2 margin-image">
1409        <a href="https://www.torrelles.cat/ajuntament/transparencia/" target="_self"  class="banner">
1410                                <div class="background">
1411                <div class="image">
1412                    <div class="ratio default img">
1413                        <img src="/media/repository/administracio_electronica/portal_transparencia.png"
1414                             alt="Portal de transparència">
1415                    </div>
1416                </div>
1417            </div>
1418                                    <div class="titleText">Portal de transparència</div>
1419                </a>
1420    </div>
1421</div><div class="carousel-item content-mobile-98  small " data-id="1">        <div class="col-lg-2 margin-image">
1422        <a href="https://www.torrelles.cat/tramits-i-serveis/tramits-i-gestions/" target="_self"  class="banner">
1423                                <div class="background">
1424                <div class="image">
1425                    <div class="ratio default img">
1426                        <img src="/media/repository/administracio_electronica/tramits.png"
1427                             alt="tramits">
1428                    </div>
1429                </div>
1430            </div>
1431                                    <div class="titleText">Tràmits i gestions</div>
1432                </a>
1433    </div>
1434</div><div class="carousel-item content-mobile-98  small " data-id="2">        <div class="col-lg-2 margin-image">
1435        <a href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&idCap=7158713" target="_blank" title ='Obre-ho en una finestra nova' class="banner">
1436                                <div class="background">
1437                <div class="image">
1438                    <div class="ratio default img">
1439                        <img src="/media/repository/administracio_electronica/perfil_contractant.png"
1440                             alt="Perfil de contractant">
1441                    </div>
1442                </div>
1443            </div>
1444                                    <div class="titleText">Perfil de contractant</div>
1445                </a>
1446    </div>
1447</div><div class="carousel-item content-mobile-98  small " data-id="3">        <div class="col-lg-2 margin-image">
1448        <a href="https://www.torrelles.cat/tramits-i-serveis/notificacions-electroniques/" target="_self"  class="banner">
1449                                <div class="background">
1450                <div class="image">
1451                    <div class="ratio default img">
1452                        <img src="/media/repository/administracio_electronica/notificacions.png"
1453                             alt="Notificacions electròniques">
1454                    </div>
1455                </div>
1456            </div>
1457                                    <div class="titleText">Notificacions electròniques</div>
1458                </a>
1459    </div>
1460</div><div class="carousel-item content-mobile-98  small " data-id="4">        <div class="col-lg-2 margin-image">
1461        <a href="https://efact.eacat.cat/bustia/home.htm" target="_blank" title ='Obre-ho en una finestra nova' class="banner">
1462                                <div class="background">
1463                <div class="image">
1464                    <div class="ratio default img">
1465                        <img src="/media/repository/administracio_electronica/factura_electronica.png"
1466                             alt="Factura electrònica">
1467                    </div>
1468                </div>
1469            </div>
1470                                    <div class="titleText">Factura electrònica</div>
1471                </a>
1472    </div>
1473</div><div class="carousel-item content-mobile-98  small " data-id="5">        <div class="col-lg-2 margin-image">
1474        <a href="https://www.torrelles.cat/tramits-i-serveis/verificacio-de-documents/" target="_self"  class="banner">
1475                                <div class="background">
1476                <div class="image">
1477                    <div class="ratio default img">
1478                        <img src="/media/repository/administracio_electronica/verificacio_de_documents.png"
1479                             alt="verificació de documents">
1480                    </div>
1481                </div>
1482            </div>
1483                                    <div class="titleText">Verificació de documents</div>
1484                </a>
1485    </div>
1486</div>                </div>
1487                <a class="carousel-control-prev-mobile  w-auto" href="javascript:void(0)" data-content="98" role="button" aria-label="Anterior" data-sli
1487de="prev" data-end="5">
1488                    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
1489                    <span class="visually-hidden">Previous</span>
1490                </a>
1491                <a class="carousel-control-next-mobile  w-auto " href="javascript:void(0)" role="button" data-content="98" aria-label='Següent' data-slide="next" data-end="5">
1492                    <span class="carousel-control-next-icon" aria-hidden="true"></span>
1493                    <span class="visually-hidden">Next</span>
1494                </a>
1495            </div>
1496        </div>
1497    </div>
1498</div></div></div>  </div></div></div>  </div></div><div class="view-5 js-widget o-widget o-widget-contenidor  col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContainer " data-id="79" >  <div class="o-widget-wrapper clearfix backgroundTitleLine-BX   row  o-widget-wrapper--title-top o-widget-wrapper--title-style-line" data-id="79"><div class="o-widget-title-slot o-widget__title_Line"><span>Notícies</span></div><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget--vcards contentView-25 o-widget--noticies col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContentsList " data-id="85" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="85"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic">
1499        
1500    <div class="clear articlelist vcards medium">
1501    <div class="tplVcards">
1502                <div class="image">
1503        <div class="default">
1504                        <a href="https://www.torrelles.cat/actualitat/noticies/9410-servei-de-recollida-descombraries-i-altres-residus.html" target="_self"  >
1505                            <img class="card-img thumb img" src="/media/repository/Banner_Home.jpg" alt="Servei de recollida d'escombraries i altres residus">
1506                        </a>
1507                    </div>
1508    </div>
1509            <div class="card-body clearfix">
1510                    <div class="card-title">
1511                <a href="https://www.torrelles.cat/actualitat/noticies/9410-servei-de-recollida-descombraries-i-altres-residus.html" target="_self" >Servei de recollida d'escombraries i altres residus</a>
1512            </div>
1513                            <span class="card-date">30/09/2026</span>
1514                <div class="entradeta ddbbtext"><p>El servei de recollida s'encarrega de la recollida i gestió dels residus municipals, tant domèstics com comercials, i promou la reducció, la separació correcta i el reciclatge</p>
1515</div>    </div>
1516</div>
1517<div class="tplVcards">
1518                <div class="image">
1519        <div class="default">
1520                        <a href="https://www.torrelles.cat/actualitat/noticies/9404-torna-la-unitat-mobil-dexpedicions-del-dni-a-torrelles.html" target="_self"  >
1521                            <img class="card-img thumb img" src="/media/repository/WhatsApp_Image_2026-05-22_at_08.34.30.jpeg" alt="Torna la unitat mòbil d'expedicions del DNI a Torrelles">
1522                        </a>
1523                    </div>
1524    </div>
1525            <div class="card-body clearfix">
1526                    <div class="card-title">
1527                <a href="https://www.torrelles.cat/actualitat/noticies/9404-torna-la-unitat-mobil-dexpedicions-del-dni-a-torrelles.html" target="_self" >Torna la unitat mòbil d'expedicions del DNI a Torrelles</a>
1528            </div>
1529                            <span class="card-date">22/09/2026</span>
1530                <div class="entradeta ddbbtext"><p>El proper dimecres 14 d'octubre, aquesta unitat es traslladarà a Torrelles de Llobregat facilitant el tràmit a una cinquantena de persones</p>
1531</div>    </div>
1532</div>
1533<div class="tplVcards">
1534                <div class="image">
1535        <div class="default">
1536                        <a href="https://www.torrelles.cat/actualitat/noticies/torrelles-celebra-la-setmana-europea-de-la-mobilitat.html" target="_self"  >
1537                            <img class="card-img thumb img" src="/media/repository/Plantilla_notis_web_Torrelles__2_.png" alt="Torrelles celebra la Setmana Europea de la Mobilitat">
1538                        </a>
1539                    </div>
1540    </div>
1541            <div class="card-body clearfix">
1542                    <div class="card-title">
1543                <a href="https://www.torrelles.cat/actualitat/noticies/torrelles-celebra-la-setmana-europea-de-la-mobilitat.html" target="_self" >Torrelles celebra la Setmana Europea de la Mobilitat</a>
1544            </div>
1545                            <span class="card-date">17/09/2026</span>
1546                <div class="entradeta ddbbtext"><p>El parc de Can Coll acollirà una tarda d’activitats participatives aquest divendres 18 de setembre, de 17 a 19 h</p>
1547</div>    </div>
1548</div>
1549<div class="tplVcards">
1550                <div class="image">
1551        <div class="default">
1552                        <a href="https://www.torrelles.cat/actualitat/noticies/torrelles-demana-avancar-les-obres-financades-pel-puosc-i-planteja-noves-necessitats-a-la-generalitat.html" target="_self"  >
1553                            <img class="card-img thumb img" src="/media/repository/Plantilla_notis_web_Torrelles__9_.png" alt="Torrelles demana avançar les obres finançades pel PUOSC i planteja noves necessitats a la Generalitat">
1554                        </a>
1555                    </div>
1556    </div>
1557            <div class="card-body clearfix">
1558                    <div class="card-title">
1559                <a href="https://www.torrelles.cat/actualitat/noticies/torrelles-demana-avancar-les-obres-financades-pel-puosc-i-planteja-noves-necessitats-a-la-generalitat.html" target="_self" >Torrelles demana avançar les obres finançades pel PUOSC i planteja noves necessitats a la Generalitat</a>
1560            </div>
1561                            <span class="card-date">17/09/2026</span>
1562                <div class="entradeta ddbbtext"><p>La trobada també ha permès fer seguiment de la subvenció per al CEM Can Coll i traslladar la necessitat de millorar la climatització de l’Institut Escola</p>
1563</div>    </div>
1564</div>
1565    </div>
1566    <a class="readMore" href="/actualitat/noticies" target="_self">Més noticies</a>        
1567</div></div></div>  </div></div></div>  </div></div><div class="view-5 js-widget o-widget o-widget-contenidor  o-widget-contenidor--columnes  col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContainer " data-id="80" >  <div class="o-widget-wrapper clearfix backgroundTitleLine-BX   row  o-widget-wrapper--title-top o-widget-wrapper--title-style-line" data-id="80"><div class="o-widget-title-slot o-widget__title_Line"><span>Agenda</span></div><div class="o-widget-container  row"><div class="view-6 js-widget o-widget o-widget--calendari contentView-9 col-xs-12 col-sm-3 col-md-3 col-lg-3 clearfix boxBX  WidgetContentsList " data-id="86" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="86"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div id="dv_calendar_86" data-category="0" data-type='12'></div>
1568<script>
1569    if (typeof calendars === 'undefined') {
1570        calendars = [];
1571    }
1572
1573    var data = {
1574        'id': 'dv_calendar_86',
1575        'data': {"20261006":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-06","day":"6"},"20261008":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-08","day":"8"},"20261022":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-22","day":"22"},"20261023":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-23","day":"23"},"20261025":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-25","day":"25"},"20261027":{"klass":"dia_marcat","lin":"\/actualitat\/agenda?date=2026-10-27","day":"27"}},
1576        'type': 12,
1577    };
1578                        calendars.push(data);
1579            window.addEventListener("load", function() {
1580                setDataCalendar(data.id, data.data, data.type);
1581            });
1582            </script>
1582
1583</div></div>  </div></div><div class="view-6 js-widget o-widget o-widget--mosaicFlexible contentView-37 col-xs-12 col-sm-9 col-md-9 col-lg-9 clearfix boxBX  WidgetContentsList " data-id="87" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="87"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic mosaic-flexible">
1584        <ul class="clear article-list row gx-5 justify-content-start liststylenone">
1585      <li class="article-item hover nohover col-12 col-md-6">
1586    <div class="row">
1587            <div class="item-noticia col-12 col-md-8  info">
1588                            <a href="https://www.torrelles.cat/actualitat/agenda/visita-comentada-a-lexposicio-del-cccb-el-culte-a-la-bellesa.html" target="_self" class="title">Visita comentada a l'exposició del CCCB "El culte a la bellesa"</a>
1589                                    </div>
1590        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/visita-comentada-a-lexposicio-del-cccb-el-culte-a-la-bellesa.html','_self')">
1591            <div class="default">
1592                                    <span class="data-quadrat tl">
1593                            <span class="day">06</span>
1594                            <span class="month">Oct.</span>
1595                            <span class="year">2026</span>
1596                    </span>
1597                                    <img src="/media/repository/agenda/2026/Cartell__Exposicio_El_Culte_a_la_bellesa.jpg" alt="Cartell El culte a la bellesa" class="img">
1598                            </div>
1599        </div>    </div>
1600    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1601    <div class="row">
1602        <div class="col-12">
1603                    </div>
1604    </div>
1605</li>
1606<li class="article-item hover nohover col-12 col-md-6">
1607    <div class="row">
1608            <div class="item-noticia col-12 col-md-8  info">
1609                            <a href="https://www.torrelles.cat/actualitat/agenda/sota-les-fulles-de-la-tardor.html" target="_self" class="title">"Sota les fulles de la tardor"</a>
1610                                    </div>
1611        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/sota-les-fulles-de-la-tardor.html','_self')">
1612            <div class="default">
1613                                    <span class="data-quadrat tl">
1614                            <span class="day">06</span>
1615                            <span class="month">Oct.</span>
1616                            <span class="year">2026</span>
1617                    </span>
1618                                    <img src="/media/repository/agenda/2026/Sota_les_fulles_Blai_Senabre.png" alt="" class="img">
1619                            </div>
1620        </div>    </div>
1621    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1622    <div class="row">
1623        <div class="col-12">
1624                    </div>
1625    </div>
1626</li>
1627<li class="article-item hover nohover col-12 col-md-6">
1628    <div class="row">
1629            <div class="item-noticia col-12 col-md-8  info">
1630                            <a href="https://www.torrelles.cat/actualitat/agenda/altres-veus-lhabitatge-un-repte-collectiu-regulacio.html" target="_self" class="title">Altres Veus. L'Habitatge: un repte col·lectiu. Regulació</a>
1631                                    </div>
1632        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/altres-veus-lhabitatge-un-repte-collectiu-regulacio.html','_self')">
1633            <div class="default">
1634                                    <span class="data-quadrat tl">
1635                            <span class="day">08</span>
1636                            <span class="month">Oct.</span>
1637                            <span class="year">2026</span>
1638                    </span>
1639                                    <img src="/media/repository/agenda/2026/Altres_Veus_Judith_Gifreu.png" alt="" class="img">
1640                            </div>
1641        </div>    </div>
1642    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1643    <div class="row">
1644        <div class="col-12">
1645                    </div>
1646    </div>
1647</li>
1648<li class="article-item hover nohover col-12 col-md-6">
1649    <div class="row">
1650            <div class="item-noticia col-12 col-md-8  info">
1651                            <a href="https://www.torrelles.cat/actualitat/agenda/tertulies-filosofiques-un-club
1651-de-lectura-per-pensar-junts.html" target="_self" class="title">Tertúlies filosòfiques, un club de lectura per pensar junts</a>
1652                                    </div>
1653        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/tertulies-filosofiques-un-club-de-lectura-per-pensar-junts.html','_self')">
1654            <div class="default">
1655                                    <span class="data-quadrat tl">
1656                            <span class="day">22</span>
1657                            <span class="month">Oct.</span>
1658                            <span class="year">2026</span>
1659                    </span>
1660                                    <img src="/media/repository/agenda/2026/Mon_comu_Marina_Garces.jpg" alt="" class="img">
1661                            </div>
1662        </div>    </div>
1663    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1664    <div class="row">
1665        <div class="col-12">
1666                    </div>
1667    </div>
1668</li>
1669<li class="article-item hover nohover col-12 col-md-6">
1670    <div class="row">
1671            <div class="item-noticia col-12 col-md-8  info">
1672                            <a href="https://www.torrelles.cat/actualitat/agenda/xerrada-danes-pedregades-i-fenomens-atmosferics-extrems.html" target="_self" class="title">Xerrada. "Danes, pedregades i fenòmens atmosfèrics extrems"</a>
1673                                    </div>
1674        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/xerrada-danes-pedregades-i-fenomens-atmosferics-extrems.html','_self')">
1675            <div class="default">
1676                                    <span class="data-quadrat tl">
1677                            <span class="day">23</span>
1678                            <span class="month">Oct.</span>
1679                            <span class="year">2026</span>
1680                    </span>
1681                                    <img src="/media/repository/agenda/2026/Xerrada_Enric_Agud_2026_IG.png" alt="" class="img">
1682                            </div>
1683        </div>    </div>
1684    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1685    <div class="row">
1686        <div class="col-12">
1687                    </div>
1688    </div>
1689</li>
1690<li class="article-item hover nohover col-12 col-md-6">
1691    <div class="row">
1692            <div class="item-noticia col-12 col-md-8  info">
1693                            <a href="https://www.torrelles.cat/actualitat/agenda/trobada-de-puntaires.html" target="_self" class="title">Trobada de puntaires</a>
1694                                    </div>
1695        <div class="order-first col-12 col-md-4 image " onclick="redirect('https://www.torrelles.cat/actualitat/agenda/trobada-de-puntaires.html','_self')">
1696            <div class="default">
1697                                    <span class="data-quadrat tl">
1698                            <span class="day">25</span>
1699                            <span class="month">Oct.</span>
1700                            <span class="year">2026</span>
1701                    </span>
1702                                    <img src="/media/repository/agenda/2026/Cartell_Trobada_de_puntaires_2026.jpg" alt="Cartell puntaires" class="img">
1703                            </div>
1704        </div>    </div>
1705    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1706    <div class="row">
1707        <div class="col-12">
1708                    </div>
1709    </div>
1710</li>
1711
1712  </ul>
1713  <a class="readMore" href="/actualitat/agenda/" target="_self">Tota l'agenda</a></div></div></div>  </div></div></div>  </div></div><div class="js-widget o-widget o-widget-contenidor  o-widget-contenidor--columnes  col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContainer " data-id="81" >  <div class="o-widget-wrapper clearfix default-BX   row " data-id="81"><div class="o-widget-container  row"><div class="view-5 js-widget o-widget o-widget--mosaicFlexible contentView-38 o-widget--websmunicipals col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetContentsList " data-id="126" >  <div class="o-widget-wrapper clearfix backgroundTitleLine-BX   row  o-widget-wrapper--title-top o-widget-wrapper--title-style-line" data-id="126"><div class="o-widget-title-slot o-widget__title_Line"><span>Webs Municipals</span></div><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="dinamic mosaic-flexible">
1714        <ul class="clear article-list row gx-5 justify-content-start liststylenone">
1715      <li class="article-item hover nohover col-12 col-md-3">
1716    <div class="row">
1717            <div class="item-noticia col-12 col-md-12  info">
1718                            <a href="https://participa311-torrelles.diba.cat/" target="_blank" class="title">Participa311 Torrelles</a>
1719                                    </div>
1720        <div class="order-first col-12 col-md-0 image " onclick="redirect('https://participa311-torrelles.diba.cat/','_blank')">
1721            <div class="default">
1722                                    <img src="/media/repository/Web_Municipals/participav2.png" alt="Talls de Llum" class="img">
1723                            </div>
1724        </div>    </div>
1725    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1726    <div class="row">
1727        <div class="col-12">
1728                    </div>
1729    </div>
1730</li>
1731<li class="article-item hover nohover col-12 col-md-3">
1732    <div class="row">
1733            <div class="item-noticia col-12 col-md-12  info">
1734                            <a href="https://www.torrelles.cat/media/repository/documents_generics/objectes_perduts/Objectes_Perduts14-04-2026.pdf" target="_self" class="title">Objectes Perduts</a>
1735                                    </div>
1736        <div class="order-first col-12 col-md-0 image " onclick="redirect('https://www.torrelles.cat/media/repository/documents_generics/objectes_perduts/Objectes_Perduts14-04-2026.pdf','_self')">
1737            <div class="default">
1738                                    <img src="/media/repository/Web_Municipals/banner_objectes_perduts.png" alt="Objectes Perduts" class="img">
1739                            </div>
1740        </div>    </div>
1741    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1742    <div class="row">
1743        <div class="col-12">
1744                    </div>
1745    </div>
1746</li>
1747<li class="article-item hover nohover col-12 col-md-3">
1748    <div class="row">
1749            <div class="item-noticia col-12 col-md-12  info">
1750                            <a href="https://cemcancoll.reservaplay.cat/" target="_blank" class="title">Reserva les pistes de Pàdel i Tennis</a>
1751                                    </div>
1752        <div class="order-first col-12 col-md-0 image " onclick="redirect('https://cemcancoll.reservaplay.cat/','_blank')">
1753            <div class="default">
1754                                    <img src="/media/repository/Web_Municipals/banner_pistespadel.png" alt="Reserva les pistes de Pàdel i Tennis" class="img">
1755                            </div>
1756        </div>    </div>
1757    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1758    <div class="row">
1759        <div class="col-12">
1760                    </div>
1761    </div>
1762</li>
1763<li class="article-item hover nohover col-12 col-md-3">
1764    <div class="row">
1765            <div class="item-noticia col-12 col-md-12  info">
1766                            <a href="https://www.whatsapp.com/channel/0029Vb8x6zA42DcetKQI4R16" target="_blank" class="title">Canal de WhatsApp</a>
1767                                    </div>
1768        <div class="order-first col-12 col-md-0 image " onclick="redirect('https://www.whatsapp.com/channel/0029Vb8x6zA42DcetKQI4R16','_blank')">
1769            <div class="default">
1770                                    <img src="/media/repository/Web_Municipals/Torrelles_de_Llobregat.png" alt="Canal de WhatsApp" class="img">
1771                            </div>
1772        </div>    </div>
1773    <!-- Media icons section: shown AFTER text and image when enabled in view params -->
1774    <div class="row">
1775        <div class="col-12">
1776                    </div>
1777    </div>
1778</li>
1779
1780  </ul>
1781  </div></div></div>  </div></div></div>  </div></div></div>  </div></div>                </div>
1782            </div>
1783        </main>
1784        <footer id="footer-content" tabindex="-1">
1785            <div class="js-widget o-widget o-widget--footer o-widget-contenidor  clearfix boxBX  WidgetContainer " data-id="76" >  <div class="o-widget-wrapper clearfix default-BX  " data-id="76"><div class="o-widget-container  row"><div class="view-6 js-widget o-widget col-xs-12 col-sm-12 col-md-12 col-lg-12 clearfix boxBX  WidgetLegacyFooter " data-id="83" >  <div class="o-widget-wrapper clearfix default-BX  " data-id="83"><div class="o-widget-container "><div class="js-widget__content o-widget__content clearfix "><div class="footer">
1786    <div class="shortcuts">
1787    <div class="container-xl">            
1788        <div class="featuredItem responsiveHeight">
1789    <h2 class="title">RSS</h2>
1790    <p class="subtitle">L'actualitat a un clic</p>
1791    <ul id="cm_rss">
1792        <li style="background-image: url('/themes/torrellesdellobregat/images/ico_16_rss.png');">
1793    <a href="/rss/12">
1794           Agenda    </a>
1795</li>
1796<li style="background-image: url('/themes/torrellesdellobregat/images/ico_16_rss.png');">
1797    <a href="/rss/13">
1798           Avisos    </a>
1799</li>
1800<li style="background-image: url('/themes/torrellesdellobregat/images/ico_16_rss.png');">
1801    <a href="/rss/23">
1802           Dia a Dia    </a>
1803</li>
1804<li style="background-image: url('/themes/torrellesdellobregat/images/ico_16_rss.png');">
1805    <a href="/rss/11">
1806           Notícies    </a>
1807</li>
1808<li style="background-image: url('/themes/torrellesdellobregat/images/ico_16_rss.png');">
1809    <a href="/rss/14">
1810           Publicacions    </a>
1811</li>
1812    </ul>
1813</div>
1814<div class="featuredItem responsiveHeight">
1815    <h2 class="title">Adreces i telèfons</h2>
1816    
1817    <img width="96" height="96" src="/themes/torrellesdellobregat/images/icons/plugin_home.png" alt="">
1818
1819    <p class="elem_button">
1820        <a href="/adreces-i-telefons" aria-label="Adreces i telèfons">
1821            Accedeix        </a>
1822    </p>
1823</div>
1824<div class="featuredItem">
1825    <h2 class="title">Meteo</h2>
1826    <div id="cm_meteocat">
1827        <ul class="bxslider">
1828            <li>
1829    Dijous, 1 d’octubre    <img width="80" height="80"
1830        alt="entre poc i mig ennuvolat"
1831        src="/themes/torrellesdellobregat/images/meteocat/nuvolina.png"
1832    >
1833    <p>
1834        T.Màx: 27&deg;
1835        <br>
1836        T.Min: 21&deg;
1837    </p>
1838            <p>
1839            Tarda
1840            <img alt="entre mig i molt ennuvolat" width="24" height="24"
1841                src="/themes/torrellesdellobregat/images/meteocat/nuvol.png"
1842            >
1843        </p>
1844    </li>
1845<li>
1846    Divendres, 2 d’octubre    <img width="80" height="80"
1847        alt="sol i núvols alts"
1848        src="/themes/torrellesdellobregat/images/meteocat/nubsol.png"
1849    >
1850    <p>
1851        T.Màx: 27&deg;
1852        <br>
1853        T.Min: 19&deg;
1854    </p>
1855            <p>
1856            Tarda
1857            <img alt="entre poc i mig ennuvolat" width="24" height="24"
1858                src="/themes/torrellesdellobregat/images/meteocat/nuvolina.png"
1859            >
1860        </p>
1861    </li>
1862        </ul>
1863        <div class="outside">
1864            <p><span id="slider-prev"></span><span id="slider-next"></span></p>
1865        </div>
1866
1867    </div>
1868</div>
1869<div class="featuredItem responsiveHeight">
1870    <h2 class="title">Butlletí digital</h2>
1871    <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt="">
1872    <p class="elem_button">
1873        <a href="/actualitat/butlleti-digital" aria-label="Butlletí digital">
1874            Subscriu-te        </a>
1875    </p>
1876</div>
1877<div id="cm_planol" class="featuredItem responsiveHeight">
1878    <h2 class="title">Plànol / Carrers</h2>
1879
1880    <img width="96" height="96" src="/themes/torrellesdellobregat/images/icons/plugin_map.png" alt="">
1881
1882    <p class="elem_button">
1883        <a href="/torrelles/guia-de-carrers--planol" aria-label="Plànol">
1884            Accedeix        </a>
1885    </p>
1886</div>
1887    </div>
1888</div>
1889    <div class="hightlights">
1890        <div class="container-xl">
1891                    </div>
1892    </div>
1893    <nav class="menu" aria-label="Peu de menú">
1894        <ul class="container-xl sitemap">
1895            <li class="page-1 Inferior">  <a class="page-1" href="/ajuntament" target="_self" >Ajuntament  </a><ul id="footer-menu-1"><li class="subMenuPage-8">  <a class="subMenuPage-8" href="/ajuntament/govern" target="_self" >Govern  </a></li><li class="subMenuPage-18">  <a class="subMenuPage-18" href="/ajuntament/anuncis-edictes" target="_self" >Anuncis / Edictes  </a></li><li class="subMenuPage-126">  <a class="subMenuPage-126" href="/ajuntament/normativa" target="_self" >Normativa  </a></li><li class="subMenuPage-144">  <a class="subMenuPage-144" href="/ajuntament/informacio-economica-i-contractual" target="_self" >Informació econòmica i contractual  </a></li><li class="subMenuPage-146">  <a class="subMenuPage-146" href="/ajuntament/oferta-publica-docupacio" target="_self" >Oferta pública d'ocupació  </a></li><li class="subMenuPage-122">  <a class="subMenuPage-122" href="/ajuntament/seu-electronica" target="_self" >Seu electrònica  </a></li><li class="subMenuPage-123">  <a class="subMenuPage-123" href="/ajuntament/transparencia" target="_self" >Transparència  </a></li></ul></li><li class="page-10 Inferior">  <a class="page-10" href="/tramits-i-serveis" target="_self" >Tràmits i Serveis  </a><ul id="footer-menu-10"><li class="subMenuPage-82">  <a class="subMenuPage-82" href="/tramits-i-serveis/oficines-municipals" target="_self" >Oficines municipals  </a></li><li class="subMenuPage-31">  <a class="subMenuPage-31" href="/tramits-i-serveis/tramits-i-gestions" target="_self" >Tràmits i gestions  </a></li><li class="subMenuPage-90">  <a class="subMenuPage-90" href="/tramits-i-serveis/el-meu-espai" target="_self" >El Meu Espai  </a></li><li class="subMenuPage-141">  <a class="subMenuPage-141" href="/tramits-i-serveis/notificacions-electroniques" target="_self" >Notificacions electròniques  </a></li><li class="subMenuPage-143">  <a class="subMenuPage-143" href="/tramits-i-serveis/verificacio-de-documents" target="_self" >Verificació de documents  </a></li><li class="subMenuPage-88">  <a class="subMenuPage-88" href="/tramits-i-serveis/factura-electronica" target="_self" >Factura electrònica  </a></li><li class="subMenuPage-140">  <a class="subMenuPage-140" href="/tramits-i-serveis/cataleg-de-serveis" target="_self" >Catàleg de Serveis  </a></li><li class="subMenuPage-133">  <a class="subMenuPage-133" href="/tramits-i-serveis/finestreta-unica-empresarial-fue" target="_self" >Finestreta Única Empresarial (FUE)  </a></li><li class="subMenuPage-32">  <a class="subMenuPage-32" href="/tramits-i-serveis/impostos" target="_self" >Impostos  </a></li><li class="subMenuPage-175">  <a class="subMenuPage-175" href="/tramits-i-serveis/canal-intern-dalertes" target="_self" >Canal intern d'alertes  </a></li></ul></li><li class="page-2 Inferior">  <a class="page-2" href="/torrelles" target="_self" >Torrelles  </a><ul id="footer-menu-2"><li class="subMenuPage-46">  <a class="subMenuPage-46" href="/torrelles/historia" target="_self" >Història  </a></li><li class="subMenuPage-41">  <a class="subMenuPage-41" href="/torrelles/llocs-dinteres" target="_self" >Llocs d'interès  </a></li><li class="subMenuPage-34">  <a class="subMenuPage-34" href="/torrelles/com-arribar-hi" target="_self" >Com arribar-hi  </a></li><li class="subMenuPage-35">  <a class="subMenuPage-35" href="/torrelles/transport-public" target="_self" >Transport públic  </a></li><li class="subMenuPage-36">  <a class="subMenuPage-36" href="/torrelles/guia-de-carrers--planol" target="_self" >Guia de carrers / Plànol  </a></li><li class="subMenuPage-129">  <a class="subMenuPage-129" href="/torrelles/rutes" target="_self" >Rutes  </a></li><li class="subMenuPage-48">  <a class="subMenuPage-48" href="/torrelles/informacio-geografica" target="_self" >Informació geogràfica  </a></li><li class="subMenuPage-37">  <a class="subMenuPage-37" href="/torrelles/equipaments" target="_self" >Equipaments  </a></li><li class="subMenuPage-40">  <a class="subMenuPage-40" href="/torrelles/entitats-i-associacions" target="_self" >Entitats i associacions  </a></li><li class="subMenuPage-50">  <a class="subMenuPage-50" href="/torrelles/festes-i-fires" target="_self" >Festes i fires  </a></li><li class="subMenuPage-47">  <a class="subMenuPage-47" href="/torrelles/el-municipi-en-xifres" target="_self" >El municipi en xifres  </a></li></ul></li><li class="page-4 Inferior">  <a class="page-4" href="/actualitat" target="_self" >Actualitat  </a><ul id="footer-menu-4"><li class="subMenuPage-128">  <a class="subMenuPage-128" href="/actualitat/avisos" target="_self" >Avisos  </a></li><li class="subMenuPage-53">  <a class="subMenuPage-53" href="/actualitat/noticies" target="_self" >Notícies  </a></li><li class="subMenuPage-54">  <a class="subMenuPage-54" href="/actualitat/agenda" target="_self" >Agenda  </a></li><li class="subMenuPage-55">  <a class="subMenuPage-55" href="/actualitat/butlleti-digital" target="_self" >Butlletí digital  </a></li><li class="subMenuPage-56">  <a class="subMenuPage-56" href="/actualitat/revista-municipal" target="_self" >Revista municipal  </a></li><li class="subMenuPage-149">  <a class="subMenuPage-149" href="/actualitat/xarxes-socials" target="_self" >
1895Xarxes Socials  </a></li><li class="subMenuPage-57">  <a class="subMenuPage-57" href="/actualitat/rss" target="_self" >RSS  </a></li><li class="subMenuPage-58">  <a class="subMenuPage-58" href="/actualitat/hemeroteca" target="_self" >Hemeroteca  </a></li></ul></li><li class="page-93 Inferior">  <a class="page-93" href="/temes" target="_self" >Temes  </a><ul id="footer-menu-93"><li class="subMenuPage-139">  <a class="subMenuPage-139" href="/temes/activitat-economica-i-turisme" target="_self" >Activitat econòmica i turisme  </a></li><li class="subMenuPage-134">  <a class="subMenuPage-134" href="/temes/cooperacio-i-solidaritat" target="_self" >Cooperació i solidaritat  </a></li><li class="subMenuPage-159">  <a class="subMenuPage-159" href="/temes/cultura-i-esdeveniments" target="_self" >Cultura i esdeveniments  </a></li><li class="subMenuPage-136">  <a class="subMenuPage-136" href="/temes/educacio-i-formacio" target="_self" >Educació i formació  </a></li><li class="subMenuPage-138">  <a class="subMenuPage-138" href="/temes/esports" target="_self" >Esports  </a></li><li class="subMenuPage-137">  <a class="subMenuPage-137" href="/temes/gent-gran" target="_self" >Gent gran  </a></li><li class="subMenuPage-135">  <a class="subMenuPage-135" href="/temes/govern-obert" target="_self" >Govern obert  </a></li><li class="subMenuPage-160">  <a class="subMenuPage-160" href="/temes/igualtat" target="_self" >Igualtat  </a></li><li class="subMenuPage-151">  <a class="subMenuPage-151" href="/temes/joves" target="_self" >Joves  </a></li><li class="subMenuPage-152">  <a class="subMenuPage-152" href="/temes/medi-ambient-i-sostenibilitat" target="_self" >Medi ambient i sostenibilitat  </a></li><li class="subMenuPage-153">  <a class="subMenuPage-153" href="/temes/mobilitat-i-transport" target="_self" >Mobilitat i transport  </a></li><li class="subMenuPage-154">  <a class="subMenuPage-154" href="/temes/pagesia" target="_self" >Pagesia  </a></li><li class="subMenuPage-155">  <a class="subMenuPage-155" href="/temes/participacio" target="_self" >Participació  </a></li><li class="subMenuPage-156">  <a class="subMenuPage-156" href="/temes/seguretat-ciutadana" target="_self" >Seguretat ciutadana  </a></li><li class="subMenuPage-157">  <a class="subMenuPage-157" href="/temes/serveis-a-les-persones" target="_self" >Serveis a les persones  </a></li><li class="subMenuPage-158">  <a class="subMenuPage-158" href="/temes/urbanisme-obres-i-via-publica" target="_self" >Urbanisme, obres i via pública  </a></li></ul></li>        </ul>
1896    </nav>
1897    <div class="links">
1898        <div class="container-xl">
1899            <div class="row">
1900                <div class="xxss col-md-6 col-sm-6 col-lg-6 middle">                
1901                        <span class="titol">Xarxes socials:</span>
1902  
1903    <a target="_blank" aria-label="Twitter" href="https://twitter.com/AjTorrelles" title="Obre en finestra nova: Twitter">
1904        <span style="display: none">Twitter</span>
1905        <img src="/themes/torrellesdellobregat/images/icons/social/twitter.png" alt="Twitter" width="32" height="32">
1906    </a>
1907  
1908    <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/torrelles.cat" title="Obre en finestra nova: Facebook">
1909        <span style="display: none">Facebook</span>
1910        <img src="/themes/torrellesdellobregat/images/icons/social/facebook.png" alt="Facebook" width="32" height="32">
1911    </a>
1912  
1913    <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/channel/UCe-pqbfpeD4kApMGgeCiN7Q" title="Obre en finestra nova: Youtube">
1914        <span style="display: none">Youtube</span>
1915        <img src="/themes/torrellesdellobregat/images/icons/social/youtube.png" alt="Youtube" width="32" height="32">
1916    </a>
1917  
1918    <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajtorrelles/" title="Obre en finestra nova: Instagram">
1919        <span style="display: none">Instagram</span>
1920        <img src="/themes/torrellesdellobregat/images/icons/social/instagram.png" alt="Instagram" width="32" height="32">
1921    </a>
1922  
1923    <a target="_blank" aria-label="Whatsapp" href="https://whatsapp.com/channel/0029Vb8x6zA42DcetKQI4R16" title="Obre en finestra nova: Whatsapp">
1924        <span style="display: none">Whatsapp</span>
1925        <img src="/front/view/images/icons/social/whatsapp.png" alt="Whatsapp" width="32" height="32">
1926    </a>
1927                </div>
1928                <div class="col-md-6 col-sm-6 col-lg-6 middle">
1929                    <nav class="menu"><ul id="Inferior2"><li class="page-63">  <a href="/altres-continguts/credits" target="_self" >Crèdits  </a></li><li class="page-62">  <a href="/altres-continguts/contacte" target="_self" >Contacte  </a></li><li class="page-60">  <a href="/altres-continguts/proteccio-de-dades" target="_self" >Protecció de dades  </a></li><li class="page-59">  <a href="/altres-continguts/avis-legal" target="_self" >Avís legal  </a></li><li class="page-61">  <a href="/altres-continguts/accessibilitat" target="_self" >Accessibilitat  </a></li></ul></nav>                </div>
1930            </div>
1931        </div>
1932    </div>
1933    <div class="contact">
1934        <div class="container-xl">
1935            <div class="row">
1936                <address class="address col-md-6 col-sm-6 col-lg-6">
1937    <div class="title">
1938        Ajuntament de Torrelles de Llobregat    </div>
1939    Plaça Ajuntament, 1<br>08629 Torrelles de Llobregat<br>Tel. 936 890 000<br>NIF P0828900A<br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner">
1940    <div class="title">
1941        Amb la col·laboració de:    </div>
1942    <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona">
1943        <span style="display: none">Diputació de Barcelona</span>
1944        <img src="/front/view//images/logoDiba/Blanc.svg" alt="Diputació de Barcelona" class="logo-diba">
1945    </a>
1946</div>            </div>
1947        </div>
1948    </div>
1949</div>
1950</div></div>  </div></div></div>  </div></div>        </footer>
1951        <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1952<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1952
1952
1953<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1953
1953
1954<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790855795"></script>
vendor: 1 bytes, line 1954
1954
1955<script src="/front/view/js/bower_components/jscal/index.js?ver=1790855795"></script>
vendor: 1 bytes, line 1955
1955
1956<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1956
1956
1957<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790855795"></script>
vendor: 1 bytes, line 1957
1957
1958<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1958
1958
1959<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1959
1959
1960<script src="/front/view/js/constants.js?ver=1790855795"></script>
vendor: 1 bytes, line 1960
1960
1961<script src="/front/view/js/functions.js?ver=1790855795"></script>
vendor: 1 bytes, line 1961
1961
1962<script src="/front/view/js/functions/footer.js?ver=1790855795"></script>
vendor: 1 bytes, line 1962
1962
1963<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790855795"></script>
vendor: 1 bytes, line 1963
1963
1964<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790855795"></script>
vendor: 1 bytes, line 1964
1964
1965<script>
1966    $(document).ready(function(){
1967                    $("a[rel^='prettyPhoto']").prettyPhoto();
1968            $("a[rel^='prettyFrame']").prettyPhoto();
1969            });
1970</script>
vendor: 1 bytes, line 1970
1970
1971<script>
1972        var TWITTER = null;
1973            var FACEBOOK = null;
1974        $(window).on("load", function() {
1975        start();
1976    });
1977        
1978    // Initialize Select2 with icon support for category filter
1979    $(document).ready(function() {
1980        if ($('#categoryFilter').length) {
1981            $('#categoryFilter').select2({
1982                templateResult: function(option) {
1983                    if (!option.id) return option.text;
1984                    var icon = $(option.element).data('icon');
1985                    if (!icon) return option.text;
1986                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1987                },
1988                templateSelection: function(option) {
1989                    if (!option.id) return option.text;
1990                    var icon = $(option.element).data('icon');
1991                    if (!icon) return option.text;
1992                    return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>');
1993                },
1994                allowHtml: true
1995            });
1996        }
1997    });
1998</script>
1998
1999        <!-- CSS final-->
2000
2001        
2001<script>
2002          const css = "div.view-6  .o-widget-wrapper {\n  border: 0;\n}\n";
2003          const style = document.createElement('style');
2004          style.textContent = css;
2005          document.head.appendChild(style);
2006        </script>
2006
2007
2008        <!-- Start Modal views-->
2009        
2010        <div class="modal fade" id="videoModal" tabindex="-1" role="dialog"  aria-hidden="true">
2011    <div class="modal-dialog modal-dialog-centered" role="document">
2012        <div class="modal-content">
2013            <div class="modal-header">
2014                <div class="title-head"></div>
2015            </div>
2016            <div class="modal-body">
2017                <div class="tiktok-div-embed"></div>
2018                <iframe id="iframeVideo" title="Vídeo" class="iframeVideo" allowfullscreen></iframe>
2019
2020            </div>
2021            <div class="modal-footer">
2022                <span id="titleVideo" class="titleVideo"></span>
2023                <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a>
2024
2025            </div>
2026        </div>
2027    </div>
2028</div>        <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog"  aria-hidden="true">
2029    <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document">
2030        <div class="modal-content">
2031            <div class="modal-header">
2032                <div class="title-head"></div>
2033            </div>
2034            <div class="modal-body">
2035                <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe>
2036            </div>
2037            <div class="modal-footer">
2038                <span id="titlePdf" class="titlePdf"></span>
2039                <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a>
2040            </div>
2041        </div>
2042    </div>
2043</div>        <!-- End Modal views -->
2044        
2044<script src="/front/view/js/endScript.js?ver=1790855795"></script>
2044
2045        <!-- Només activar per desenvolupament
2046        
2046<script src="../../../node_modules/axe-core/axe.js"></script>
2046
2047        
2047<script src="../../../dist/my-first-webpack.bundle.js"></script>
2047
2048        -->
2049                
2049<script>
2050            $(document).ready(function () {
2051                startClock(1790855796);
2052                if (typeof (callMenuAfterJQueryLoaded) == "function") {
2053                    callMenuAfterJQueryLoaded();
2054                }
2055                
2056                datepickerInit();
2057                carouselControlSmall();
2058
2059                if (typeof (callMenuBeforeJQueryLoaded) == "function") {
2060                    callMenuBeforeJQueryLoaded();
2061                }
2062
2063                if (typeof (callMenuBeforeTopJQueryLoaded) == "function") {
2064                    callMenuBeforeTopJQueryLoaded();
2065                }
2066                addAttributesDivVcards();
2067                modalsImage();
2068                modalsPdf();
2069                translateWeb();
2070                var carousel = $('#carouselControls');
2071                carousel.on('slide.bs.carousel', function (event) {
2072                    toSlideImage(event);
2073                });
2074                /** Només activar per desenvolupament
2075                axe.configure({
2076                    locale: {
2077                        lang: 'es',
2078                    }
2079                });
2080
2081                axe.run().then(results => {
2082                        if (results.violations.length) {
2083                            console.log(results.violations);
2084                            throw new Error('Accessibility issues found');
2085                        }
2086                    })
2087                    .catch(err => {
2088                        console.log('Something bad happened:', err.message);
2089                    });
2090                */
2091            });
2092
2093            $(window).resize(function() {
2094                equalHeightIconTime();
2095            })
2096        </script>
2096
2097                    </body>
2098</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.