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="Contactar - Ajuntament de Sant Quintà de Mediona"> 8<meta name="description" lang="ca" content=""> 9<meta name="author" lang="ca" content="Ajuntament de Sant Quintà de Mediona"> 10<meta name="date" lang="ca" content="2014-12-22 09:51:38"> 11<meta name="generator" lang="ca" content="Ajuntament de Sant Quintà de Mediona"> 12<meta name="robots" content="index, follow"> 13 14 <title>Contactar - Ajuntament de Sant Quintà de Mediona</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-WS6QKN4F6H
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-WS6QKN4F6H
vendor: 8 bytes, lines 23-24
23'); 24
24// Creates the default tracker. 25 gtag('event', 'page_view', { 'send_to': 'G-WS6QKN4F6H' }); 26</script>
26 27<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--><!-- Global Site Tag (gtag.js) - Google Analytics v4-->
vendor: 124 bytes, lines 27-28
27 28<script type="text/plain" data-type="text/javascript" data-name="ga" data-src="https://www.googletagmanager.com/gtag/js?id=
28UA-170781869-1
vendor: 12 bytes, line 28
28"></script>
29<script type="text/plain" data-type="text/javascript" data-name="ga"> 30
vendor: 140 bytes, lines 30-34
30window.dataLayer = window.dataLayer || []; 31 function gtag(){dataLayer.push(arguments);} 32 gtag('js', new Date()); 33 34 gtag('config', '
34UA-170781869-1
vendor: 8 bytes, lines 34-35
34'); 35
35// Creates the default tracker. 36 gtag('event', 'page_view', { 'send_to': 'UA-170781869-1' }); 37</script>
37 38<!-- End of code Global Site Tag (gtag.js) - Google Analytics v4--> 39 <link rel="canonical" href="/altres-continguts/contactar"> 40 41 <link rel="stylesheet" href="/front/view/js/bower_components/bootstrap/dist/css/bootstrap.min.css?ver=1790946923"> 42<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css?ver=1790946923"> 43<link rel="stylesheet" href="/front/view/js/bower_components/bootstrap-icons.min/index.css?ver=1790946923"> 44<link rel="stylesheet" href="/front/view/js/bower_components/tempus-dominus.min.css/index.css?ver=1790946923"> 45<link rel="stylesheet" href="/common/bower_components/select2/dist/css/select2.min.css?ver=1790946923"> 46 47 <!-- Real Favicon Genenrator--> 48<link rel="apple-touch-icon" href="/themes/santquintidemediona/images/favicons/apple-touch-icon.png"> 49<link rel="icon" type="image/png" href="/themes/santquintidemediona/images/favicons/favicon-16x16.png" sizes="16x16"> 50<link rel="icon" type="image/png" href="/themes/santquintidemediona/images/favicons/favicon-32x32.png" sizes="32x32"> 51<link rel="shortcut icon" href="/themes/santquintidemediona/images/favicons/favicon.ico"> 52
52<script src="/front/controller/klaro-config.php"></script>
vendor: 1 bytes, line 52
52
53<script> 54 // Fallback defensiu: si per algun motiu el PHP no retorna la configuració, 55 // assegurem una configuració mÃnima perquè Klaro no falli i mostri el banner. 56 window.klaroConfig = window.klaroConfig || { 57 version: '1.0', 58 elementID: 'klaro', 59 storageMethod: 'cookie', 60 storageName: 'klaro', 61 cookieName: 'klaro', 62 htmlTexts: true, 63 acceptAll: true, 64 hideDeclineAll: false, 65 services: [] 66 }; 67</script>
vendor: 1 bytes, line 67
67
68<script src="/front/view/js/klaro.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 68
68
69<script src="/front/view/js/klaro-init.js?ver=1790946923"></script>
69 70 71 <!-- Twitter Card data --> 72<meta name="twitter:card" content="summary"> 73<meta name="twitter:title" content="Contactar"> 74<meta name="twitter:description" content="Web oficial de l'Ajuntament de Sant Quintà de Mediona: informació municipal, trà mits, notÃcies, agenda, directori... Pl. Església, 4. 08777. T. 938 998 028"> 75<meta name="twitter:image" content="https://www.santquintimediona.cat/themes/santquintidemediona/images/logos/header.png"> 76 <meta name="twitter:image:alt" content="Logo"> 77 <!-- Open Graph data --> 78<meta property="og:title" content="Contactar"> 79<meta property="og:type" content="website"> 80<meta property="og:url" content="https://www.santquintimediona.cat/altres-continguts/contactar"> 81<meta property="og:image" content="https://www.santquintimediona.cat/themes/santquintidemediona/images/logos/header.png"> 82 <meta property="og:image:alt" content="Logo"> 83 <meta property="og:image" content="https://www.santquintimediona.cat/themes/santquintidemediona/images/logos/header_inv.png"> 84 <meta property="og:image:alt" content="Logo invertit"> 85 <meta property="og:description" content="Web oficial de l'Ajuntament de Sant Quintà de Mediona: informació municipal, trà mits, notÃcies, agenda, directori... Pl. Església, 4. 08777. T. 938 998 028"> 86<meta property="og:site_name" content="Ajuntament de Sant Quintà de Mediona"> 87 88 <!-- HTML5 compatible tags -->
89<script> 90 document.createElement('header'); 91 document.createElement('footer'); 92 document.createElement('section'); 93 document.createElement('aside'); 94 document.createElement('nav'); 95 document.createElement('article'); 96 document.createElement('hgroup'); 97 document.createElement('lh'); 98</script>
98 99
99<script>window.mapsConfig = { layerType: 'OpenStreetMap_Mapnik' };</script>
99 100<link rel="stylesheet" href="/front/view/js/bower_components/FreezeUI/freeze-ui.min.css"> 101<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/leaflet.css"> 102<link rel="stylesheet" href="/front/view/js/bower_components/Leaflet/default/Control.Loading.css">
103<script src="/front/view/js/bower_components/FreezeUI/freeze-ui.min.js"></script>
vendor: 1 bytes, line 103
103
104<script src="/front/view/js/bower_components/Leaflet/default/leaflet.js"></script>
vendor: 1 bytes, line 104
104
105<script src="/front/view/js/bower_components/es6-promise/es6-promise.min.js"></script>
vendor: 1 bytes, line 105
105
106<script>ES6Promise.polyfill();</script>
vendor: 1 bytes, line 106
106
107<script src='/front/view/js/bower_components/Leaflet/default/Leaflet.GoogleMutant.js'></script>
vendor: 1 bytes, line 107
107
108<script src="/front/view/js/googleMapsInit.js"></script>
vendor: 1 bytes, line 108
108
109<script type="text/plain" data-type="text/javascript" data-name="maps" data-src="https://maps.google.com/maps/api/js?key=AIzaSyDzMQfPcdyACxfYosZzQs43alxB8BKfkx8&loading=async&callback=onGoogleMapsReady"></script>
vendor: 1 bytes, line 109
109
110<script src="/front/view/js/bower_components/Leaflet/default/leaflet.maps.js"></script>
vendor: 1 bytes, line 110
110
111<script src="/front/view/js/bower_components/Leaflet/default/leaflet.clone.js"></script>
vendor: 1 bytes, line 111
111
112<script src="/front/view/js/bower_components/Leaflet/default/Control.Loading.js"></script>
vendor: 1 bytes, line 112
112
113<script src="/front/view/js/bower_components/jquery.min/index.js"></script>
vendor: 1 bytes, line 113
113
114<script src="/front/view/js/maps.js"></script>
114 <!-- Init addHeadExtraStyles --> 115 <style>html body{font-size:1em !important;} </style> 116 <!-- End addHeadExtraStyles --> 117 <!-- Font Awesome 7 + v4-shims for backward compatibility --> 118 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" rel="stylesheet"> 119 <link href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/v4-shims.min.css" rel="stylesheet"> 120 <!-- Popperjs + Tempus Dominus --> 121
121<script src="/front/view/js/bower_components/popper.min/index.js?ver=1790946923"></script>
vendor: 1 bytes, line 121
121
122<script src="/front/view/js/bower_components/tempus-dominus.min.js/index.js?ver=1790946923"></script>
122 123 <link rel="stylesheet" media="all" href="/themes/santquintidemediona/styles/style.min.css?ver=1790946923"> 124 </head> 125 <body class="page id-62"> 126 <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="#readspeakerPage">Saltar al contingut</a></li><li><a href="#footer-content">Saltar al peu de pà gina</a></li></ul></nav> <header id="site-header" tabindex="-1"> 127 <div class="toolbar clearfix"> 128 <div class="container-xl"> 129 <div class="fright"> 130 <div class="toolbarItem"> 131 <div class="toolbarItem page-62 page-contactar current"> 132 <a 133 href="/altres-continguts/contactar" 134 target="_self" 135 rel="" 136 > 137 Contactar </a> 138</div> 139</div> <div class="toolbarItem"> 140 <div id="toolbarLanguages"> 141 <ul id="languages"> 142 <li><a href="#" role="button" aria-expanded="false" aria-controls="languagesList" id="languagesToggle">Idiomes</a> 143 <ul id="languagesList"> 144 <li><a class="link-language" href="https://www.santquintimediona.cat/altres-continguts/contactar?lang=ca" data-target="https://www.santquintimediona.cat/altres-continguts/contactar?lang=ca">Català </a></li> 145 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=es" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=esie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=es">Castellà </a></li> 146 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=en" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=enie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=en">Anglès</a></li> 147 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=de" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=deie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=de">Alemany</a></li> 148 <li><a class="link-language" href="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=fr" data-target="https://translate.google.es/translate?js=y&prev=_t&hl=frie=UTF-8&u=https://www.santquintimediona.cat/altres-continguts/contactar&sl=ca&tl=fr">Francès</a></li> 149 </ul> 150 </li> 151 </ul> 152</div>
153<script> 154(function () { 155 var toggle = document.getElementById('languagesToggle'); 156 if (!toggle) return; 157 var li = toggle.parentElement; 158 var submenu = li.querySelector('ul'); 159 var links = Array.prototype.slice.call(submenu.querySelectorAll('a')); 160 161 function keyName(e) { 162 return e.key || e.code || e.keyCode; 163 } 164 165 function isSpaceKey(e) { 166 var key = keyName(e); 167 return key === ' ' || key === 'Spacebar' || key === 'Space' || key === 32; 168 } 169 170 function open(focusFirst) { 171 li.classList.add('is-open'); 172 submenu.style.display = 'block'; 173 submenu.style.padding = '1em'; 174 toggle.setAttribute('aria-expanded', 'true'); 175 if (focusFirst && links.length) links[0].focus(); 176 } 177 178 function close() { 179 li.classList.remove('is-open'); 180 submenu.style.display = ''; 181 submenu.style.padding = ''; 182 toggle.setAttribute('aria-expanded', 'false'); 183 } 184 185 function isOpen() { 186 return toggle.getAttribute('aria-expanded') === 'true'; 187 } 188 189 function focusLink(index) { 190 if (!links.length) return; 191 links[(index + links.length) % links.length].focus(); 192 } 193 194 function focusedLinkIndex() { 195 return links.indexOf(document.activeElement); 196 } 197 198 toggle.addEventListener('click', function (e) { 199 e.preventDefault(); 200 isOpen() ? close() : open(false); 201 }); 202 203 toggle.addEventListener('keydown', function (e) { 204 var key = keyName(e); 205 if (key === 'Enter' || isSpaceKey(e)) { 206 e.preventDefault(); 207 isOpen() ? close() : open(false); 208 } else if (key === 'ArrowDown' || key === 40) { 209 e.preventDefault(); 210 open(true); 211 } else if (key === 'ArrowUp' || key === 38) { 212 e.preventDefault(); 213 open(false); 214 focusLink(links.length - 1); 215 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 216 if (isOpen()) { 217 e.preventDefault(); 218 close(); 219 } 220 } 221 }); 222 223 submenu.addEventListener('keydown', function (e) { 224 var key = keyName(e); 225 var index = focusedLinkIndex(); 226 227 if (key === 'ArrowDown' || key === 40) { 228 e.preventDefault(); 229 focusLink(index + 1); 230 } else if (key === 'ArrowUp' || key === 38) { 231 e.preventDefault(); 232 focusLink(index - 1); 233 } else if (key === 'Home' || key === 36) { 234 e.preventDefault(); 235 focusLink(0); 236 } else if (key === 'End' || key === 35) { 237 e.preventDefault(); 238 focusLink(links.length - 1); 239 } else if (isSpaceKey(e)) { 240 e.preventDefault(); 241 if (document.activeElement && document.activeElement.click) { 242 document.activeElement.click(); 243 } 244 } else if (key === 'Escape' || key === 'Esc' || key === 27) { 245 e.preventDefault(); 246 close(); 247 toggle.focus(); 248 } 249 }); 250 251 li.addEventListener('focusout', function () { 252 window.setTimeout(function () { 253 if (!li.contains(document.activeElement)) close(); 254 }, 0); 255 }); 256 257 document.addEventListener('click', function (e) { 258 if (!li.contains(e.target)) close(); 259 }); 260})(); 261</script>
261 262 <div class="currentDate" style='padding:9px;color:white'> 263 <span id="clock" class="clock" title='Data i hora oficial' > 264 02.10.2026 | 15:15 </span> 265</div> </div> 266 </div> 267 </div> 268</div> 269<div class="header "> 270 <div class="branding"> 271 <div class="container-xl"> 272 <div class="row"> 273 <div class="col-md-8 col-sm-8 col-lg-8 logo_box"> 274 <a class="logo" href="/" aria-label="Ajuntament de Sant Quintà de Mediona - Pà gina d'inici"> 275 <img src="/themes/santquintidemediona/images/logos/header.png" alt="" width="367" height="111" id="mainLogo"> 276 </a> 277 </div> <div class="col-md-4 col-sm-4 col-lg-4 middle search_box"> 278 <form id="search_box" aria-label="Cercar:" name="search_box" method="get" action="/search"> 279 <label for="search" accesskey="4"> 280 <span class="visually-hidden">Cercar:</span> 281 </label> 282 <input id="search" name="search" type="text" aria-label="Cercar:" title="Cerca a tot el web" value="" placeholder="Cercar..."> 283 <button type="submit" class="search-button" aria-label="Cerca"><i class="fa fa-search"></i></button> 284 </form> 285</div> 286 </div> 287 </div> 288 </div> 289 <div id="navbar-top" class="navbar navbar-expand-lg navbar-dark"><div class="nav"><div class="container-xl"><div class="row"><div class="col"><nav class="menu_principal" aria-label="menú"><div class="menu-flexible__wrapper menu-font-medium menu-alignment-left menu-spacing-normal menu-animation-fade menu-text-transform-none menu-columns-1" style="--menu-cols:1;--menu-submenu-width:200px;--menu-hover-delay:300ms;--menu-image-width:160px;" data-menu-columns="1" data-expand-type="hover" data-menu-sticky="false" data-menu-alignment="left" data-menu-spacing="normal" data-menu-animation="fade" data-menu-external-icon="auto" data-menu-external-dim="false" data-menu-text-transform="none"><div class="menu-flexible__topbar"><a href="#" class="menu-flexible__toggle phoneMenuButton" aria-label="Menú" aria-expanded="false"><i class="fa fa-bars"></i></a></div><ul class="menu-flexible menu-flexible__list"><li class="menu-flexible__item page-1 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/casa-de-la-vila" ><span class="menu-flexible__item-text">Casa de la vila</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-12 level2"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/salutacio-de-lalcalde" ><span class="menu-flexible__item-text">Salutació de l'alcalde</span></a></li><li class="menu-flexible__item page-8 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/casa-de-la-vila/organitzacio-municipal" ><span class="menu-flexible__item-text">Organització municipal</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-13 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/organitzacio-municipal/el-consistori" ><span class="menu-flexible__item-text">El consistori</span></a></li><li class="menu-flexible__item page-169 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/organitzacio-municipal/grups-politics-municipals" ><span class="menu-flexible__item-text">Grups polÃtics municipals</span></a></li><li class="menu-flexible__item page-14 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/organitzacio-municipal/organigrama" ><span class="menu-flexible__item-text">Organigrama</span></a></li></ul></li><li class="menu-flexible__item page-126 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial" ><span class="menu-flexible__item-text">Informació oficial</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-188 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/ofertes-de-feina" ><span class="menu-flexible__item-text">Ofertes de feina</span></a></li><li class="menu-flexible__item page-80 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/ple-municipal" ><span class="menu-flexible__item-text">
289Ple municipal</span></a></li><li class="menu-flexible__item page-185 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/mocions" ><span class="menu-flexible__item-text">Mocions</span></a></li><li class="menu-flexible__item page-186 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/manifestos" ><span class="menu-flexible__item-text">Manifestos</span></a></li><li class="menu-flexible__item page-20 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/ca/web/santquintidemediona/govern-obert-i-transparencia/accio-de-govern-i-normativa/accio-de-govern-i-partits-politics/acords-de-junta-de-govern" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Juntes de govern</span></a></li><li class="menu-flexible__item page-228 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/normativa" ><span class="menu-flexible__item-text">Normativa</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-232 level4"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/normativa/pla-director-dabastament-daigua-potable-" ><span class="menu-flexible__item-text">Pla Director d'Abastament d'aigua potable </span></a></li><li class="menu-flexible__item page-27 level4"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santquintidemediona/govern-obert-i-transparencia/accio-de-govern-i-normativa/normativa-plans-i-programes/ordenances-reguladores-i-reglaments" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Ordenances municipals</span></a></li><li class="menu-flexible__item page-22 level4"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/normativa/ordenances-fiscals" ><span class="menu-flexible__item-text">Ordenances Fiscals</span></a></li><li class="menu-flexible__item page-229 level4"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/normativa/229-document-unic-de-proteccio-civil-municipal-duprocim" ><span class="menu-flexible__item-text">Document Ãnic de Protecció Civil Municipal (DUPROCIM)</span></a></li><li class="menu-flexible__item page-28 level4"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/normativa/documents-urbanistics" ><span class="menu-flexible__item-text">Documents urbanÃstics</span></a></li></ul></li><li class="menu-flexible__item page-142 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/informacio-oficial/pressupost-municipal" ><span class="menu-flexible__item-text">Pressupost municipal</span></a></li><li class="menu-flexible__item page-24 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://www.seu-e.cat/web/santquintidemediona/govern-obert-i-transparencia/gestio-economica/pressupost" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Plantilla municipal</span></a></li></ul></li><li class="menu-flexible__item page-4 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/casa-de-la-vila/comunicacio" ><span class="menu-flexible__item-text">Comunicació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-235 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/revistes" ><span class="menu-flexible__item-text">Revistes</span></a></li><li class="menu-flexible__item page-16 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/plans-campanyes-i-programes" ><span class="menu-flexible__item-text">Plans, campanyes i programes</span></a></li><li class="menu-flexible__item page-53 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/noticies" ><span class="menu-flexible__item-text">NotÃcies</span></a></li><li class="menu-flexible__item page-54 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/agenda" ><span class="menu-flexible__item-text">Agenda</span></a></li><li class="menu-flexible__item page-128 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/avisos" ><span class="menu-flexible__item-text">Avisos</span></a></li><li class="menu-flexible__item page-55 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/butlleti-digital" ><span class="menu-flexible__item-text">Butlletà digital</span></a></li><li class="menu-flexible__item page-57 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/rss" ><span class="menu-flexible__item-text">Rss</span></a></li><li class="menu-flexible__item page-58 level3"><a class="menu-flexible__link" aria-expanded="false" href="/casa-de-la-vila/comunicacio/hemeroteca" ><span class="menu-flexible__item-text">Hemeroteca</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-2 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/la-vila" ><span class="menu-flexible__item-text">La vila</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-150 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti" ><span class="menu-flexible__item-text">La vila de Sant QuintÃ</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-46 level3"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/la-historia-de-la-vila" ><span class="menu-flexible__item-text">La història de la vila</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-206 level4"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/la-historia-de-la-vila/millenari-de-sant-quinti-1021-2021" ><span class="menu-flexible__item-text">Mil·lenari de Sant Quintà 1021-2021</span></a></li></ul></li><li class="menu-flexible__item page-34 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/com-arribar-hi" ><span class="menu-flexible__item-text">Com arribar-hi</span></a></li><li class="menu-flexible__item page-35 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/transport-public" ><span class="menu-flexible__item-text">Transport públic</span></a></li><li class="menu-flexible__item page-36 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/carrerer" ><span class="menu-flexible__item-text">Carrerer</span></a></li><li class="menu-flexible__item page-184 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/pla-de-barris-" ><span class="menu-flexible__item-text">Pla de Barris </span></a></li><li class="menu-flexible__item page-149 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/la-vila-de-sant-quinti/agermanament-lacq-audejos" ><span class="menu-flexible__item-text">Agermanament Lacq-Audéjos</span></a></li></ul></li><li class="menu-flexible__item page-7 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/la-vila/dades-estadistiques" ><span class="menu-flexible__item-text">Dades estadÃstiques</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-47 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/dades-estadistiques/poblacio" ><span class="menu-flexible__item-text">Població</span></a></li><li class="menu-flexible__item page-49 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/dades-estadistiques/processos-electorals" ><span class="menu-flexible__item-text">Processos electorals</span></a></li></ul></li><li class="menu-flexible__item page-3 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/la-vila/guia-del-municipi" ><span class="menu-flexible__item-text">Guia del municipi</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-37 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/serveis-i-equipaments-municipals" ><span class="menu-flexible__item-text">Serveis i equipaments municipals</span></a></li><li class="menu-flexible__item page-39 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/guia-de-comercos-i-serveis" ><span class="menu-flexible__item-text">Guia de comerços i serveis</span></a></li><li class="menu-flexible__item page-180 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/guia-dempreses-i-industries" ><span class="menu-flexible__item-text">Guia d'empreses i indústries</span></a></li><li class="menu-flexible__item page-208 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://poligonsaltpenedes.com/poligons/sant-quinti-de-mediona/els-vinyets-els-fogars/" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">PolÃgon Els Vinyets - Els Fogars</span></a></li><li class="menu-flexible__item page-40 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/entitats-i-associacions" ><span class="menu-flexible__item-text">Entitats i associacions</span></a></li><li class="menu-flexible__item page-42 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/submnistraments" ><span class="menu-flexible__item-text">Submnistraments</span></a></li><li class="menu-flexible__item page-43 level3"><a class="menu-flexible__link" aria-expanded="false" href="/la-vila/guia-del-municipi/emergencie
289s" ><span class="menu-flexible__item-text">Emergències</span></a></li></ul></li></ul></li><li class="menu-flexible__item page-131 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/descobreix-sant-quinti" ><span class="menu-flexible__item-text">Descobreix Sant QuintÃ</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-218 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/218-descobreix-sant-quinti" ><span class="menu-flexible__item-text">Descobreix Sant QuintÃ</span></a></li><li class="menu-flexible__item page-156 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/les-deus" ><span class="menu-flexible__item-text">Les Deus</span></a></li><li class="menu-flexible__item page-157 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/a-peu-i-en-bici-" ><span class="menu-flexible__item-text">A peu i en bici </span></a></li><li class="menu-flexible__item page-159 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/passejades-pel-patrimoni" ><span class="menu-flexible__item-text">Passejades pel Patrimoni</span></a></li><li class="menu-flexible__item page-162 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/ruta-miravinya-" ><span class="menu-flexible__item-text">Ruta Miravinya </span></a></li><li class="menu-flexible__item page-41 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/llocs-dinteres" ><span class="menu-flexible__item-text">Llocs d'interès</span></a></li><li class="menu-flexible__item page-50 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/festes-fires-i-mercats" ><span class="menu-flexible__item-text">Festes, fires i mercats</span></a></li><li class="menu-flexible__item page-167 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/descobreix-sant-quinti/espai-amades" ><span class="menu-flexible__item-text">Espai Amades</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-130 level3"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/espai-amades/cuina-amades" ><span class="menu-flexible__item-text">Cuina Amades</span></a></li><li class="menu-flexible__item page-168 level3"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/espai-amades/documental-de-lespai-amades" ><span class="menu-flexible__item-text">Documental de l'Espai Amades</span></a></li></ul></li><li class="menu-flexible__item page-160 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/on-menjar" ><span class="menu-flexible__item-text">On menjar</span></a></li><li class="menu-flexible__item page-161 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/on-dormir" ><span class="menu-flexible__item-text">On dormir</span></a></li><li class="menu-flexible__item page-38 level2"><a class="menu-flexible__link" aria-expanded="false" href="/descobreix-sant-quinti/informacio-practica" ><span class="menu-flexible__item-text">Informació prà ctica</span></a></li></ul></li><li class="menu-flexible__item page-151 level1"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/serveis-i-tramits" ><span class="menu-flexible__item-text">Serveis i trà mits</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-190 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/serveis-i-tramits/190-tramits-i-gestions" ><span class="menu-flexible__item-text">Trà mits i gestions</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-31 level3"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/190-tramits-i-gestions/cataleg-de-tramits" ><span class="menu-flexible__item-text">Catà leg de trà mits</span></a></li><li class="menu-flexible__item page-90 level3"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/190-tramits-i-gestions/carpeta-ciutadana" ><span class="menu-flexible__item-text">Carpeta ciutadana</span></a></li><li class="menu-flexible__item page-191 level3"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/190-tramits-i-gestions/identificacio-digital" ><span class="menu-flexible__item-text">Identificació digital</span></a></li></ul></li><li class="menu-flexible__item page-18 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/tauler-danuncis" ><span class="menu-flexible__item-text">Tauler d'anuncis</span></a></li><li class="menu-flexible__item page-175 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/calendari-del-contribuent-" ><span class="menu-flexible__item-text">Calendari del contribuent </span></a></li><li class="menu-flexible__item page-32 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/impostos" ><span class="menu-flexible__item-text">Impostos</span></a></li><li class="menu-flexible__item page-172 level2"><a class="menu-flexible__link menu-flexible__link--dropdown" aria-expanded="false" href="/serveis-i-tramits/contractacio" ><span class="menu-flexible__item-text">Contractació</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-173 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/cap.pscp?reqCode=viewDetail&keyword=Sant+Quint%C3%AD+de+Mediona&idCap=9480661&ambit=&" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Perfil del contractant</span></a></li><li class="menu-flexible__item page-174 level3"><a class="menu-flexible__link menu-link--external" aria-expanded="false" href="https://contractaciopublica.gencat.cat/ecofin_pscp/AppJava/notice.pscp?reqCode=searchCn&reqPhase=Cn&pagingPage=0&idCap=9480661" target="_blank" rel="noopener noreferrer"><span class="menu-flexible__item-text">Licitacions en curs</span></a></li></ul></li><li class="menu-flexible__item page-140 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/cataleg-de-serveis" ><span class="menu-flexible__item-text">Catà leg de Serveis</span></a></li><li class="menu-flexible__item page-88 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/espai-dels-proveidors" ><span class="menu-flexible__item-text">Espai dels proveïdors</span></a></li><li class="menu-flexible__item page-122 level2"><a class="menu-flexible__link" aria-expanded="false" href="/serveis-i-tramits/que-es-la-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="/serveis-i-tramits/portal-de-transparencia" ><span class="menu-flexible__item-text">Portal de transparència</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="/recursos-per-a-la-ciutadania" ><span class="menu-flexible__item-text">Recursos per a la ciutadania</span></a><ul class="menu-flexible menu-flexible__submenu"><li class="menu-flexible__item page-222 level2"><a class="menu-flexible__link" aria-expanded="false" href="/recursos-per-a-la-ciutadania/cursos-i-taller
289s" ><span class="menu-flexible__item-text">Cursos i tallers</span></a></li><li class="menu-flexible__item page-199 level2"><a class="menu-flexible__link" aria-expanded="false" href="/recursos-per-a-la-ciutadania/benestar-animal" ><span class="menu-flexible__item-text">Benestar animal</span></a></li></ul></li></ul></div>
289<script>(function() { 290 'use strict'; 291 292 // Mega panel 293 294 function initMegaPanels(navContainer) { 295 var menuItems = Array.prototype.slice.call(navContainer.querySelectorAll('[data-mega-id]')); 296 if (!menuItems.length) return; 297 298 var navUl = navContainer.querySelector('ul'); 299 var topItems = navUl 300 ? menuItems.filter(function(el) { return el.parentElement === navUl; }) 301 : menuItems; 302 303 var wrapper = navContainer.closest('.menu-flexible__wrapper'); 304 var isClick = wrapper && wrapper.getAttribute('data-expand-type') === 'click'; 305 306 menuItems.forEach(function(item) { 307 var panel = getPanelForItem(item, navContainer); 308 if (!panel) return; 309 310 if (isClick) { 311 var link = item.querySelector('a'); 312 if (link) { 313 link.addEventListener('click', function(e) { 314 // En mòbil, els elements naveguen directament sense desplegar submenús 315 if (window.innerWidth <= 992) return; 316 if (panel.classList.contains('mf-mega-visible')) { 317 // Segon clic: navegar 318 return; 319 } 320 e.preventDefault(); 321 hideAllMegaPanels(navContainer); 322 showPanel(item, panel); 323 }); 324 } 325 } else { 326 var hoverDelay = parseInt( 327 getComputedStyle(wrapper).getPropertyValue('--menu-hover-delay'), 10 328 ) || 0; 329 var hoverTimer = null; 330 331 var leaveTimer = null; 332 333 item.addEventListener('mouseenter', function() { 334 clearTimeout(hoverTimer); 335 clearTimeout(leaveTimer); 336 if (hoverDelay > 0) { 337 hoverTimer = setTimeout(function() { showPanel(item, panel); }, hoverDelay); 338 } else { 339 showPanel(item, panel); 340 } 341 }); 342 item.addEventListener('mouseleave', function(e) { 343 clearTimeout(hoverTimer); 344 if (!panel.contains(e.relatedTarget)) { 345 leaveTimer = setTimeout(function() { hidePanel(item, panel); }, 300); 346 } 347 }); 348 panel.addEventListener('mouseenter', function() { 349 clearTimeout(leaveTimer); 350 }); 351 panel.addEventListener('mouseleave', function(e) { 352 clearTimeout(hoverTimer); 353 clearTimeout(leaveTimer); 354 if (!item.contains(e.relatedTarget)) hidePanel(item, panel); 355 }); 356 357 // Tà ctil: fallback quan hover no disponible (només escriptori tà ctil) 358 var link = item.querySelector('a'); 359 if (link) { 360 link.addEventListener('click', function(e) { 361 if (window.matchMedia('(hover: none)').matches && window.innerWidth > 992) { 362 if (panel.classList.contains('mf-mega-visible')) { 363 // Segon clic en tà ctil: navegar 364 return; 365 } 366 e.preventDefault(); 367 hideAllMegaPanels(navContainer); 368 showPanel(item, panel); 369 } 370 }); 371 } 372 } 373 }); 374 375 navContainer.addEventListener('keydown', function(e) { 376 handleMegaKeydown(e, navContainer, topItems); 377 }); 378 379 if (!isClick) { 380 navContainer.addEventListener('focusin', function(e) { 381 var item = e.target.closest('[data-mega-id]'); 382 if (!item) return; 383 var panel = getPanelForItem(item, navContainer); 384 if (!panel) return; 385 hideAllMegaPanels(navContainer); 386 showPanel(item, panel); 387 }); 388 } 389 390 navContainer.addEventListener('focusout', function() { 391 setTimeout(function() { 392 if (!navContainer.contains(document.activeElement)) { 393 hideAllMegaPanels(navContainer); 394 } 395 }, 0); 396 }); 397 398 document.addEventListener('click', function(e) { 399 if (!navContainer.contains(e.target)) { 400 hideAllMegaPanels(navContainer); 401 } 402 }); 403 } 404 405 function handleMegaKeydown(e, navContainer, topItems) { 406 var focused = document.activeElement; 407 if (!focused) return; 408 409 var currentItem = focused.closest('[data-mega-id]'); 410 var currentPanel = focused.closest('.menu-flexible__mega-panel'); 411 var key = e.key || e.code || e.keyCode; 412 413 function directLink(item) { 414 if (!item) return null; 415 return Array.prototype.slice.call(item.children).find(function(el) { 416 return el.tagName === 'A'; 417 }) || item.querySelector('a'); 418 } 419 420 function itemForPanel(panel) { 421 if (!panel) return null; 422 var id = panel.getAttribute('data-mega-id'); 423 return id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 424 } 425 426 function focusPanelLink(panel, index) { 427 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 428 if (!links.length) return; 429 links[(index + links.length) % links.length].focus(); 430 } 431 432 function focusPanelSibling(panel, offset) { 433 var links = Array.prototype.slice.call(panel.querySelectorAll('a')); 434 var idx = links.indexOf(focused); 435 if (idx === -1) return; 436 links[(idx + offset + links.length) % links.length].focus(); 437 } 438 439 function panelColumnForLink(link) { 440 return link ? link.closest('.menu-flexible__mega-col') : null; 441 } 442 443 function focusAdjacentPanelColumn(panel, offset) { 444 var columns = Array.prototype.slice.call(panel.querySelectorAll('.menu-flexible__mega-col')); 445 var currentColumn = panelColumnForLink(focused); 446 var idx = columns.indexOf(currentColumn); 447 if (idx === -1) return false;
448 449 var targetColumn = columns[(idx + offset + columns.length) % columns.length]; 450 var targetLink = targetColumn.querySelector('a'); 451 if (targetLink) { 452 targetLink.focus(); 453 return true; 454 } 455 456 return false; 457 } 458 459 function focusTopItem(item, offset) { 460 var idx = topItems.indexOf(item); 461 if (idx === -1) return; 462 463 var next = topItems[(idx + offset + topItems.length) % topItems.length]; 464 hideAllMegaPanels(navContainer); 465 466 var nextLink = directLink(next); 467 if (nextLink) { 468 nextLink.focus(); 469 var nextPanel = getPanelForItem(next, navContainer); 470 if (nextPanel) showPanel(next, nextPanel); 471 } 472 } 473 474 switch (key) { 475 case 'Escape': 476 case 'Esc': 477 case 27: { 478 e.preventDefault(); 479 hideAllMegaPanels(navContainer); 480 if (currentPanel) { 481 var item = itemForPanel(currentPanel); 482 var lnk = directLink(item); 483 if (lnk) lnk.focus(); 484 } 485 break; 486 } 487 488 case 'ArrowRight': 489 case 39: 490 case 'ArrowLeft': 491 case 37: { 492 var direction = (key === 'ArrowRight' || key === 39) ? 1 : -1; 493 e.preventDefault(); 494 495 if (currentPanel) { 496 if (!focusAdjacentPanelColumn(currentPanel, direction)) { 497 var ownerItem = itemForPanel(currentPanel); 498 focusTopItem(ownerItem, direction); 499 } 500 break; 501 } 502 503 if (!currentItem) return; 504 focusTopItem(currentItem, direction); 505 break; 506 } 507 508 case 'ArrowDown': 509 case 40: { 510 e.preventDefault(); 511 if (currentPanel) { 512 focusPanelSibling(currentPanel, 1); 513 break; 514 } 515 if (!currentItem) return; 516 var panel = getPanelForItem(currentItem, navContainer); 517 if (!panel) return; 518 if (!panel.classList.contains('mf-mega-visible')) { 519 hideAllMegaPanels(navContainer); 520 showPanel(currentItem, panel); 521 } 522 focusPanelLink(panel, 0); 523 break; 524 } 525 526 case ' ': 527 case 'Space': 528 case 'Spacebar': 529 case 32: { 530 if (currentPanel || !currentItem) return; 531 var spacePanel = getPanelForItem(currentItem, navContainer); 532 if (!spacePanel) return; 533 534 e.preventDefault(); 535 if (spacePanel.classList.contains('mf-mega-visible')) { 536 hidePanel(currentItem, spacePanel); 537 } else { 538 hideAllMegaPanels(navContainer); 539 showPanel(currentItem, spacePanel); 540 } 541 break; 542 } 543 544 case 'ArrowUp': 545 case 38: { 546 if (!currentPanel) return; 547 e.preventDefault(); 548 var panelLinks = Array.prototype.slice.call(currentPanel.querySelectorAll('a')); 549 var focusedIndex = panelLinks.indexOf(focused); 550 551 if (focusedIndex > 0) { 552 focusPanelLink(currentPanel, focusedIndex - 1); 553 } else { 554 var parentItem = itemForPanel(currentPanel); 555 var parentLink = directLink(parentItem); 556 if (parentLink) parentLink.focus(); 557 if (parentItem) hidePanel(parentItem, currentPanel); 558 } 559 break; 560 } 561 } 562 } 563 564 function getPanelForItem(item, navContainer) { 565 var id = item.getAttribute('data-mega-id'); 566 return id 567 ? navContainer.querySelector('.menu-flexible__mega-panel[data-mega-id="' + id + '"]') 568 : null; 569 } 570 571 function showPanel(item, panel) { 572 panel.classList.add('mf-mega-visible'); 573 panel.setAttribute('aria-hidden', 'false'); 574 var link = item.querySelector('a'); 575 if (link) link.setAttribute('aria-expanded', 'true'); 576 } 577 578 function hidePanel(item, panel) { 579 panel.classList.remove('mf-mega-visible'); 580 panel.setAttribute('aria-hidden', 'true'); 581 var link = item.querySelector('a'); 582 if (link) link.setAttribute('aria-expanded', 'false'); 583 } 584 585 function hideAllMegaPanels(navContainer) { 586 navContainer.querySelectorAll('.menu-flexible__mega-panel.mf-mega-visible') 587 .forEach(function(panel) { 588 var id = panel.getAttribute('data-mega-id'); 589 var item = id ? navContainer.querySelector('li[data-mega-id="' + id + '"]') : null; 590 if (item) { 591 hidePanel(item, panel); 592 } else { 593 panel.classList.remove('mf-mega-visible'); 594 panel.setAttribute('aria-hidden', 'true'); 595 } 596 }); 597 } 598 599 600 // Tecles de fletxa (menú està ndard) 601 602 function initStandardKeyboard(wrapper) { 603 var menu = wrapper.querySelector('.menu-flexible__list'); 604 if (!menu) return; 605 606 function closeAll() { 607 Array.prototype.slice.call(menu.querySelectorAll('.menu-flexible__item[focus="true"]')) 608 .forEach(function(item) { 609 item.setAttribute('focus', 'false'); 610 var submenu = Array.prototype.slice.call(item.children).find(function(el) { 611 return el.classList && el.classList.contains('menu-flexible__submenu'); 612 }); 613 if (submenu) { 614 submenu.style.left = ''; 615 submenu.style.opacity = ''; 616 submenu.style.visibility = ''; 617 submenu.style.pointerEvents = ''; 618 submenu.style.transform = ''; 619 } 620 var link = Array.prototype.slice.call(item.children).find(function(el) { 621 return el.tagName === 'A'; 622 }); 623 if (link && link.classList.contains('menu-flexible__link--dropdown')) { 624 link.setAttribute('aria-expanded', 'false'); 625 } 626 }); 627 } 628 629 wrapper.addEventListener('keydown', function(e) { 630 handleStandardKeydown(e, menu); 631 }); 632 633 wrapper.addEventListener('focusout', function() { 634 setTimeout(function() { 635 if (!wrapper.contains(document.activeElement)) { 636 closeAll(); 637 } 638 }, 0); 639 }); 640 } 641 642 function handleStandardKeydown(e, menu) { 643 var focused = document.activeElement; 644 if (!focused || !menu.contains(focused)) return; 645 646 var itemSel = '.menu-flexible__item'; 647 var linkSel = '.menu-flexible__link'; 648 649 var currentLi = focused.closest(itemSel); 650 if (!currentLi) return; 651 652 var parentUl = currentLi.parentElement; 653 var isLevel1 = parentUl === menu;
654 655 function directLink(li) { 656 var direct = Array.prototype.slice.call(li.children).find(function(el) { 657 return el.tagName === 'A'; 658 }); 659 return direct || li.querySelector(linkSel); 660 } 661 662 function siblingItems(ul) { 663 return Array.prototype.slice.call(ul.children).filter(function(el) { 664 return el.matches(itemSel); 665 }); 666 } 667 668 function childMenu(li) { 669 return Array.prototype.slice.call(li.children).find(function(el) { 670 return el.classList && el.classList.contains('menu-flexible__submenu'); 671 }); 672 } 673 674 function setSubmenuVisible(li, visible) { 675 var submenu = childMenu(li); 676 if (!submenu) return; 677 678 if (visible) { 679 submenu.style.left = li.parentElement === menu ? '0' : '100%'; 680 submenu.style.opacity = '1'; 681 submenu.style.visibility = 'visible'; 682 submenu.style.pointerEvents = 'auto'; 683 submenu.style.transform = 'none'; 684 } else { 685 submenu.style.left = ''; 686 submenu.style.opacity = ''; 687 submenu.style.visibility = ''; 688 submenu.style.pointerEvents = ''; 689 submenu.style.transform = ''; 690 } 691 } 692 693 function setExpanded(li, expanded) { 694 li.setAttribute('focus', expanded ? 'true' : 'false'); 695 setSubmenuVisible(li, expanded); 696 var lnk = directLink(li); 697 if (lnk && lnk.classList.contains('menu-flexible__link--dropdown')) { 698 lnk.setAttribute('aria-expanded', expanded ? 'true' : 'false'); 699 } 700 if (!expanded) { 701 Array.prototype.slice.call(li.querySelectorAll(itemSel + '[focus="true"]')) 702 .forEach(function(item) { 703 item.setAttribute('focus', 'false'); 704 setSubmenuVisible(item, false); 705 var childLink = directLink(item); 706 if (childLink && childLink.classList.contains('menu-flexible__link--dropdown')) { 707 childLink.setAttribute('aria-expanded', 'false'); 708 } 709 }); 710 } 711 } 712 713 function closeSiblings(li) { 714 Array.prototype.slice.call(li.parentElement.children) 715 .filter(function(item) { 716 return item !== li && item.matches(itemSel); 717 }) 718 .forEach(function(item) { 719 setExpanded(item, false); 720 }); 721 } 722 723 function openChild(li) { 724 var submenu = childMenu(li); 725 if (!submenu) return false; 726 closeSiblings(li); 727 setExpanded(li, true); 728 var firstChild = submenu.querySelector(linkSel); 729 if (firstChild) firstChild.focus(); 730 return true; 731 } 732 733 function focusSibling(offset) { 734 var sibs = siblingItems(parentUl); 735 var idx = sibs.indexOf(currentLi); 736 var lnk = directLink(sibs[(idx + offset + sibs.length) % sibs.length]); 737 if (lnk) lnk.focus(); 738 } 739 740 var key = e.key || e.code || e.keyCode; 741 742 switch (key) { 743 case 'ArrowRight': 744 case 39: { 745 if (!isLevel1) return; 746 e.preventDefault(); 747 setExpanded(currentLi, false); 748 focusSibling(1); 749 break; 750 } 751 case 'ArrowLeft': 752 case 37: { 753 if (!isLevel1) return; 754 e.preventDefault(); 755 setExpanded(currentLi, false); 756 focusSibling(-1); 757 break; 758 } 759 case 'ArrowDown': 760 case 40: { 761 e.preventDefault(); 762 if (focused === directLink(currentLi) && openChild(currentLi)) { 763 break; 764 } 765 var sibsDown = siblingItems(parentUl); 766 var idxDown = sibsDown.indexOf(currentLi); 767 if (idxDown < sibsDown.length - 1) { 768 var lnkDown = directLink(sibsDown[idxDown + 1]); 769 if (lnkDown) lnkDown.focus(); 770 } 771 break; 772 } 773 case 'ArrowUp': 774 case 38: { 775 e.preventDefault(); 776 var sibsUp = siblingItems(parentUl); 777 var idxUp = sibsUp.indexOf(currentLi); 778 if (idxUp > 0) { 779 var lnkUp = directLink(sibsUp[idxUp - 1]); 780 if (lnkUp) lnkUp.focus(); 781 } else if (!isLevel1) { 782 var parentItemUp = parentUl.closest(itemSel); 783 if (parentItemUp) { 784 setExpanded(parentItemUp, false); 785 var parentLinkUp = directLink(parentItemUp); 786 if (parentLinkUp) parentLinkUp.focus(); 787 } 788 } 789 break; 790 } 791 case ' ': 792 case 'Space': 793 case 'Spacebar': 794 case 32: { 795 if (!focused.classList.contains('menu-flexible__link--dropdown')) return; 796 e.preventDefault(); 797 currentLi.getAttribute('focus') === 'true' 798 ? setExpanded(currentLi, false) 799 : openChild(currentLi); 800 break; 801 } 802 case 'Escape': 803 case 'Esc': 804 case 27: { 805 if (isLevel1 && currentLi.getAttribute('focus') !== 'true') return; 806 e.preventDefault(); 807 if (!isLevel1) { 808 var parentItemEsc = parentUl.closest(itemSel); 809 if (parentItemEsc) { 810 setExpanded(parentItemEsc, false); 811 var parentLinkEsc = directLink(parentItemEsc); 812 if (parentLinkEsc) parentLinkEsc.focus(); 813 } 814 } else { 815 setExpanded(currentLi, false); 816 } 817 break; 818 } 819 } 820 } 821 822 823 // Click mode: expandir submenús via [focus=true] 824 825 function initClickExpand(wrapper) { 826 var menu = wrapper.querySelector('.menu-flexible__list'); 827 if (!menu) return; 828 829 var itemSel = '.menu-flexible__item'; 830 var dropdownSel = '.menu-flexible__link--dropdown'; 831 832 function closeAll(container) { 833 Array.prototype.slice.call(container.querySelectorAll(itemSel + '[focus="true"]')) 834 .forEach(function(el) { el.setAttribute('focus', 'false'); }); 835 } 836 837 function closeSiblings(item) { 838 var parentUl = item.parentElement; 839 Array.prototype.slice.call(parentUl.children) 840 .filter(function(el) { 841 return el !== item 842 && el.matches(itemSel) 843 && el.getAttribute('focus') === 'true'; 844 }) 845 .forEach(function(el) { 846 el.setAttribute('focus', 'false'); 847 closeAll(el); 848 }); 849 } 850 851 menu.addEventListener('click', function(e) { 852 var link = e.target.closest(dropdownSel); 853 if (!link || !menu.contains(link)) return; 854 855 var item = link.parentElement; 856 if (!item || !item.matches(itemSel)) return; 857 858 // En mòbil, els elements naveguen directament sense desplegar submenús 859 if (window.innerWidth <= 992) return; 860 861 var isOpen = item.getAttribute('focus') === 'true'; 862 863 if (isOpen) { 864 // Segon clic: navegar 865 return; 866 } 867 868 e.preventDefault(); 869 closeSiblings(item); 870 item.setAttribute('focus', 'true'); 871 }); 872 873 document.addEventListener('click', function(e) { 874 var openItem = menu.querySelector(itemSel + '[focus="true"]'); 875 if (!openItem) return; 876 if (!openItem.contains(e.target)) { 877 closeAll(menu); 878 } 879 }); 880 } 881 882 883 // Hamburger (mòbil â¤992px) 884 885 class MenuFlexible { 886 constructor(wrapper) { 887 this.wrapper = wrapper; 888 this.hamburger = wrapper.querySelector('.menu-flexible__toggle'); 889 this.menu = wrapper.querySelector('.menu-flexible__list'); 890 891 if (!this.hamburger || !this.menu) return; 892 893 var parent = this.menu.parentElement; 894 this.isMega = parent && parent.classList.contains('menu-flexible__nav-container'); 895 this.target = this.isMega ? parent : this.menu; 896 897 // Ancestre que en mòbil és barra fixa de 44px amb overflow:clip i retalla 898 // el menú desplegat. En obrir, l'eixamplem; en tancar, el restaurem. 899 this.clipper = wrapper.closest('.nav'); 900 901 this.init(); 902 window.addEventListener('resize', () => this.handleResize()); 903 } 904 905 init() { 906 this.hamburger.addEventListener('click', (e) => { 907 e.preventDefault(); 908 e.stopPropagation(); 909 this.toggleMenu(); 910 }); 911 912 document.addEventListener('click', (e) => { 913 if (!this.wrapper.contains(e.target) && this.isOpen()) { 914 this.closeMenu(); 915 } 916 }); 917 918 this.menu.querySelectorAll('a').forEach(link => { 919 link.addEventListener('click', () => { 920 if (window.innerWidth <= 992 && this.isOpen()) { 921 this.closeMenu(); 922 } 923 }); 924 }); 925 } 926 927 isOpen() { return this.target.classList.contains('show'); } 928 toggleMenu() { this.isOpen() ? this.closeMenu() : this.openMenu(); } 929 930 liftClip() { 931 if (this.clipper && window.innerWidth <= 992) { 932 this.clipper.style.height = 'auto'; 933 this.clipper.style.maxHeight = 'none'; 934 this.clipper.style.overflow = 'visible'; 935 } 936 } 937 938 restoreClip() { 939 if (this.clipper) { 940 this.clipper.style.height = ''; 941 this.clipper.style.maxHeight = ''; 942 this.clipper.style.overflow = ''; 943 } 944 } 945 946 openMenu() { 947 this.target.classList.add('show'); 948 this.target.style.display = this.isMega ? 'block' : 'flex'; 949 if (this.isMega) this.menu.style.display = 'flex'; 950 this.liftClip(); 951 this.hamburger.classList.add('active'); 952 this.hamburger.setAttribute('aria-expanded', 'true'); 953 } 954 955 closeMenu() { 956 this.target.classList.remove('show'); 957 this.target.style.display = 'none'; 958 if (this.isMega) { 959 this.menu.style.display = ''; 960 var nc = this.wrapper.querySelector('.menu-flexible__nav-container'); 961 if (nc) hideAllMegaPanels(nc); 962 } 963 this.restoreClip(); 964 this.hamburger.classList.remove('active'); 965 this.hamburger.setAttribute('aria-expanded', 'false'); 966 } 967 968 handleResize() { 969 if (window.innerWidth > 992) { 970 this.target.classList.remove('show'); 971 this.target.style.display = ''; 972 if (this.isMega) this.menu.style.display = ''; 973 this.restoreClip(); 974 this.hamburger.classList.remove('active'); 975 this.hamburger.setAttribute('aria-expanded', 'false'); 976 } 977 } 978 } 979 980 981 // Init 982
983 function init() { 984 document.querySelectorAll('.menu-flexible__wrapper').forEach(function(wrapper) { 985 var navContainer = wrapper.querySelector('.menu-flexible__nav-container'); 986 if (navContainer) { 987 initMegaPanels(navContainer); 988 } else { 989 initStandardKeyboard(wrapper); 990 if (wrapper.getAttribute('data-expand-type') === 'click') { 991 initClickExpand(wrapper); 992 } 993 } 994 new MenuFlexible(wrapper); 995 if (wrapper.getAttribute('data-menu-sticky') === 'true') { 996 var stickyTarget = wrapper.closest('#navbar-top') 997 || wrapper.closest('.navbar') 998 || wrapper.closest('nav'); 999 if (stickyTarget) { 1000 stickyTarget.classList.add('menu-sticky-enabled'); 1001 document.body.classList.add('has-sticky-menu'); 1002 1003 var navbarHeight = stickyTarget.offsetHeight; 1004 var navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1005 var bodyPadApplied = false; 1006 1007 function updateStickyOffset() { 1008 navbarHeight = stickyTarget.offsetHeight; 1009 document.documentElement.style.setProperty('--skip-links-sticky-offset', navbarHeight + 'px'); 1010 1011 if (bodyPadApplied) { 1012 document.body.style.paddingTop = navbarHeight + 'px'; 1013 } 1014 } 1015 1016 function getTargetFromHash(hash) { 1017 if (!hash || hash.charAt(0) !== '#') { 1018 return null; 1019 } 1020 1021 try { 1022 return document.getElementById(decodeURIComponent(hash.substring(1))); 1023 } catch (error) { 1024 return document.getElementById(hash.substring(1)); 1025 } 1026 } 1027 1028 function scrollToSkipTarget(hash) { 1029 var target = getTargetFromHash(hash); 1030 if (!target) { 1031 return; 1032 } 1033 1034 updateStickyOffset(); 1035 1036 var expectedTop = target.getBoundingClientRect().top + window.scrollY - navbarHeight; 1037 if (expectedTop > navbarTop) { 1038 applyFixed(); 1039 } else { 1040 removeFixed(); 1041 } 1042 1043 try { 1044 target.focus({ preventScroll: true }); 1045 } catch (error) { 1046 target.focus(); 1047 } 1048 1049 var targetTop = target.getBoundingClientRect().top + window.scrollY; 1050 window.scrollTo(0, Math.max(targetTop - navbarHeight, 0)); 1051 } 1052 1053 document.querySelectorAll('.skip-links a[href^="#"]').forEach(function(link) { 1054 link.addEventListener('click', function(event) { 1055 var hash = link.getAttribute('href'); 1056 var target = getTargetFromHash(hash); 1057 if (!target) { 1058 return; 1059 } 1060 1061 event.preventDefault(); 1062 1063 if (window.history && window.history.pushState) { 1064 window.history.pushState(null, '', hash); 1065 } else { 1066 window.location.hash = hash; 1067 } 1068 1069 scrollToSkipTarget(hash); 1070 }); 1071 }); 1072 1073 updateStickyOffset(); 1074 1075 function applyFixed() { 1076 if (!stickyTarget.classList.contains('fixed-top')) { 1077 updateStickyOffset(); 1078 stickyTarget.classList.add('fixed-top');
1079 document.body.style.paddingTop = navbarHeight + 'px'; 1080 bodyPadApplied = true; 1081 } 1082 } 1083 1084 function removeFixed() { 1085 if (stickyTarget.classList.contains('fixed-top')) { 1086 stickyTarget.classList.remove('fixed-top'); 1087 document.body.style.paddingTop = ''; 1088 bodyPadApplied = false; 1089 } 1090 } 1091 1092 window.addEventListener('scroll', function() { 1093 if (window.scrollY > navbarTop) { 1094 applyFixed(); 1095 } else { 1096 removeFixed(); 1097 } 1098 }); 1099 1100 window.addEventListener('resize', function() { 1101 updateStickyOffset(); 1102 if (!stickyTarget.classList.contains('fixed-top')) { 1103 navbarTop = stickyTarget.getBoundingClientRect().top + window.scrollY; 1104 } 1105 }); 1106 1107 if ('ResizeObserver' in window) { 1108 new ResizeObserver(updateStickyOffset).observe(stickyTarget); 1109 } 1110 1111 stickyTarget.querySelectorAll('img').forEach(function(image) { 1112 if (!image.complete) { 1113 image.addEventListener('load', updateStickyOffset, { once: true }); 1114 } 1115 }); 1116 1117 window.addEventListener('load', updateStickyOffset); 1118 1119 if (window.scrollY > navbarTop) applyFixed(); 1120 1121 if (window.location.hash) { 1122 window.setTimeout(function() { 1123 scrollToSkipTarget(window.location.hash); 1124 }, 0); 1125 } 1126 } 1127 } 1128 }); 1129 } 1130 1131 if (document.readyState === 'loading') { 1132 document.addEventListener('DOMContentLoaded', init); 1133 } else { 1134 init(); 1135 } 1136})(); 1137</script>
1137</nav></div></div></div></div></div> </div> </header> 1138 <main id="main-content" tabindex="-1"> 1139 <div class="content"> 1140 <div class="container-xl columns " id="Path"> 1141 <div class="row"> 1142 <nav aria-label="breadcrumb"> 1143 <ol class="breadcrumb"> 1144 <li class="breadcrumb-item"> 1145 <a href="/" target="_self"> 1146 <span style="display: none">home</span><i class="fa fa-home" aria-hidden="true"></i> </a> 1147 </li> 1148<li class="breadcrumb-item"> 1149 <a href="/altres-continguts" target="_self"> 1150 Altres continguts </a> 1151 <button class="btn dropdown-toggle" type="button" id="defaultDropdow6" data-bs-toggle="dropdown" data-bs-auto-close="true" aria-expanded="false" aria-label="Desplega"></button> 1152 <ul class="dropdown-menu" aria-label="defaultDropdown6"> 1153 <li><a class="dropdown-item" href="/altres-continguts/avis-legal">AvÃs legal</a></li> 1154 <li><a class="dropdown-item" href="/altres-continguts/proteccio-de-dades">Protecció de dades</a></li> 1155 <li><a class="dropdown-item" href="/altres-continguts/accessibilitat">Accessibilitat</a></li> 1156 <li><a class="dropdown-item" href="/altres-continguts/contactar">Contactar</a></li> 1157 <li><a class="dropdown-item" href="/altres-continguts/credits">Crèdits</a></li> 1158 </ul> 1159 </li> 1160 </ol> 1161 </nav> 1162 </div> 1163</div> 1164 <div class="container-xl columns"> 1165 <div class="row"> 1166 <div class="col-xs-12 col-sm-12 col-md-3 col-lg-3 leftSidebar responsiveHeight" data-nosnippet> 1167 <nav class="menuLeft" id="Menuleft_page" aria-label="Menú Contactar"> 1168 <ul> 1169 <li class="subMenuPage-59 level2"> 1170 <a href="/altres-continguts/avis-legal" target="_self"> 1171 AvÃs legal </a> 1172 1173 </li> 1174<li class="subMenuPage-60 level2"> 1175 <a href="/altres-continguts/proteccio-de-dades" target="_self"> 1176 Protecció de dades </a> 1177 1178 </li> 1179<li class="subMenuPage-61 level2"> 1180 <a href="/altres-continguts/accessibilitat" target="_self"> 1181 Accessibilitat </a> 1182 1183 </li> 1184<li class="subMenuPage-62 current level2"> 1185 <a href="/altres-continguts/contactar" target="_self" aria-current="page"> 1186 Contactar </a> 1187 1188 </li> 1189<li class="subMenuPage-63 level2"> 1190 <a href="/altres-continguts/credits" target="_self"> 1191 Crèdits </a> 1192 1193 </li> 1194 </ul> 1195 </nav> 1196</div> 1197 <div class="col-xs-12 col-sm-12 col-md-9 col-lg-9 article responsiveHeight" id="readspeakerPage" tabindex="-1"> 1198 <div class="hideTablets"> 1199 </div> 1200<h1 class="title" id='title0' data-attribute="Contactar">Contactar</h1><div class="showTablets"> 1201 </div> 1202<div> 1203 <div class="dinamic"> 1204 </div> <div id="form"> 1205 <div class="alert ko" role="alert">Aquest formulari no està actiu en aquest moment.<a class="closable" onclick="hideMsg()" name="closable">Ã</a></div><br></div> 1206 1207<div id="formCancel"></div>
1208<script> 1209 function calcul_total() { 1210 var total = 0; 1211 $("input[id$=_total]").each(function() { 1212 const id_total = $(this).attr('id'); 1213 const id = id_total.replace('_total',''); 1214 const id_quantitat = id_total.replace('_total','_quantitat'); 1215 const id_percentatge = id_total.replace('_total','_percentatge'); 1216 const id_preu = id_total.replace('_total','_preu'); 1217 const id_select = id_total.replace('_total','_select_field'); 1218 if ( ($("#"+id_quantitat).length) ) { 1219 t = parseFloat($("#"+id).val().replace(',','.')) 1220 * 1221 parseFloat($("#"+id_quantitat).val().replace(',','.')); 1222 1223 } 1224 if ( ($("#"+id_preu).length) ) { 1225 t = parseFloat($("#"+id).val().replace(',','.')) 1226 * 1227 parseFloat($("#"+id_preu).val().replace(',','.')); 1228 } 1229 if ( ($("#"+id_percentatge).length) ) { 1230 t = parseFloat($("#"+id).val().replace(',','.')) 1231 * 1232 parseFloat($("#"+id_percentatge).val().replace(',','.'))/100; 1233 } 1234 if ( ($("#"+id_select).length) ) { 1235 t = parseFloat($("#"+id+'_total').val().replace(',','.')); 1236 } 1237 if (!isNaN(t)) { total += t;} 1238 }); 1239 return (total); 1240 } 1241 window.addEventListener('load', function(){ 1242 // cà lcul subtotals abans de la interacció de l'usuari 1243 for (let i = 0; i < 100; i++) { 1244 if (typeof window["quantityChange_"+i] === "function") { 1245 console.log("quantityChange_"+i+" is a function"); 1246 window["quantityChange_"+i](); 1247 } 1248 if (typeof window["priceChange_"+i] === "function") { 1249 console.log("priceChange_"+i+" is a function"); 1250 window["priceChange_"+i](); 1251 } 1252 } 1253 // cà lcul total 1254 if (typeof window["calcul_total"] === "function") { 1255 valorMostrar = ((Math.round((calcul_total() + Number.EPSILON) * 100) / 100) + "").replace('.', ',') 1256 const numberFormat = new Intl.NumberFormat('es-ES'); 1257 const stringNumber = valorMostrar.toString().replace(',', '.'); 1258 $("#Total_total").text(numberFormat.format(stringNumber)+" Euros"); 1259 $("#total").val(calcul_total()); 1260 } 1261 }); 1262</script>
1262 1263 </div> 1264<div class="hideTablets"> 1265 </div> 1266<div id="share"><div class="js-widget o-widget clearfix boxBX default " > <div class="o-widget-wrapper clearfix default-BX row " ><div class="o-widget-container "><div class="o-share o-share--icones_rodones"> 1267 1268 <div class="o-share__list"> 1269 <a 1270 class="o-share__link o-share__link--facebook" 1271 href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fwww.santquintimediona.cat%2Faltres-continguts%2Fcontactar" 1272 target="_blank" 1273 rel="noopener" 1274 title="Facebook" 1275 > 1276 <span class="o-share__icon" aria-hidden="true"> 1277 <i class="fa-brands fa-facebook-f"></i> 1278 </span> 1279 <span class="visually-hidden">Facebook</span> 1280 </a> 1281 <a 1282 class="o-share__link o-share__link--x" 1283 href="https://twitter.com/intent/tweet?text=Contactar&url=https%3A%2F%2Fwww.santquintimediona.cat%2Faltres-continguts%2Fcontactar" 1284 target="_blank" 1285 rel="noopener" 1286 title="X" 1287 > 1288 <span class="o-share__icon" aria-hidden="true"> 1289 <i class="fa-brands fa-x-twitter"></i> 1290 </span> 1291 <span class="visually-hidden">X</span> 1292 </a> 1293 </div> 1294</div> 1295</div> </div></div></div> 1296<span class="updated">Darrera actualització: 22.12.2014 | 09:51</span> 1297 </div> 1298 </div> 1299 </div> 1300 </div> 1301 </main> 1302 <footer id="footer-content" tabindex="-1"> 1303 <div class="footer"> 1304 <div class="shortcuts"> 1305 <div class="container-xl"> 1306 <div class="featuredItem responsiveHeight"> 1307 <h2 class="title">RSS</h2> 1308 <p class="subtitle">L'actualitat a un clic</p> 1309 <ul id="cm_rss"> 1310 <li style="background-image: url('/front/view/images/ico_16_rss.png');"> 1311 <a href="/rss/11"> 1312 NotÃcies </a> 1313</li> 1314<li style="background-image: url('/front/view/images/ico_16_rss.png');"> 1315 <a href="/rss/12"> 1316 Agenda </a> 1317</li> 1318<li style="background-image: url('/front/view/images/ico_16_rss.png');"> 1319 <a href="/rss/15"> 1320 Agenda polÃtica </a> 1321</li> 1322<li style="background-image: url('/front/view/images/ico_16_rss.png');"> 1323 <a href="/rss/13"> 1324 Avisos </a> 1325</li> 1326<li style="background-image: url('/front/view/images/ico_16_rss.png');"> 1327 <a href="/rss/14"> 1328 Publicacions </a> 1329</li> 1330 </ul> 1331</div> 1332<div class="featuredItem responsiveHeight"> 1333 <h2 class="title">Adreces i telèfons</h2> 1334 1335 <img width="96" height="96" src="/front/view/images/icons/plugin_home.png" alt=""> 1336 1337 <p class="elem_button"> 1338 <a href="/la-vila/guia-del-municipi/serveis-i-equipaments-municipals" aria-label="Adreces i telèfons"> 1339 Accedeix </a> 1340 </p> 1341</div> 1342<div class="featuredItem"> 1343 <h2 class="title">Meteo</h2> 1344 <div id="cm_meteocat"> 1345 <ul class="bxslider"> 1346 <li> 1347 Dissabte, 3 dâoctubre <img width="80" height="80" 1348 alt="plugim" 1349 src="/front/view/images/meteocat/plugim.png" 1350 > 1351 <p> 1352 T.Mà x: 25° 1353 <br> 1354 T.Min: 15° 1355 </p> 1356 <p> 1357 Tarda 1358 <img alt="ruixat" width="24" height="24" 1359 src="/front/view/images/meteocat/pluja.png" 1360 > 1361 </p> 1362 </li> 1363<li> 1364 Diumenge, 4 dâoctubre <img width="80" height="80" 1365 alt="plugim" 1366 src="/front/view/images/meteocat/plugim.png" 1367 > 1368 <p> 1369 T.Mà x: 23° 1370 <br> 1371 T.Min: 16° 1372 </p> 1373 <p> 1374 Tarda 1375 <img alt="ruixat" width="24" height="24" 1376 src="/front/view/images/meteocat/pluja.png" 1377 > 1378 </p> 1379 </li> 1380 </ul> 1381 <div class="outside"> 1382 <p><span id="slider-prev"></span><span id="slider-next"></span></p> 1383 </div> 1384 1385 </div> 1386</div> 1387<div class="featuredItem responsiveHeight"> 1388 <h2 class="title">Butlletà digital</h2> 1389 <img width="96" height="96" src="/front/view/images/icons/plugin_newsletter.png" alt=""> 1390 <p class="elem_button"> 1391 <a href="/casa-de-la-vila/comunicacio/butlleti-digital" aria-label="Butlletà digital"> 1392 Subscriu-te </a> 1393 </p> 1394</div> 1395<div id="cm_planol" class="featuredItem responsiveHeight"> 1396 <h2 class="title">Plà nol / Carrers</h2> 1397 1398 <img width="96" height="96" src="/front/view/images/icons/plugin_map.png" alt=""> 1399 1400 <p class="elem_button"> 1401 <a href="/la-vila/la-vila-de-sant-quinti/carrerer" aria-label="Plà nol"> 1402 Accedeix </a> 1403 </p> 1404</div> 1405 </div> 1406</div> 1407 <div class="hightlights"> 1408 <div class="container-xl"> 1409 <div class="highlights">
1410 <ul class="bxslider"> 1411 <li> 1412 <a href="https://bibliotecavirtual.diba.cat/sant-quinti-de-mediona-biblioteca-joan-sarda-i-lloret" target="_blank" class="banner"> 1413 <img src="/media/repository/baners_destacats/portada_peu/Biblioteca_2.png" alt="Biblioteca Joan Sardà i Lloret" class="banner"> 1414 Biblioteca Joan Sardà i Lloret </a> 1415 </li> 1416<li> 1417 <a href="http://www.xtec.cat/centres/a8066899/" target="_blank" class="banner"> 1418 <img src="/media/repository/baners_destacats/portada_peu/Llar_d_infants_2.png" alt="Llar d'infants El Cigronet" class="banner"> 1419 Llar d'Infants El Cigronet </a> 1420 </li> 1421<li> 1422 <a href="https://www.festamajorsantquinti.cat/" target="_blank" class="banner"> 1423 <img src="/media/repository/baners_destacats/portada_peu/LogoFM.png" alt="Festa Major" class="banner"> 1424 Festa Major </a> 1425 </li> 1426<li> 1427 <a href="https://www.santquintimediona.cat/contingut/65-punt-dinformacio.html" target="_self" class="banner"> 1428 <img src="/media/repository/noticies/Noticies_2024/NewFolder/LOGOI.png" alt="INF" class="banner"> 1429 Punt d'informació </a> 1430 </li> 1431<li> 1432 <a href="http://caadpenedes.org/" target="_blank" class="banner"> 1433 <img src="/media/repository/baners_destacats/portada_peu/CaadPenedes.png" alt="CAAD Penedès" class="banner"> 1434 CAAD Penedès </a> 1435 </li> 1436<li> 1437 <a href="https://www.penedescultura.cat/" target="_blank" class="banner"> 1438 <img src="/media/repository/baners_destacats/portada_peu/Penedes_cultura.png" alt="Penedès cultura" class="banner"> 1439 Penedès cultura </a> 1440 </li> 1441 </ul> 1442</div> </div> 1443 </div> 1444 <nav class="menu" aria-label="Peu de menú"> 1445 <ul class="container-xl sitemap"> 1446 <li class="page-1 Inferior"> <a class="page-1" href="/casa-de-la-vila" target="_self" >Casa de la vila </a><ul id="footer-menu-1"><li class="subMenuPage-12"> <a class="subMenuPage-12" href="/casa-de-la-vila/salutacio-de-lalcalde" target="_self" >Salutació de l'alcalde </a></li><li class="subMenuPage-8"> <a class="subMenuPage-8" href="/casa-de-la-vila/organitzacio-municipal" target="_self" >Organització municipal </a></li><li class="subMenuPage-126"> <a class="subMenuPage-126" href="/casa-de-la-vila/informacio-oficial" target="_self" >Informació oficial </a></li><li class="subMenuPage-4"> <a class="subMenuPage-4" href="/casa-de-la-vila/comunicacio" target="_self" >Comunicació </a></li></ul></li><li class="page-2 Inferior"> <a class="page-2" href="/la-vila" target="_self" >La vila </a><ul id="footer-menu-2"><li class="subMenuPage-150"> <a class="subMenuPage-150" href="/la-vila/la-vila-de-sant-quinti" target="_self" >La vila de Sant Quintà </a></li><li class="subMenuPage-7"> <a class="subMenuPage-7" href="/la-vila/dades-estadistiques" target="_self" >Dades estadÃstiques </a></li><li class="subMenuPage-3"> <a class="subMenuPage-3" href="/la-vila/guia-del-municipi" target="_self" >Guia del municipi </a></li></ul></li><li class="page-131 Inferior"> <a class="page-131" href="/descobreix-sant-quinti" target="_self" >Descobreix Sant Quintà </a><ul id="footer-menu-131"><li class="subMenuPage-218"> <a class="subMenuPage-218" href="/descobreix-sant-quinti/218-descobreix-sant-quinti" target="_self" >Descobreix Sant Quintà </a></li><li class="subMenuPage-156"> <a class="subMenuPage-156" href="/descobreix-sant-quinti/les-deus" target="_self" >Les Deus </a></li><li class="subMenuPage-157"> <a class="subMenuPage-157" href="/descobreix-sant-quinti/a-peu-i-en-bici-" target="_self" >A peu i en bici </a></li><li class="subMenuPage-159"> <a class="subMenuPage-159" href="/descobreix-sant-quinti/passejades-pel-patrimoni" target="_self" >Passejades pel Patrimoni </a></li><li class="subMenuPage-162"> <a class="subMenuPage-162" href="/descobreix-sant-quinti/ruta-miravinya-" target="_self" >Ruta Miravinya </a></li><li class="subMenuPage-41"> <a class="subMenuPage-41" href="/descobreix-sant-quinti/llocs-dinteres" target="_self" >Llocs d'interès </a></li><li class="subMenuPage-50"> <a class="subMenuPage-50" href="/descobreix-sant-quinti/festes-fires-i-mercats" target="_self" >Festes, fires i mercats </a></li><li class="subMenuPage-167"> <a class="subMenuPage-167" href="/descobreix-sant-quinti/espai-amades" target="_self" >Espai Amades </a></li><li class="subMenuPage-160"> <a class="subMenuPage-160" href="/descobreix-sant-quinti/on-menjar" target="_self" >On menjar </a></li><li class="subMenuPage-161"> <a class="subMenuPage-161" href="/descobreix-sant-quinti/on-dormir" target="_self" >On dormir </a></li><li class="subMenuPage-38"> <a class="subMenuPage-38" href="/descobreix-sant-quinti/informacio-practica" target="_self" >Informació prà ctica </a></li></ul></li><li class="page-151 Inferior"> <a class="page-151" href="/serveis-i-tramits" target="_self" >Serveis i trà mits </a><ul id="footer-menu-151"><li class="subMenuPage-190"> <a class="subMenuPage-190" href="/serveis-i-tramits/190-tramits-i-gestions" target="_self" >Trà mits i gestions </a></li><li class="subMenuPage-18"> <a class="subMenuPage-18" href="/serveis-i-tramits/tauler-danuncis" target="_self" >Tauler d'anuncis </a></li><li class="subMenuPage-175"> <a class="subMenuPage-175" href="/serveis-i-tramits/calendari-del-contribuent-" target="_self" >Calendari del contribuent </a></li><li class="subMenuPage-32"> <a class="subMenuPage-32" href="/serveis-i-tramits/impostos" target="_self" >Impostos </a></li><li class="subMenuPage-172"> <a class="subMenuPage-172" href="/serveis-i-tramits/contractacio" target="_self" >Contractació </a></li><li class="subMenuPage-140"> <a class="subMenuPage-140" href="/serveis-i-tramits/cataleg-de-serveis" target="_self" >Catà leg de Serveis </a></li><li class="subMenuPage-88"> <a class="subMenuPage-88" href="/serveis-i-tramits/espai-dels-proveidors" target="_self" >Espai dels proveïdors </a></li><li class="subMenuPage-122"> <a class="subMenuPage-122" href="/serveis-i-tramits/que-es-la-seu-electronica" target="_self" >Seu electrònica </a></li><li class="subMenuPage-123"> <a class="subMenuPage-123" href="/serveis-i-tramits/portal-de-transparencia" target="_self" >Portal de transparència </a></li></ul></li> </ul> 1447 </nav> 1448 <div class="links"> 1449 <div class="container-xl"> 1450 <div class="row"> 1451 <div class="xxss col-md-6 col-sm-6 col-lg-6 middle">
1452 <span class="titol">Xarxes socials:</span> 1453 1454 <a target="_blank" aria-label="Facebook" href="https://www.facebook.com/ajuntament.quinti" title="Obre en finestra nova: Facebook"> 1455 <span style="display: none">Facebook</span> 1456 <img src="/front/view/images/icons/social/facebook.png" alt="Facebook" width="32" height="32"> 1457 </a> 1458 1459 <a target="_blank" aria-label="Youtube" href="https://www.youtube.com/user/ajsantquinti" title="Obre en finestra nova: Youtube"> 1460 <span style="display: none">Youtube</span> 1461 <img src="/front/view/images/icons/social/youtube.png" alt="Youtube" width="32" height="32"> 1462 </a> 1463 1464 <a target="_blank" aria-label="Instagram" href="https://www.instagram.com/ajsantquinti/" title="Obre en finestra nova: Instagram"> 1465 <span style="display: none">Instagram</span> 1466 <img src="/front/view/images/icons/social/instagram.png" alt="Instagram" width="32" height="32"> 1467 </a> 1468 1469 <a target="_blank" aria-label="Telegram" href="https://t.me/santquintimediona" title="Obre en finestra nova: Telegram"> 1470 <span style="display: none">Telegram</span> 1471 <img src="/front/view/images/icons/social/telegram.png" alt="Telegram" width="32" height="32"> 1472 </a> 1473 </div> 1474 <div class="col-md-6 col-sm-6 col-lg-6 middle"> 1475 <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/contactar" target="_self" >Contactar </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> 1476 </div> 1477 </div> 1478 </div> 1479 <div class="contact"> 1480 <div class="container-xl"> 1481 <div class="row"> 1482 <address class="address col-md-6 col-sm-6 col-lg-6"> 1483 <div class="title"> 1484 Ajuntament de Sant Quintà de Mediona </div> 1485 Plaça de l'Església, 4<br>08777 Sant Quintà de Mediona<br>Tel. 938 998 028<br>Fax 938 998 400<br>NIF P0823600B<br></address><div class="diba col-md-6 col-sm-6 col-lg-6" id="diba-partner"> 1486 <div class="title"> 1487 Amb la col·laboració de: </div> 1488 <a href="http://diba.cat/" target="_blank" aria-label="Anar a la web Diputació de Barcelona" title="Obre en finestra nova: Diputació de Barcelona"> 1489 <span style="display: none">Diputació de Barcelona</span> 1490 <img src="/front/view//images/logoDiba/Negre.svg" alt="Diputació de Barcelona" class="logo-diba"> 1491 </a> 1492</div> </div> 1493 </div> 1494 </div> 1495</div> 1496 </footer> 1497 <!-- Llibreries de tercers + js propis registrats a AssetManager (jQuery primer) -->
1498<script src="/front/view/js/bower_components/jquery/dist/jquery.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1498
1498
1499<script src="/front/view/js/bower_components/bootstrap/dist/js/bootstrap.bundle.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1499
1499
1500<script src="/front/view/js/bower_components/bxslider-4/dist/jquery.bxslider.js?ver=1790946923"></script>
vendor: 1 bytes, line 1500
1500
1501<script src="/front/view/js/bower_components/jscal/index.js?ver=1790946923"></script>
vendor: 1 bytes, line 1501
1501
1502<script src="/common/bower_components/select2/dist/js/select2.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1502
1502
1503<script src="/common/bower_components/select2/dist/js/i18n/ca.js?ver=1790946923"></script>
vendor: 1 bytes, line 1503
1503
1504<script src="/common/bower_components/strength.js/src/strength.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1504
1504
1505<script src="/front/view/js/bower_components/masonry-layout/dist/masonry.pkgd.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1505
1505
1506<script src="/front/view/js/constants.js?ver=1790946923"></script>
vendor: 1 bytes, line 1506
1506
1507<script src="/front/view/js/functions.js?ver=1790946923"></script>
vendor: 1 bytes, line 1507
1507
1508<script src="/front/view/js/functions/footer.js?ver=1790946923"></script>
vendor: 1 bytes, line 1508
1508
1509<script src="/front/view/js/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js?ver=1790946923"></script>
vendor: 1 bytes, line 1509
1509
1510<script src="/front/view/js/bower_components/jquery.prettyPhoto/index.js?ver=1790946923"></script>
vendor: 1 bytes, line 1510
1510
1511<script> 1512 $(document).ready(function(){ 1513 $("a[rel^='prettyPhoto']").prettyPhoto(); 1514 $("a[rel^='prettyFrame']").prettyPhoto(); 1515 }); 1516</script>
vendor: 1 bytes, line 1516
1516
1517<script> 1518 var TWITTER = true; 1519 var FACEBOOK = true; 1520 $(window).on("load", function() { 1521 start(); 1522 }); 1523 $(document).ready(function() { 1524 if (typeof articlesId !== 'undefined') { 1525 var today = new Date(); 1526 var date = today 1527 articlesId.push('internal_calendar'); 1528 1529 var oneYearAfter = new Date(); 1530 oneYearAfter.setDate(oneYearAfter.getDate() + 365); 1531 for (id in articlesId) { 1532 Calendar.setup({ 1533 id: articlesId[id], 1534 cont: "dv_calendar_" + articlesId[id], 1535 fdow: 1, 1536 date: date, 1537 noScroll: true, 1538 bottomBar: false, 1539 max: oneYearAfter, 1540 animation: false, 1541 titleFormat: "%B %Y", 1542 dateInfo: getDateInfo 1543 }); 1544 setEqualContentColumns(); 1545 } 1546 } 1547 }); 1548 1549 1550 // Initialize Select2 with icon support for category filter 1551 $(document).ready(function() { 1552 if ($('#categoryFilter').length) { 1553 $('#categoryFilter').select2({ 1554 templateResult: function(option) { 1555 if (!option.id) return option.text; 1556 var icon = $(option.element).data('icon'); 1557 if (!icon) return option.text; 1558 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1559 }, 1560 templateSelection: function(option) { 1561 if (!option.id) return option.text; 1562 var icon = $(option.element).data('icon'); 1563 if (!icon) return option.text; 1564 return $('<span><img src="' + icon + '" style="width: 16px; height: 16px; margin-right: 6px; vertical-align: middle;"> ' + option.text + '</span>'); 1565 }, 1566 allowHtml: true 1567 }); 1568 } 1569 }); 1570</script>
1570 1571 <!-- CSS final--> 1572 1573
1573<script> 1574 const css = ""; 1575 const style = document.createElement('style'); 1576 style.textContent = css; 1577 document.head.appendChild(style); 1578 </script>
1578 1579 1580 <!-- Start Modal views--> 1581 1582 <div class="modal fade" id="videoModal" tabindex="-1" role="dialog" aria-hidden="true"> 1583 <div class="modal-dialog modal-dialog-centered" role="document"> 1584 <div class="modal-content"> 1585 <div class="modal-header"> 1586 <div class="title-head"></div> 1587 </div> 1588 <div class="modal-body"> 1589 <div class="tiktok-div-embed"></div> 1590 <iframe id="iframeVideo" title="VÃdeo" class="iframeVideo" allowfullscreen></iframe> 1591 1592 </div> 1593 <div class="modal-footer"> 1594 <span id="titleVideo" class="titleVideo"></span> 1595 <a id="closeModalVideo" class="close" href="javascript:void(0)" data-bs-dismiss="modal"><span style="display: none">X</span></a> 1596 1597 </div> 1598 </div> 1599 </div> 1600</div> <div class="modal fade" id="pdfModal" tabindex="-1" role="dialog" aria-hidden="true"> 1601 <div id="documentDialog" class="modal-dialog modal-dialog-centered" role="document"> 1602 <div class="modal-content"> 1603 <div class="modal-header"> 1604 <div class="title-head"></div> 1605 </div> 1606 <div class="modal-body"> 1607 <iframe id="iframePdf" title='Document' class="pdfview" style="width: 100%; height: 100%"></iframe> 1608 </div> 1609 <div class="modal-footer"> 1610 <span id="titlePdf" class="titlePdf"></span> 1611 <a id="closeModalPDF" class="close" href="javascript:void(0)"><span style="display: none">X</span></a> 1612 </div> 1613 </div> 1614 </div> 1615</div> <!-- End Modal views --> 1616
1616<script src="/front/view/js/endScript.js?ver=1790946923"></script>
1616 1617 <!-- Només activar per desenvolupament 1618
1618<script src="../../../node_modules/axe-core/axe.js"></script>
1618 1619
1619<script src="../../../dist/my-first-webpack.bundle.js"></script>
1619 1620 --> 1621
1621<script> 1622 $(document).ready(function () { 1623 startClock(1790946923); 1624 if (typeof (callMenuAfterJQueryLoaded) == "function") { 1625 callMenuAfterJQueryLoaded(); 1626 } 1627 1628 datepickerInit(); 1629 carouselControlSmall(); 1630 1631 if (typeof (callMenuBeforeJQueryLoaded) == "function") { 1632 callMenuBeforeJQueryLoaded(); 1633 } 1634 1635 if (typeof (callMenuBeforeTopJQueryLoaded) == "function") { 1636 callMenuBeforeTopJQueryLoaded(); 1637 } 1638 addAttributesDivVcards(); 1639 modalsImage(); 1640 modalsPdf(); 1641 translateWeb(); 1642 var carousel = $('#carouselControls'); 1643 carousel.on('slide.bs.carousel', function (event) { 1644 toSlideImage(event); 1645 }); 1646 /** Només activar per desenvolupament 1647 axe.configure({ 1648 locale: { 1649 lang: 'es', 1650 } 1651 }); 1652 1653 axe.run().then(results => { 1654 if (results.violations.length) { 1655 console.log(results.violations); 1656 throw new Error('Accessibility issues found'); 1657 } 1658 }) 1659 .catch(err => { 1660 console.log('Something bad happened:', err.message); 1661 }); 1662 */ 1663 }); 1664 1665 $(window).resize(function() { 1666 equalHeightIconTime(); 1667 }) 1668 </script>
1668 1669 </body> 1670</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.