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&loading=async&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'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&prev=_t&hl=esie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=es" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=es">Castellà </a></li> 162 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=en" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=en">Anglès</a></li> 163 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=de" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=de">Alemany</a></li> 164 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.torrelles.cat/&sl=ca&tl=fr" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.torrelles.cat/&sl=ca&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&codiP=1093&
306tipusSeleccio=poblacio&oper=View&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'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'Oferta Pública d'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'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'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'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° 1835 <br> 1836 T.Min: 21° 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° 1852 <br> 1853 T.Min: 19° 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.