1<!doctype html> 2<html lang="es-ES"> 3<head> 4 5 6<!--<link rel="icon" href="/favicon.ico" sizes="any"> 7<link rel="shortcut icon" href="/favicon.ico"> 8<link rel="apple-touch-icon" href="/favicon.ico">--> 9 10<!--TagManager de Movistar Arena, Baila y Facebook Pixel anulados pq se cargan en consent--> 11<!-- TagManager Movistar Arena --> 12<!--
vendor: 64 bytes, lines 12-13
12 13<script async src="https://www.googletagmanager.com/gtag/js?id=
13G-T5X8FHMD4B
vendor: 12 bytes, line 13
13"></script>
14<script> 15
vendor: 134 bytes, lines 15-19
15window.dataLayer = window.dataLayer || []; 16 function gtag(){dataLayer.push(arguments);} 17 gtag('js', new Date()); 18 19 gtag('config', '
19G-T5X8FHMD4B
vendor: 4 bytes, line 19
19');
20</script>
20 21--> 22 23<!-- TagManager Baila --> 24<!--
vendor: 69 bytes, lines 24-26
24 25<noscript> 26<iframe src="https://www.googletagmanager.com/ns.html?id=
26GTM-WRKQ2VQ
vendor: 84 bytes, lines 26-28
26" 27height="0" width="0" style="display:none;visibility:hidden"></iframe> 28</noscript>
29--> 30 31<!-- Facebook Pixel Code --> 32<!--
32<script>
vendor: 417 bytes, lines 32-41
32 33 !function(f,b,e,v,n,t,s) 34 {if(f.fbq)return;n=f.fbq=function(){n.callMethod? 35 n.callMethod.apply(n,arguments):n.queue.push(arguments)}; 36 if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; 37 n.queue=[];t=b.createElement(e);t.async=!0; 38 t.src=v;s=b.getElementsByTagName(e)[0]; 39 s.parentNode.insertBefore(t,s)}(window, document,'script', 40 'https://connect.facebook.net/en_US/fbevents.js'); 41 fbq('init', '
411330174487018281
vendor: 32 bytes, lines 41-42
41'); 42 fbq('track', 'PageView');
43</script>
43 44<noscript><img height="1" width="1" style="display:none" 45 src="https://www.facebook.com/tr?id=1330174487018281&ev=PageView&noscript=1" 46/></noscript>--> 47<!-- End Facebook Pixel Code --> 48 49<!-- Consent --> 50<!-- ====================================================================== 51 CONSENT MODE V2 â INCLUDE HEAD (debe ir lo más arriba posible en <head>) 52 - Bootstrap de consentimiento ANTES de GTM 53 - Carga GTM (si hay contenedor) 54 - Carga CSS namespaced (prefijo consent-) 55 ====================================================================== --> 56 57
58<script> 59(function(w){ 60 if (w.__MA_CONSENT_DEFAULT_DONE__) return; 61 w.__MA_CONSENT_DEFAULT_DONE__ = true; 62 63 w.dataLayer = w.dataLayer || []; 64 w.gtag = w.gtag || function(){ w.dataLayer.push(arguments); }; 65 66 var WAIT = 1200; 67 68 w.gtag('consent', 'default', { 69 ad_storage: 'denied', 70 analytics_storage: 'denied', 71 functionality_storage: 'granted', 72 ad_user_data: 'denied', 73 ad_personalization: 'denied', 74 wait_for_update: WAIT 75 }); 76})(window); 77</script>
77 78
79<script>
vendor: 341 bytes, lines 79-86
79 80(function(w,d,s,l,i){ 81 w[l]=w[l]||[]; 82 w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'}); 83 var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:''; 84 j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl; 85 f.parentNode.insertBefore(j,f); 86})(window,document,'script','dataLayer','
86GTM-5V2KLQ4V
vendor: 4 bytes, line 86
86');
87</script>
87 88 89<link rel="stylesheet" href="/inc/consent/consent.css?v=2"><!-- END Consent --> 90 91<!-- FAVICON --> 92<link rel="icon" href="/favicon.ico" sizes="any"> 93<link rel="shortcut icon" href="/favicon.ico"> 94<link rel="apple-touch-icon" href="/favicon.ico"> 95<!-- END FAVICON --> 96<meta charset="UTF-8"> 97<title>Restauracion · Movistar Arena</title> 98<meta name="viewport" content="width=device-width, initial-scale=1"> 99<meta name="description" content="Agenda, próximos conciertos y eventos en Movistar Arena. Información y entradas."> 100<link rel="canonical" href=""> 101<meta name="theme-color" content="#0B5CFF"> 102<link rel="preload" href="/assets/icons/sprite.svg" as="image" type="image/svg+xml"> 103<link rel="stylesheet" href="/assets/css/config.css"> 104<link rel="stylesheet" href="/assets/css/shell.css"> 105<link rel="stylesheet" href="/assets/css/fx.css"> 106<link rel="stylesheet" href="/assets/css/icons.css"> 107<!--page--> 108 109<link rel="stylesheet" href="/assets/css/tilt-follow-mouse.css"> 110<link rel="stylesheet" href="/assets/css/video-scrub.css"> 111<link rel="stylesheet" href="/assets/css/parallax-block.css"> 112<link rel="stylesheet" href="/assets/css/calendar.css"> 113<link rel="stylesheet" href="/assets/css/first-splash.css"> 114<link rel="stylesheet" href="/assets/css/logo-animation.css"> 115<link rel="stylesheet" href="/assets/css/index.css"> 116 117<link rel="stylesheet" href="/assets/css/event.css"> 118<link rel="stylesheet" href="/assets/css/restauracion.css"> 119 120<!--/page--> 121<link rel="stylesheet" href="/assets/css/footer.css"> 122</head> 123 124<body class="ma-shell theme-light debug-overlay_"> 125<div id="first-visit-splash" aria-hidden="true"> 126 <div class="splash-inner"> 127 <div class="wrapper"> 128<!--?xml version="1.0" encoding="UTF-8"?--><svg id="logo-anim" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 766.38 921.42" width="766.3800048828125" height="921.4199829101562"><defs><style>.cls-1{stroke:#fffaf5;stroke-width:2px;}.cls-1,.cls-2{fill:#fffaf5;}.cls-1,.cls-3{stroke-linecap:round;stroke-linejoin:round;}.cls-3{fill:#06f;stroke:#06f;stroke-width:5px;}</style></defs><path class="cls-3 svg-elem-1" d="M174.77,59.61c-30.95.49-88.09,15.75-114.18,122.33-11.37,46.43-15.76,94.84-6.03,152.45,8.97,53.15,24.88,99.01,35.6,124.29,3.69,8.71,9.41,17.79,13.83,23.39,12.71,16.08,33.89,15.04,42.78,10.66,9.7-4.77,20.84-16.29,16.8-42.61-1.95-12.71-7.57-31.31-10.74-41.66-9.71-31.72-22.64-70-23.76-97.27-1.51-36.48,12.87-41.24,22.42-43.35,16.06-3.53,29.53,14.1,42.31,36.2,15.27,26.38,41.43,73.13,62.77,108.82,19.27,32.22,54.82,66.72,111.92,64.36,58.21-2.41,101.12-24.62,123.22-94.54,16.54-52.31,27.81-91.4,45.95-131.42,20.86-46.04,48.69-70.67,72.12-63.15,21.76,6.99,27.19,28.25,27.45,59.51.23,27.66-2.97,58.14-5.46,80.53-.9,8.12-2.54,24.47-1.86,33.56,1.31,17.84,9.04,35.66,29.13,38.51,21.4,3.04,38.57-14.06,45.43-34.74,2.71-8.15,5.02-20.63,6.26-29.47,6.29-44.68,7.92-74.72,5.09-120.43-3.32-53.47-13.78-102.22-32.04-144.41-17.46-40.34-45.5-66.21-81.48-68.5-39.81-2.53-85.51,23.9-109.48,75.15-22.1,47.25-39.77,95.75-50.49,120.5-10.88,25.1-26.86,40.57-51.43,43.16-30.05,3.16-55.93-18.65-74.9-49.74-16.53-27.11-49.29-78.72-66.81-96.06-16.47-16.29-35.28-36.68-74.44-36.06"></path><path class="cls-2 svg-elem-2" d="M134.29,753.5v-106.89c0-.49-.36-.91-.85-.99-.05,0-.1-.01-.15-.01-.43,0-.82.28-.95.7l-34.14,107.2h-24.59l-34.14-106.45c-.13-.42-.52-.69-.95-.69-.05,0-.1,0-.16.01-.49.08-.85.5-.85.99v106.15H14.02v-127.32h41.3l29.9,99.41c.13.42.52.71.96.71s.83-.29.96-.71l29.9-99.41h40.75v127.32h-23.49Z"></path><path class="cls-2 svg-elem-3" d="M156.78,627.18v125.32h-21.49v-105.89c0-.99-.72-1.82-1.69-1.98-.1-.02-.21-.02-.31-.02-.86,0-1.64.55-1.9,1.39l-33.92,106.5h-23.13l-33.92-105.76c-.27-.84-1.05-1.39-1.9-1.39-.1,0-.21,0-.31.02-.97.15-1.69.99-1.69,1.98v105.15H15.02v-125.32h39.55l29.68,98.7c.25.85,1.03,1.42,1.92,1.42s1.66-.58,1.92-1.42l29.68-98.7h39.01M158.78,625.18h-42.49l-30.11,100.13-30.11-100.13H13.02v129.32h25.49v-107.15l34.36,107.15h26.05l34.36-107.89v107.89h25.49v-129.32h0Z"></path><path class="cls-1 svg-elem-4" d="M177.98,708.31c0-29.37,19.21-48.96,48.22-48.96s48.03,19.58,48.03,48.96-19.21,48.77-48.03,48.77-48.22-19.39-48.22-48.77M249.29,708.31c0-16.99-9.23-28.27-23.09-28.27s-23.28,11.27-23.28,28.27,9.23,28.27,23.28,28.27,23.09-11.27,23.09-28.27"></path><path class="cls-2 svg-elem-5" d="M308.75,753.5l-31.63-90.37h23.34l21.22,69.5c.13.42.51.71.95.71h0c.44,0,.82-.28.95-.7l21.76-69.5h22.97l-31.81,90.37h-27.77Z"></path><path class="cls-2 svg-elem-6" d="M366.91,664.13l-31.1,88.37h-26.35l-30.93-88.37h21.19l21,68.79c.26.84,1.03,1.41,1.91,1.42h0c.87,0,1.65-.57,1.91-1.4l21.54-68.8h20.83M369.74,662.13h0,0ZM369.74,662.13h-25.12l-21.98,70.2-21.43-70.2h-25.49l32.33,92.37h29.19l32.51-92.37h0Z"></path><path class="cls-1 svg-elem-7" d="M377.86,635.34c0-8.32,6.28-14.59,14.59-14.59s14.59,6.28,14.59,14.59-6.46,14.4-14.59,14.4-14.59-6.28-14.59-14.4M380.26,662.13h24.02v92.37h-24.02v-92.37Z"></path><path class="cls-1 svg-elem-8" d="M419.05,724.76h23.28c0,7.95,6.65,13.49,19.39,13.49,10.35,0,17.37-3.88,17.37-9.79,0-16.45-58.94-3.7-58.94-38.8,0-19.58,17.18-30.29,40.46-30.29,26.97,0,41.2,13.67,40.09,32.69h-23.1c.37-7.76-4.61-13.67-16.99-13.67-9.79,0-15.7,4.43-15.7,9.97,0,17,58.93,2.22,58.93,38.62,0,19.03-17.36,30.11-42.12,30.11-26.6,0-42.67-12.75-42.67-32.33"></path><path class="cls-1 svg-elem-9" d="M527.67,724.39v-41.57h-18.11v-20.69h18.11v-24.94h24.02v24.94h26.42v20.69h-26.42v41.38c0,8.69,3.51,12.38,11.45,
12812.38,4.43,0,7.94-1.11,13.12-4.06v20.88c-4.62,2.58-10.35,3.7-17.74,3.7-20.69,0-30.85-10.53-30.85-32.7"></path><path class="cls-1 svg-elem-10" d="M651.62,738.61c-6.83,12.01-18.29,18.48-33.25,18.48-20.14,0-31.96-11.63-31.96-27.52,0-18.67,16.44-29.93,42.49-29.93,7.02,0,14.41.93,20.32,2.22v-.93c0-14.22-5.73-21.06-18.29-21.06-9.79,0-14.59,5.91-14.04,12.19h-24.75c-.75-18.66,13.67-32.7,38.61-32.7,27.15,0,42.48,14.96,42.48,41.75v53.39h-21.61v-15.89ZM623.73,738.8c12.19,0,22.35-7.76,26.42-19.76-5.91-1.85-13.12-2.78-19.03-2.78-14.22,0-20.69,4.99-20.69,12.38,0,6.64,5.17,10.16,13.3,10.16"></path><path class="cls-2 svg-elem-11" d="M691.23,753.5v-90.37h22.02v14.89c0,.48.34.89.81.98.07.01.13.02.19.02.4,0,.77-.24.92-.62,4.8-11.63,13.59-18.04,24.75-18.04,14.65,0,24.12,10.63,24.12,27.08,0,5.41-.98,10.86-2.83,15.81h-22.31c1.56-3.57,2.39-7.29,2.39-10.82,0-8.01-4.31-13.19-10.97-13.19-10.21,0-17.08,11.98-17.08,29.82v44.44h-22.02Z"></path><path class="cls-2 svg-elem-12" d="M739.92,661.36c14.05,0,23.12,10.24,23.12,26.08,0,5.06-.87,10.15-2.53,14.81h-20.12c1.25-3.26,1.9-6.61,1.9-9.82,0-8.49-4.81-14.19-11.97-14.19-10.81,0-18.08,12.38-18.08,30.82v43.44h-20.02v-88.37h20.02v13.89c0,.95.67,1.78,1.61,1.96.13.03.26.04.39.04.8,0,1.53-.48,1.85-1.24,4.64-11.23,13.1-17.42,23.83-17.42M739.92,659.36c-11.82,0-20.88,7.02-25.68,18.66v-15.89h-24.02v92.37h24.02v-45.44c0-17.36,6.65-28.82,16.08-28.82,6.1,0,9.97,4.8,9.97,12.19,0,3.7-.93,7.76-2.96,11.82h24.57c2.03-5.18,3.14-10.91,3.14-16.81,0-16.81-9.79-28.08-25.12-28.08h0Z"></path><path class="cls-1 svg-elem-13" d="M42.08,815.07h25.28l41.23,105.34h-21.97l-8.42-22.41c-6.47,2.86-15.2,4.66-23.48,4.66s-16.86-1.8-23.32-4.66l-8.43,22.41H1l41.08-105.34ZM54.72,884.6c5.87,0,12.19-1.05,17.45-2.86l-17.31-46.2-17.45,46.2c5.27,1.81,11.44,2.86,17.31,2.86"></path><path class="cls-2 svg-elem-14" d="M249.05,919.42c-1.63-25.39-6.3-41.08-23.97-41.08h-25.28c-.55,0-1,.45-1,1v40.08h-18.76v-103.34h48.06c23.05,0,37.37,11.44,37.37,29.85,0,12.68-6.08,21.83-17.58,26.46-.36.15-.61.49-.63.88-.02.39.19.75.54.94,11.98,6.26,18.17,20.23,20.01,45.22h-18.76ZM199.8,831.23c-.55,0-1,.45-1,1v30.85c0,.55.45,1,1,1h27.09c12.03,0,19.21-6.17,19.21-16.5s-7.18-16.35-19.21-16.35h-27.09Z"></path><path class="cls-2 svg-elem-15" d="M228.1,817.08c11.24,0,20.54,2.72,26.9,7.87,6.2,5.01,9.47,12.27,9.47,20.98,0,12.24-5.86,21.07-16.95,25.53-.72.29-1.21.98-1.25,1.76s.38,1.51,1.07,1.87c11.47,5.99,17.48,19.4,19.39,43.33h-16.74c-.96-14.1-2.87-23.3-6.13-29.67-3.94-7.68-10.08-11.42-18.77-11.42h-25.28c-1.1,0-2,.9-2,2v39.08h-16.76v-101.34h47.06M199.8,865.08h27.09c12.65,0,20.21-6.54,20.21-17.5s-7.74-17.35-20.21-17.35h-27.09c-1.1,0-2,.9-2,2v30.85c0,1.1.9,2,2,2M228.1,815.08h-49.06v105.34h20.76v-41.08h25.28c16.26,0,21.37,13.85,23.03,41.08h20.77c-1.65-24.38-7.37-40.18-20.62-47.11,11.59-4.67,18.21-13.99,18.21-27.39,0-18.96-14.45-30.85-38.37-30.85h0ZM199.8,863.08v-30.85h27.09c11.44,0,18.21,5.72,18.21,15.35s-6.77,15.5-18.21,15.5h-27.09Z"></path><path class="cls-2 svg-elem-16" d="M346.04,919.42v-103.34h72.2v15.16h-52.43c-.55,0-1,.45-1,1v24.08c0,.55.45,1,1,1h44.44v15.16h-44.44c-.55,0-1,.45-1,1v29.8c0,.55.45,1,1,1h53.93v15.16h-73.7Z"></path><path class="cls-2 svg-elem-17" d="M417.23,817.07v13.16h-51.43c-1.1,0-2,.9-2,2v24.08c0,1.1.9,2,2,2h43.44v13.16h-43.44c-1.1,0-2,.9-2,2v29.8c0,1.1.9,2,2,2h52.93v13.16h-71.7v-101.34h70.2M419.23,815.07h-74.2v105.34h75.7v-17.16h-54.93v-29.8h45.44v-17.16h-45.44v-24.08h53.43v-17.16h0Z"></path><path class="cls-2 svg-elem-18" d="M559.07,919.42l-40.51-82.65c-.17-.35-.52-.56-.9-.56-.07,0-.15,0-.23.03-.45.11-.77.51-.77.97v82.21h-18.77v-103.34h28.78l38.85,78.91c.17.35.52.56.9.56.08,0,.15,0,.23-.03.45-.11.77-.51.77-.97v-78.46h18.91v103.34h-27.26Z"></path><path class="cls-2 svg-elem-19" d="M585.34,817.07v101.34h-25.64l-40.24-82.09c-.34-.7-1.05-1.12-1.8-1.12-.15,0-.3.02-.45.05-.91.21-1.55,1.02-1.55,1.95v81.21h-16.77v-101.34h27.15l38.58,78.35c.34.69,1.05,1.12,1.79,1.12.15,0,.3-.02.45-.05.91-.21,1.55-1.02,1.55-1.95v-77.46h16.91M587.34,815.07h-20.91v79.46l-39.13-79.46h-30.4v105.34h20.77v-83.21l40.78,83.21h28.89v-105.34h0Z"></path><path class="cls-1 svg-elem-20" d="M698.86,815.07h25.28l41.23,105.34h-21.97l-8.42-22.41c-6.47,2.86-15.2,4.66-23.48,4.66s-16.86-1.8-23.32-4.66l-8.43,22.41h-21.97l41.08-105.34ZM711.5,884.6c5.87,0,12.19-1.
12805,17.45-2.86l-17.3-46.2-17.46,46.2c5.27,1.81,11.44,2.86,17.31,2.86"></path></svg> 129 130 131 132 133 134 135 </div> 136 </div> 137</div> 138<header class="site-header bg-glass"> 139 <div class="site-header__inner"> 140 <a href="/" class="brand" aria-label="Ir a la home"> 141 <img src="/assets/logos/Logo_MA_fondo_azulon.svg" alt="Movistar Arena" width="160" height="36"> 142 </a> 143 144 <!-- Desktop nav (>= 960px) --> 145 <nav class="site-nav" aria-label="Navegación principal"> 146 <a href="/programacion">Programación</a> 147 <a href="/planifica-tu-visita">Planifica tu visita</a> 148 <a href="/restauracion" class="is-active" aria-current="page">Restauración</a> 149 <a href="/recinto">Recinto</a> 150 <!--<a href="/experiencias-vip">Experiencias VIP</a>--> 151 <a href="/actualidad">Actualidad Musical</a> 152 <!--<a href="/ayuda">¿Te ayudamos?</a>--> 153 154 </nav> 155 156 <!-- Mobile toggle (< 960px) --> 157 <button class="nav-toggle" 158 type="button" 159 aria-controls="mobile-nav" 160 aria-expanded="false" 161 aria-label="Abrir menú"> 162 <span class="nav-toggle__bars" aria-hidden="true"></span> 163 </button> 164 </div> 165 166 <!-- Mobile drawer --> 167 <div class="mobile-nav" id="mobile-nav" hidden> 168 <button class="mobile-nav__backdrop" type="button" aria-label="Cerrar menú"></button> 169 170 <div class="mobile-nav__panel" role="dialog" aria-modal="true" aria-label="Menú"> 171 <div class="mobile-nav__head"> 172 <span class="mobile-nav__title">Menú</span> 173 <button class="mobile-nav__close" type="button" aria-label="Cerrar menú">â</button> 174 </div> 175 176 <nav class="mobile-nav__links" aria-label="Navegación móvil"> 177 <a href="/programacion">Programación</a> 178 <a href="/planifica-tu-visita">Planifica tu visita</a> 179 <a href="/restauracion" class="is-active" aria-current="page">Restauración</a> 180 <a href="/recinto">Recinto</a> 181 <!--<a href="/experiencias-vip">Experiencias VIP</a>--> 182 <a href="/actualidad">Actualidad Musical</a> 183 <!--<a href="/ayuda">¿Te ayudamos?</a>--> 184 </nav> 185 </div> 186 </div> 187</header><main id="main" class="page w-full page-without-header_"> 188 189 <section class="event-hero p-0" aria-label="Planifica tu visita al Movistar Arena"> 190 <img 191 class="event-hero__bg " 192 src="/assets/img/recursos/fondo_chico_pizza.webp" 193 alt="" 194 aria-hidden="true" 195 loading="eager" 196 decoding="async" 197 /> 198 <div class="event-hero__wash_dark" aria-hidden="true"></div> 199 200 <div class="event-sheet" role="region" aria-label="Información práctica"> 201 <div class="event-sheet__inner"> 202 <div class="event-sheet__content"> 203 <p class="event-kicker"> 204 Restauración · Movistar Arena 205 </p> 206 207 <h1 class="event-title" style="margin-bottom:0;"> 208 Encuentra<br> 209 <strong>tus sabores favoritos</strong><br> 210 en nuestras barras </h1> 211 </div> 212 </div> 213 </div> 214</section> 215 216 <div class="page-split"> 217 <section class="page-hero " aria-label="Hero principal"> 218 <div class="page-hero__inner w-full"> 219 220 <div class="event-marquee" data-keep-interactive aria-label="Eventos destacados (auto)"> 221 <div class="event-marquee__viewport"> 222 <div class="event-marquee__track"> 223 <div class="event-grid event-grid--marquee mt-0"> 224 225 <article class="event-card"> 226 <a class="restauracion event-card__media" href="" aria-label=""> 227 <img src="/assets/img/restauracion/mahou.webp" 228 data-src="/assets/img/restauracion/mahou.webp" 229 data-fallback="/assets/img/placeholder-event-transparente.webp" 230 data-tries="1" 231 alt="Mahou" 232 loading="lazy" decoding="async" 233 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 234 </a> 235 </article> 236 237 <article class="event-card"> 238 <a class="restauracion event-card__media" href="" aria-label=""> 239 <img src="/assets/img/restauracion/OscarMayer.jpg" 240 data-src="/assets/img/restauracion/OscarMayer.jpg" 241 data-fallback="/assets/img/placeholder-event-transparente.webp" 242 data-tries="1" 243 alt="OscarMayer" 244 loading="lazy" decoding="async" 245 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 246 </a> 247 </article> 248 249 <article class="event-card"> 250 <a class="restauracion event-card__media" href="" aria-label=""> 251 <img src="/assets/img/restauracion/PapaJohns2.jpg" 252 data-src="/assets/img/restauracion/PapaJohns2.jpg" 253 data-fallback="/assets/img/placeholder-event-transparente.webp" 254 data-tries="1" 255 alt="PapaJohns" 256 loading="lazy" decoding="async" 257 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 258 </a> 259 </article> 260 261 <article class="event-card"> 262 <a class="restauracion event-card__media" href="" aria-label=""> 263 <img src="/assets/img/restauracion/Navidul.jpg" 264 data-src="/assets/img/restauracion/Navidul.jpg" 265 data-fallback="/assets/img/placeholder-event-transparente.webp" 266 data-tries="1" 267 alt="Navidul" 268 loading="lazy" decoding="async" 269 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 270 </a> 271 </article> 272 273 <article class="event-card"> 274 <a class="restauracion event-card__media" href="" aria-label=""> 275 <img src="/assets/img/restauracion/Risi.jpg" 276 data-src="/assets/img/restauracion/Risi.jpg" 277 data-fallback="/assets/img/placeholder-event-transparente.webp" 278 data-tries="1" 279 alt="Risi" 280 loading="lazy" decoding="async" 281 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 282 </a> 283 </article> 284 285 <article class="event-card"> 286 <a class="restauracion event-card__media" href="" aria-label=""> 287 <img src="/assets/img/restauracion/BBRapid.png" 288 data-src="/assets/img/restauracion/BBRapid.png" 289 data-fallback="/assets/img/placeholder-event-transparente.webp" 290 data-tries="1" 291 alt="BBRapid"
292 loading="lazy" decoding="async" 293 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 294 </a> 295 </article> 296 297 <article class="event-card"> 298 <a class="restauracion event-card__media" href="" aria-label=""> 299 <img src="/assets/img/restauracion/pernod-ricard.webp" 300 data-src="/assets/img/restauracion/pernod-ricard.webp" 301 data-fallback="/assets/img/placeholder-event-transparente.webp" 302 data-tries="1" 303 alt="Pernod Ricard" 304 loading="lazy" decoding="async" 305 onerror="this.onerror=null; this.src=this.getAttribute('data-fallback') || '/assets/img/placeholder-event-transparente.webp';"> 306 </a> 307 </article> 308 309 310 311 312 313 </div> 314 </div> 315 </div> 316 </div> 317 </div> 318 </section> 319 </div> 320 321 <section class="home-basket" aria-label="Acaban de salir a la venta"> 322 <div class="home-basket__inner"> 323 <div class="hero-heading-content"> 324 <div class="hero-heading-headline-container"> 325 <div class="hero-heading-headline-top"> 326 <button class="btn icon-btn btn--lg btn--yellow" type="button" aria-label="Añadir al calendario"> <span aria-hidden="true"> 327 <svg class="icon icon--grid icon--share" aria-hidden="true"> 328 <use href="/assets/icons/sprite.svg#i-share"></use> 329 </svg> 330 </span> </button> 331 <h2 class="typography-heading-headline text-cream">Restauración</h2> 332 </div> 333 <div class="hero-heading-headline-bottom"> 334 <h3 class="typography-heading-subheadline text-cream">Un evento inolvidable, <br class="large"> 335 <br class="small"> 336 siempre te deja <br class="medium"> 337 <br class="large"> 338 <br class="small"> 339 un buensabor de boca.</h3> 340 341 </div> 342 </div> 343 <div class="hero-heading-cta-container"> <a href="/programacion/" data-analytics-title="" aria-label="" data-analytics-exit-link="" data-rid-relay="{"288":"itsct"}" class="btn btn--primary">Ver programación</a> <a href="" data-analytics-title="" aria-label="" class="icon-wrapper hero-heading-cta-link"><span class="icon-copy text-cream">Abrir app</span> <span class="icon icon-after more text-cream"> 344 <svg class="icon icon--grid icon--share" aria-hidden="true"> 345 <use href="/assets/icons/sprite.svg#i-chevron-right"></use> 346 </svg> 347 </span> </a> </div> 348 </div> 349 <div class="home-basket__layout"> 350 <article class="home-basket__card home-basket__card--basket"> 351 <div class="home-basket__link"> 352 <div class="home-basket__media" 353 style="--bg:url('/assets/img/restauracion/OscarMayer_003.jpg');"> </div> 354 <div class="home-basket__overlay"> 355 <div class="home-basket__content"> 356 <div class="home-basket__brand"> <img src="/assets/logos/restauracion/Oscar_Mayer.png" alt="Oscar Mayer" class="home-basket__logo" loading="lazy"> 357 </div> 358 <h3 class="home-basket__title">The Genuine Hot dog</h3> 359 <p class="home-basket__desc">Ven a vivir el mundo del Hot Dog en el espacio Oscar Mayer. Descubrirás las mejores recetas de hot dogs elaboradas con nuestra salchicha especial, nuestro panecillo estilo americano y unos ingredientes exclusivos. Oscar Mayer Hot Dogs el mejor acompañante en todos los eventos.</p> 360 <div class="home-basket__actions"> <a class="btn" href="https://www.facebook.com/oscarmayerspain" target="_blank">Web oficial</a> </div> 361 </div> 362 </div> 363 </div> 364 </article> 365 <article class="home-basket__card home-basket__card--basket"> 366 <div class="home-basket__link"> 367 <div class="home-basket__media" 368 style="--bg:url('/assets/img/restauracion/PapaJohns_003.jpg');"> </div> 369 <div class="home-basket__overlay"> 370 <div class="home-basket__content"> 371 <div class="home-basket__brand"> <img src="/assets/logos/restauracion/papajhons.webp" alt="Papa Johns" class="home-basket__logo" loading="lazy"> 372 </div> 373 <h3 class="home-basket__title">Disfruta de Papa Johns</h3> 374 <p class="home-basket__desc">En Papa Johns nuestro compromiso con la calidad es el eje para elegir los mejores ingredientes y que disfrutes de la mejor pizza. Desde nuestra salsa de tomate natural a nuestra masa recién estirada a mano, te ofrecemos lo mejor. Ven y descubre la Mejor Pizza con los Mejores ingredientes.</p> 375 <div class="home-basket__actions"> <a class="btn" href="https://www.papajohns.es/" target="_blank">Web oficial</a> </div> 376 </div> 377 </div> 378 </div> 379 </article> 380 381 </div> 382 </div> 383 </section> 384 385 <!--Actualidad--> 386 387 388 <!--banner--> 389 <section class="ma-adsrow " aria-label="Promociones">
390 <div class="ma-adsrow__inner"> 391 <div class="ma-adsrow__grid"> 392 393 <!-- CARD 2: IMAGE + TEXT/CTA en esquina --><!--data-pos: tl / tr / bl / br --> 394 <article 395 class="card-ads scalehover" 396 data-type="image" 397 data-src="/assets/ads/banners/cards/banner-vaso.webp" 398 data-link="https://ma2026.approlab.es/actualidad/" 399 data-title="Nuevo vaso Movistar Arena" 400 data-lines="Gratis y Ecológico|Nuevo vaso|¡ConsÃguelo en tu próximo evento!" 401 data-pos="br" 402 aria-label="Promoción: Nuevo vaso Movistar Arena" 403 > 404 <div class="card-ads__media"></div> 405 <div class="card-ads__copy"> 406 <div class="card-ads__lines"></div> 407 408 </div> 409 </article> 410 411 412 <!-- CARD 1: VIDEO --> 413 <article 414 class="card-ads scalehover" 415 data-type="video" 416 data-src="/assets/video/La-previa-movistar.mp4" 417 data-poster="/assets/ads/banners/cards/banner-vaso.webp" 418 data-link="https://ma2026.approlab.es/programacion/" 419 aria-label="Promoción: Nuevo vaso Movistar Arena" 420 > 421 <div class="card-ads__media"></div> 422 </article> 423 424 <!-- CARD 2: IMAGE --> 425 <article 426 class="card-ads scalehover" 427 data-type="image" 428 data-src="/assets/ads/banners/cards/banner-camiseta.webp" 429 data-link="https://ma2026.approlab.es/actualidad/" 430 data-title="Nuevo vaso Movistar Arena" 431 data-lines="Movistar Arena|Merchandisig Oficial|¡Consigue el tuyo!" 432 data-pos="bl" 433 aria-label="Promoción: Nuevo vaso Movistar Arena" 434 > 435 <div class="card-ads__media"></div> 436 <div class="card-ads__copy"> 437 <div class="card-ads__lines"></div> 438 439 </div> 440 </article> 441 442 <!-- CARD 3: HTML5 BANNER (iframe) --> 443 <!-- <article 444 class="card-ads scalehover" 445 data-type="html5" 446 data-src="https://ma2026.approlab.es/assets/ads/banners/cards/demohtml/index.html" 447 data-link="https://ma2026.approlab.es/programacion/" 448 aria-label="Promoción interactiva" 449 > 450 <div class="card-ads__media"></div> 451 <a class="card-ads__overlayLink" href="#" aria-label="Abrir promoción"></a> 452 </article>--> 453 454 </div> 455 <!--beneficios movistar--> 456 <article class="visit__card bg-glass mt-5" aria-labelledby="visit-objects-title"> 457 <header class="previa2__top mb-4"> 458 <h2>
458Beneficios clientes Movistar</h2> 459 <div class="previa2__line" aria-hidden="true"></div> 460 </header> 461 <h3 id="visit-objects-title" class="visit__card-title"> 462 Si eres cliente Movistar, tu experiencia en el Movistar Arena empieza antes⦠y sabe mejor. </h3> 463 464 <p class="visit__text">Disfruta de ventajas exclusivas pensadas para que cada visita sea aún más especial:</p> 465 466 <ul class="visit__bullets"> 467 <!--<li><strong>10% de descuento</strong> en todas las consumiciones en las barras del recinto.</li>--> 468 <li><strong>Acceso a La Previa</strong> el espacio donde el concierto empieza antes del concierto.</li> 469 <!--<li><strong>Entrada preferente</strong> para acceder al recinto de forma más rápida y cómoda.</li>--> 470 <li><strong>Ventajas exclusivas</strong> y experiencias especiales disponibles en la app Mi Movistar.</li> 471 472 </ul> 473 474 <div class="visit__actions"> 475 <a class="btn btn-ghost" href="/ayuda#beneficios-movistar">FAQ de Beneficios Movistar</a> 476 <a class="btn btn--dark--blue" href="/experiencias-vip">Descubre <img class="ml-2 mb-1" src="/assets/logos/logo_la_previa_movistar-fondo_azulon.svg" alt="La Previa" width="auto" height="18" loading="lazy" decoding="async"></a> 477 <a class="btn btn--blue" href="https://www.movistar.es/atencion-cliente/app-mi-movistar" target="_blank">Cómo acceder a la app Mi Movistar</a> 478 </div> 479 </article> 480 <!--fin beneficios movistar--> 481 </div> 482</section> 483 484 <section class="home-basket" aria-label="Acaban de salir a la venta"> 485 <div class="home-basket__inner"> 486 487 <div class="home-basket__layout"> 488 <article class="home-basket__card home-basket__card--basket"> 489 <div class="home-basket__link"> 490 <div class="home-basket__media" 491 style="--bg:url('/assets/img/restauracion/Navidul_003.jpg');"> </div> 492 <div class="home-basket__overlay"> 493 <div class="home-basket__content"> 494 <div class="home-basket__brand"> <img src="/assets/logos/restauracion/navidul.webp" alt="Navidul" class="home-basket__logo" loading="lazy"> 495 </div> 496 <h3 class="home-basket__title">All you need ⦠es Jamón</h3> 497 <p class="home-basket__desc">Disfruta de una amplia variedad de bocadillos elaborados con nuestros excelentes productos ibéricos, el Clásico con jamón y un toque de aceite de oliva virgen, lomo ibérico, queso 100% oveja. ¿Prefieres algo para picar?, deliciosos conos de taquitos de jamón y queso, siempre con la calidad de NAVIDUL.</p> 498 <div class="home-basket__actions"> <a class="btn" href="https://www.navidul.es/" target="_blank">Web oficial</a> </div> 499 </div> 500 </div> 501 </div> 502 </article> 503 <article class="home-basket__card home-basket__card--basket"> 504 <div class="home-basket__link"> 505 <div class="home-basket__media" 506 style="--bg:url('/assets/img/restauracion/Beberapid_001.jpg');"> </div> 507 <div class="home-basket__overlay"> 508 <div class="home-basket__content"> 509 <div class="home-basket__brand"> <img src="/assets/logos/restauracion/Beberapid.png" alt="Beberapid" class="home-basket__logo" loading="lazy"> 510 </div> 511 <h3 class="home-basket__title">En tu momento, en tu lugar</h3> 512 <p class="home-basket__desc">Servicio de venta y dispensación móvil de bebidas y comida. Nuestros mochileros Beberapid te atenderán in situ, sin necesidad de hacer colas en barras ni desplazarte de tu ubicación. No te pierdas ni un minuto del espectáculo y pide a tu mochilero más cercano!.</p> 513 <div class="home-basket__actions"> <a class="btn" href="https://beberapid.com/" target="_blank">Web oficial</a> </div> 514 </div> 515 </div> 516 </div> 517 </article> 518 519 </div> 520 </div> 521 </section> 522 523</main> 524 525<!--modal--> 526<div class="podmodal" id="podmodal" aria-hidden="true"> 527 <div class="podmodal__backdrop" data-close></div> 528 <div class="podmodal__panel" role="dialog" aria-modal="true" aria-label="Reproductor"> 529 <header class="podmodal__topbar"> 530 <button class="podmodal__close" type="button" data-close aria-label="Cerrar">â</button> 531 <div class="podmodal__meta"> 532 <div class="podmodal__title" id="podmodalTitle">Reproduciendoâ¦</div> 533 <div class="podmodal__sub" id="podmodalSub">Movistar Arena</div> 534 </div> 535 <div class="podmodal__spacer"></div> 536 </header> 537 <div class="podmodal__playerWrap"> 538 <iframe 539 id="podmodalFrame" 540 class="podmodal__frame" 541 title="Reproductor YouTube" 542 allow="autoplay; encrypted-media; picture-in-picture" 543 allowfullscreen 544 loading="lazy" 545 src="" 546 ></iframe> 547 </div> 548 </div> 549</div> 550<footer class="ma-footer" role="contentinfo"> 551 <!-- 1) Top: Marca + contacto + newsletter --> 552 <div class="ma-footer__top">
553 <div class="ma-footer__container ma-footer__topGrid"> 554 <!-- Brand --> 555 <div class="ma-footer__brand"> 556 <a class="ma-footer__brandLink" href="/" aria-label="Ir a la home"> 557 <img 558 src="/assets/logos/Logo_MA_fondo_azulon.svg" 559 alt="Movistar Arena" 560 width="170" 561 height="40" 562 loading="lazy" 563 decoding="async" 564 > 565 </a> 566 567 <p class="ma-footer__tagline"> 568 El espacio multiusos de referencia en Madrid. 569 </p> 570 571 <!-- Social --> 572 <div class="ma-footer__social" aria-label="Redes sociales"> 573 <a class="ma-footer__socialLink" href="https://www.instagram.com/movistararenaes/" rel="noopener" aria-label="Instagram" target="_blank"> 574 <span class="ma-footer__iconSvg ma-footer__iconSvg--instagram" aria-hidden="true"></span> 575 </a> 576 577 <a class="ma-footer__socialLink" href="https://www.tiktok.com/@movistararenaes" rel="noopener" aria-label="TikTok" target="_blank"> 578 <span class="ma-footer__iconSvg ma-footer__iconSvg--tiktok" aria-hidden="true"></span> 579 </a> 580 581 <a class="ma-footer__socialLink" href="https://x.com/MovistarArenaEs" rel="noopener" aria-label="X" target="_blank"> 582 <span class="ma-footer__iconSvg ma-footer__iconSvg--x" aria-hidden="true"></span> 583 </a> 584 585 <a class="ma-footer__socialLink" href="https://www.youtube.com/@MovistarArenaEs" rel="noopener" aria-label="YouTube" target="_blank"> 586 <span class="ma-footer__iconSvg ma-footer__iconSvg--youtube" aria-hidden="true"></span> 587 </a> 588 589 <a class="ma-footer__socialLink" href="https://www.facebook.com/MovistarArenaES" rel="noopener" aria-label="Facebook" target="_blank"> 590 <span class="ma-footer__iconSvg ma-footer__iconSvg--facebook" aria-hidden="true"></span> 591 </a> 592</div> 593 </div> 594 595 <!-- Contact --> 596 <div class="ma-footer__contact"> 597 <h2 class="ma-footer__h">Contacto</h2> 598 <ul class="ma-footer__list"> 599 <li> 600 <a class="ma-footer__link" href="tel:+34914449949">+34 914 44 99 49</a> 601 </li> 602 <li class="ma-footer__muted"> 603 Av. de Felipe II, 28009 Madrid 604 </li> 605 <li> 606 <a class="ma-footer__link" href="/ayuda">Preguntas Frecuentes</a> 607 </li> 608 </ul> 609 </div> 610 611 <!-- Newsletter --> 612 <div class="ma-footer__newsletter"> 613 <h2 class="ma-footer__h">Suscripción</h2> 614 <p class="ma-footer__muted"> 615 Recibe novedades de conciertos, preventas y experiencias. 616 </p> 617 <!-- SENDY sin jquery-1.7.1.min.js y con signup.js cargado en el index.php --> 618 <form class="ma-footer__form" action="includes/api_sendy/php/signup.php" method="POST" accept-charset="utf-8" name="signup-form" id="signup-form"> 619 <input type="hidden" class="form-control" name="consentimiento" value="4"/> 620 <input type="hidden" class="form-control" name="ipaddress" value="181.215.65.77"/> 621 <input type="hidden" class="form-control" name="notes" value="Acepto recibir información sobre eventos, promociones, invitaciones a conciertos y mucho más por correo electrónico a la dirección indicada arriba. Confirmo también que he leÃdo, entiendo y aceptado la polÃtica de privacidad."/> 622 <input type="hidden" class="form-control" name="hp" value=""/> 623 624 <label class="ma-footer__label" for="nl-email">Nombre</label> 625 <div class="ma-footer__formRow"> 626 <input 627 class="ma-footer__input" 628 type="text" 629 id="name" 630 name="name" 631 inputmode="name" 632 autocomplete="name" 633 required 634 placeholder="nombre" 635 > 636 </div> 637 <label class="ma-footer__label" for="nl-email">Email</label> 638 <div class="ma-footer__formRow"> 639 <input 640 class="ma-footer__input" 641 type="email" 642 id="nl-email" 643 name="email" 644 inputmode="email" 645 autocomplete="email" 646 required 647 placeholder="[email protected]" 648 > 649 650 </div> 651 652 <p style="margin-top: 5px;" > 653 <label class="ma-footer__label" id="captcha">¿Cuánto es 9 + 5?</label> 654 <input type="text" class="ma-footer__input mt-2" id="captchaInput" name="captcha" required> 655 <input type="hidden" name="captcha_token" value="d23ec02598410218f813ffcc7b48d3fc6d4e46abba2ed9b8f8b75932f9754c09"> 656 </p> 657 658 <label class="ma-footer__check"> 659 <input type="checkbox" name="gdpr" id="gdpr" required>
660 <span>He leÃdo y acepto la <a class="ma-footer__link" href="/privacidad"><u>polÃtica de privacidad</u></a>. Acepto recibir información sobre eventos, promociones, invitaciones a conciertos y mucho más por correo electrónico a la dirección indicada arriba. Confirmo también que he leÃdo, entiendo y aceptado la polÃtica de privacidad.</span> 661 </label> 662 <button class="ma-footer__btn" type="submit">Suscribirme</button> 663 664 <p class="h4" id="status"></p> 665 </form> 666 </div> 667 </div> 668 </div> 669 670 671 672 673 <!-- 2) Navegación: 4 columnas (con details para móvil sin JS) --> 674 <div class="ma-footer__nav"> 675 <div class="ma-footer__container ma-footer__navGrid"> 676 <details class="ma-footer__col" open> 677 <summary class="ma-footer__summary">Eventos</summary> 678 <ul class="ma-footer__list"> 679 <li><a class="ma-footer__link" href="/programacion">Programación</a></li> 680 <li><a class="ma-footer__link" href="/programacion?cat[]=1">Conciertos</a></li> 681 <li><a class="ma-footer__link" href="/programacion?cat[]=2">Baloncesto</a></li> 682 <li><a class="ma-footer__link" href="/actualidad">Actualidad</a></li> 683 </ul> 684 </details> 685 686 <details class="ma-footer__col" open> 687 <summary class="ma-footer__summary">Tu visita</summary> 688 <ul class="ma-footer__list"> 689 <li><a class="ma-footer__link" href="/planifica-tu-visita">Planifica tu visita</a></li> 690 <li><a class="ma-footer__link" href="/ayuda">Accesos y horarios</a></li> 691 <li><a class="ma-footer__link" href="/ayuda">Consigna / guardarropa</a></li> 692 <li><a class="ma-footer__link" href="/ayuda">Parking</a></li> 693 </ul> 694 </details> 695 696 <details class="ma-footer__col" open> 697 <summary class="ma-footer__summary">Entradas</summary> 698 <ul class="ma-footer__list"> 699 <li><a class="ma-footer__link" href="/programacion">Compra de entradas</a></li> 700 <li><a class="ma-footer__link" href="/ayuda">Incidencias</a></li> 701 <li><a class="ma-footer__link" href="/experiencias-vip">Experiencias VIP</a></li> 702 <li><a class="ma-footer__link" href="/ayuda">Taquillas</a></li> 703 </ul> 704 </details> 705 706 <details class="ma-footer__col" open> 707 <summary class="ma-footer__summary">Corporativo</summary> 708 <ul class="ma-footer__list"> 709 <li><a class="ma-footer__link" href="/recinto">El recinto</a></li> 710 <li><a class="ma-footer__link" href="/recinto">Eventos corporativos</a></li> 711 <li><a class="ma-footer__link" href="/ayuda">Trabaja con nosotros</a></li> 712 </ul> 713 </details> 714 </div> 715 </div> 716 717 <!-- 3) Sellos / asociaciones --> 718 <div class="ma-footer__badges"> 719 <div class="ma-footer__container"> 720 <h2 class="ma-footer__h ma-footer__h--small">Sellos y asociaciones</h2> 721 <div class="ma-footer__logosRow" role="list"> 722 <a class="ma-footer__logo" href="/calidad" target="_blank" role="listitem" aria-label="Sello ISO 9001" style=""> 723 <img src="/assets/logos/asociaciones/ISO_9001.webp" alt="Movistar arena, certificado en ISO 9001" width="120" loading="lazy" decoding="async"> 724 </a> 725 <a class="ma-footer__logo" href="https://europeanarenas.com/" target="_blank" role="listitem" aria-label="Logo European Arenas Association"> 726 <img src="/assets/logos/asociaciones/EAA.webp" alt="Miembro del European Arenas Association" width="120" loading="lazy" decoding="async"> 727 </a> 728 729 <a class="ma-footer__logo" href="https://www.arenashispanohablantes.com/" target="_blank" role="listitem" aria-label="Logo Asociación Hispanohablante de Arenas del Espectáculo"> 730 <img src="/assets/logos/asociaciones/logo-ahae.svg" alt="Miembro de AHAE Asociación Hispanohablante de Arenas del Espectáculo" width="120" loading="lazy" decoding="async"> 731 </a> 732 733 <a class="ma-footer__logo" href="https://breeam.es/" target="_blank" role="listitem" aria-label="Certificación BREEAM"> 734 <img src="/assets/logos/breeam.webp" alt="Arena certificada con Certificación BREEAM" width="120" loading="lazy" decoding="async"> 735 </a> 736 737 738 </div> 739 </div> 740 </div> 741
742 <!-- 4) Sponsors / colaboradores / partners --> 743 <div class="ma-footer__partners"> 744 <div class="ma-footer__container"> 745 <div class="ma-footer__partnerBlocks"> 746 <section class="ma-footer__partnerBlock" aria-label="Patrocinadores"> 747 <h2 class="ma-footer__h ma-footer__h--small">Naming</h2> 748 <div class="ma-footer__logosRow"> 749 <a class="ma-footer__logo" href="https://movistar.es/" target="_blank" role="listitem" aria-label="Logo Movistar Patrocinador del Movistar Arena"> 750 <img src="/assets/logos/patrocinadores/logo-m-movistar.webp" alt="Movistar" width="120" loading="lazy" decoding="async"> 751 </a> 752 </div> 753 </section> 754 755 <section class="ma-footer__partnerBlock" aria-label="Colaboradores"> 756 <h2 class="ma-footer__h ma-footer__h--small">Patrocinadores</h2> 757 <div class="ma-footer__logosRow"> 758 759 <!--<a class="ma-footer__logo" href="https://www.mahou-sanmiguel.com/" target="_blank" role="listitem" aria-label="Logo Mahou San Miguel Patrocinador del Movistar Arena"> 760 <img src="/assets/logos/patrocinadores/logo-mahou.webp" alt="Mahou" width="120" loading="lazy" decoding="async"> 761 </a> 762 763 <a class="ma-footer__logo" href="https://www.endesa.com/es" target="_blank" role="listitem" aria-label="Logo Endesa Patrocinador del Movistar Arena"> 764 <img src="/assets/logos/patrocinadores/logo-endesa.webp" alt="Endesa" width="120" loading="lazy" decoding="async"> 765 </a> 766 767 <a class="ma-footer__logo" href="https://www.skoda.es/" target="_blank" role="listitem" aria-label="Logo Å koda Patrocinador del Movistar Arena"> 768 <img src="/assets/logos/patrocinadores/logo-skoda.webp" alt="Å koda" width="120" loading="lazy" decoding="async"> 769 </a> --> 770 771 <img src="/assets/logos/patrocinadores/mahou.jpg" alt="Mahou" width="60" loading="lazy" decoding="async"> 772 <img src="/assets/logos/patrocinadores/endesa.jpg" alt="Endesa" width="60" loading="lazy" decoding="async"> 773 <img src="/assets/logos/patrocinadores/skoda.jpg" alt="Å koda" width="60" loading="lazy" decoding="async"> 774 <img src="/assets/logos/patrocinadores/cocacola.jpg" alt="CocaCola" width="60" loading="lazy" decoding="async"> 775 <img src="/assets/logos/patrocinadores/caser.png" alt="Caser" width="60" loading="lazy" decoding="async"> 776 <img src="/assets/logos/patrocinadores/suntory.png" alt="Suntory" width="60" loading="lazy" decoding="async"> 777 <img src="/assets/logos/patrocinadores/PernodRicard.jpg" alt="PernodRicard" width="60" loading="lazy" decoding="async"> 778 779 </div> 780 </section> 781 782 <section class="ma-footer__partnerBlock" aria-label="Partners"> 783 <h2 class="ma-footer__h ma-footer__h--small">Partners</h2> 784 <div class="ma-footer__logosRow"> 785 <img src="/assets/logos/patrocinadores/fluje.png" alt="Fluje" width="60" loading="lazy" decoding="async"> 786 <img src="/assets/logos/patrocinadores/mompadeport.png" alt="Mompadeport" width="60" loading="lazy" decoding="async"> 787 <img src="/assets/logos/patrocinadores/ktl.png" alt="KTL" width="60" loading="lazy" decoding="async"> 788 <img src="/assets/logos/patrocinadores/milwaukee.png" alt="Milwaukee" width="60" loading="lazy" decoding="async"> 789 <img src="/assets/logos/patrocinadores/cabify.png" alt="Cabify" width="60" loading="lazy" decoding="async"> 790 </div> 791 </section> 792 </div> 793 </div> 794 </div> 795 796 <!-- 5) NextGenerationEU --> 797 <div class="ma-footer__eu"> 798 <div class="ma-footer__container ma-footer__euRow"> 799 <img src="/assets/logos/ue/next-generation-EU.svg" alt="Financiado por la Unión Europea â NextGenerationEU" width="260" height="44" loading="lazy" decoding="async"> 800 <img src="/assets/logos/ue/Logo-PRTR.svg" alt="Plan de Recuperación, transformación y resiliencia" width="260" height="44" loading="lazy" decoding="async"> 801 <p class="ma-footer__muted"> 802 Plan de Recuperación, transformación y resiliencia - Financiado por la Unión Europea â NextGenerationEU. 803 </p> 804 </div> 805 </div> 806 807 <!-- 6) Legal / disclaimer --> 808 <div class="ma-footer__bottom">
809 <div class="ma-footer__container ma-footer__bottomRow"> 810 <p class="ma-footer__legal"> 811 © <span>Movistar Arena</span> · 812 <!--<a class="ma-footer__link" href="/legal">Legal</a> ·--> 813 <a class="ma-footer__link" href="/privacidad">Privacidad</a> · 814 <a class="ma-footer__link" href="/cookies">Cookies</a> · 815 <a class="ma-footer__link" href="/calidad">Calidad</a> 816 <!--<a class="ma-footer__link" href="/accesibilidad">Accesibilidad</a>--> 817 </p> 818 819 <p class="ma-footer__disclaimer"> 820 La disponibilidad de entradas y condiciones dependen del promotor y del canal de venta. 821 </p> 822 </div> 823 </div> 824</footer>
824<script src="/assets/js/shell.js" defer></script>
824
825<script src="/assets/js/video-scrub.js" defer></script>
825
826<script src="/assets/js/config-fx.js" defer></script>
826 827<link rel="stylesheet" href="/assets/css/chatbot.css?v=1.0"> 828 829<div class="ma-chatbot" data-ma-chatbot="1" data-ma-lang="es"> 830 <!-- FAB stack container (para convivir con otros FABs) --> 831 <div class="ma-chatbot__fabstack" aria-hidden="false"> 832 <button 833 type="button" 834 class="ma-chatbot__fab" 835 id="maChatbotFab" 836 aria-label="¿Necesitas ayuda?" 837 aria-haspopup="dialog" 838 aria-expanded="false" 839 aria-controls="maChatbotPanel" 840 > 841 <span class="ma-chatbot__fabIcon" aria-hidden="true">?</span> 842 </button> 843 </div> 844 845 <!-- Overlay --> 846 <div class="ma-chatbot__overlay" id="maChatbotOverlay" hidden></div> 847 848 <!-- Panel: bottom-sheet en móvil, drawer en desktop --> 849 <section 850 class="ma-chatbot__panel" 851 id="maChatbotPanel" 852 role="dialog" 853 aria-modal="true" 854 aria-labelledby="maChatbotTitle" 855 hidden 856 > 857 <header class="ma-chatbot__header"> 858 <div class="ma-chatbot__headerLeft"> 859 <button type="button" class="ma-chatbot__iconBtn" id="maChatbotBack" aria-label="Volver" disabled> 860 â 861 </button> 862 </div> 863 864 <div class="ma-chatbot__headerCenter"> 865 <h2 class="ma-chatbot__title" id="maChatbotTitle">Asistente</h2> 866 <p class="ma-chatbot__subtitle" id="maChatbotSubtitle">Movistar Arena</p> 867 </div> 868 869 <div class="ma-chatbot__headerRight"> 870 <button type="button" class="ma-chatbot__iconBtn" id="maChatbotClose" aria-label="Cerrar"> 871 â 872 </button> 873 </div> 874 </header> 875 876 <div class="ma-chatbot__body"> 877 <div class="ma-chatbot__messages" id="maChatbotMessages" aria-live="polite" aria-relevant="additions text"> 878 <!-- Mensajes se pintan por JS --> 879 </div> 880 881 <!-- Thinking overlay (tipo Siri) --> 882<div class="ma-chatbot__thinking" id="maChatbotThinking" hidden aria-hidden="true"> 883 <div class="ma-chatbot__thinkingInner" role="status" aria-live="polite"> 884 <div class="ma-chatbot__thinkingDots" aria-hidden="true"> 885 <span></span><span></span><span></span> 886 </div> 887 <div class="ma-chatbot__thinkingText">Pensando la mejor respuestaâ¦</div> 888 </div> 889</div> 890 891 892 </div> 893 894 <footer class="ma-chatbot__footer"> 895 <form class="ma-chatbot__form" id="maChatbotForm" autocomplete="off"> 896 <label class="sr-only" for="maChatbotInput">Escribe tu pregunta</label> 897 <input 898 id="maChatbotInput" 899 class="ma-chatbot__input" 900 type="text" 901 inputmode="text" 902 placeholder="Escribe tu preguntaâ¦" 903 aria-label="Escribe tu pregunta" 904 /> 905 <button class="ma-chatbot__send" type="submit" aria-label="Enviar"> 906 Enviar 907 </button> 908 </form> 909 910 <div class="ma-chatbot__legal" id="maChatbotLegal"> 911 Respuestas rápidas basadas en guÃas del recinto. 912 </div> 913 </footer> 914 </section> 915</div> 916
917<script defer src="/assets/js/chatbot.js?v=1.0"></script>
917<!--pagina-->
918<script src="/assets/js/TiltfollowMouse.js" defer></script>
918
919<script src="/assets/js/parallax-block.js" defer></script>
919
920<script src="/assets/js/hero-slider.js" defer></script>
920
921<script src="/assets/js/first-splash.js" defer></script>
921
922<script src="/assets/js/event-cards.js" defer></script>
922
923<script defer> 924document.addEventListener('DOMContentLoaded', () => { 925 if (window.MAEventCards) { 926 window.MAEventCards.observeImages(document); 927 window.MAEventCards.forceLoadAboveFold(document, 12); 928 } 929}); 930</script>
930 931 932<!-- animación textos seccion somos--> 933
934<script> 935(() => { 936 'use strict'; 937 938 const interior = document.querySelector('.home-interior'); 939 if (!interior) return; 940 941 const prefersReduced = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches; 942 943 // Si el usuario pide menos movimiento, mostramos sin animación 944 if (prefersReduced) { 945 interior.classList.add('is-inview'); 946 return; 947 } 948 949 // IntersectionObserver (moderno) 950 if ('IntersectionObserver' in window) { 951 const io = new IntersectionObserver((entries) => { 952 for (const en of entries) { 953 if (en.isIntersecting) { 954 interior.classList.add('is-inview'); 955 io.disconnect(); // una vez y listo 956 break; 957 } 958 } 959 }, { 960 root: null, 961 threshold: 0.25, 962 rootMargin: '0px 0px -15% 0px' 963 }); 964 965 io.observe(interior); 966 return; 967 } 968 969 // Fallback (sin IO): lo mostramos directamente 970 interior.classList.add('is-inview'); 971})(); 972</script>
972 973 974<!--drag marquee-->
975<script> 976(() => { 977 'use strict'; 978 979 const root = document.querySelector('.event-marquee'); 980 if (!root) return; 981 982 const vp = root.querySelector('.event-marquee__viewport'); 983 const track = root.querySelector('.event-marquee__track'); 984 const grid = root.querySelector('.event-grid--marquee'); 985 986 if (!vp || !track || !grid) return; 987 988 // ========================= 989 // Config (toca aquÃ) 990 // ========================= 991 const SPEED_FAST = 80; // px/s (normal) 992 const SPEED_SLOW = 20; // px/s (hover/touch) 993 const SPEED_EASE = 0.08; // suavidad al cambiar velocidad (0..1) 994 const DRAG_THRESHOLD = 6; // px para considerar drag 995 996 const prefersReduce = window.matchMedia('(prefers-reduced-motion: reduce)').matches; 997 if (prefersReduce) return; // sin auto-movimiento si reduce motion 998 999 // ========================= 1000 // State 1001 // ========================= 1002 let loopW = 0; // ancho del "bloque base" (el contenido original) 1003 let x = 0; // offset actual (px) -> transform: translateX(-x) 1004 let lastTs = 0; 1005 1006 let targetSpeed = SPEED_FAST; 1007 let speed = SPEED_FAST; 1008 1009 // drag 1010 let isDown = false; 1011 let dragged = false; 1012 let lock = null; // 'x' | 'y' | null 1013 let startX = 0, startY = 0; 1014 let startOffset = 0; 1015 1016 // ========================= 1017 // Helpers 1018 // ========================= 1019 function mod(n, m){ 1020 return ((n % m) + m) % m; 1021 } 1022 1023 function setTransform(){ 1024 if (!loopW) return; 1025 // movimiento a la izquierda => x crece, transform va en negativo 1026 const t = -mod(x, loopW); 1027 track.style.transform = `translate3d(${t}px,0,0)`; 1028 } 1029 1030 function clearClones(){ 1031 track.querySelectorAll('[data-marquee-clone="1"]').forEach(n => n.remove()); 1032 } 1033 1034 // Clonamos el grid tantas veces como haga falta para cubrir viewport + 1 ciclo 1035 function ensureClones(){ 1036 clearClones(); 1037 1038 // Medimos el ancho del contenido base 1039 loopW = grid.scrollWidth || 0; 1040 if (!loopW) return; 1041 1042 const needW = (vp.clientWidth || 0) + loopW; // viewport + 1 loop 1043 let acc = loopW; 1044 1045 while (acc < needW){ 1046 const clone = grid.cloneNode(true); 1047 clone.setAttribute('aria-hidden', 'true'); 1048 clone.dataset.marqueeClone = '1'; 1049 1050 // importante: evita duplicar ids si los hubiera (por si acaso) 1051 clone.querySelectorAll('[id]').forEach(el => el.removeAttribute('id')); 1052 1053 track.appendChild(clone); 1054 acc += loopW; 1055 } 1056 1057 // Mantén x en rango para evitar números gigantes 1058 x = mod(x, loopW); 1059 setTransform(); 1060 } 1061 1062 // ========================= 1063 // Hover / touch slow-down 1064 // ========================= 1065 const canHover = window.matchMedia('(hover: hover) and (pointer: fine)').matches; 1066 1067 if (canHover){ 1068 root.addEventListener('mouseenter', () => { targetSpeed = SPEED_SLOW; }, { passive: true }); 1069 root.addEventListener('mouseleave', () => { targetSpeed = SPEED_FAST; }, { passive: true }); 1070 } 1071 1072 // en móvil: al tocar, desacelera mientras interactúa 1073 vp.addEventListener('pointerdown', () => { targetSpeed = SPEED_SLOW; }, { passive: true }); 1074 vp.addEventListener('pointerup', () => { if (!canHover) targetSpeed = SPEED_FAST; }, { passive: true }); 1075 vp.addEventListener('pointercancel',() => { if (!canHover) targetSpeed = SPEED_FAST; }, { passive: true }); 1076 1077 // ========================= 1078 // RAF loop 1079 // ========================= 1080 function tick(ts){ 1081 if (!lastTs) lastTs = ts; 1082 const dt = Math.min(0.05, (ts - lastTs) / 1000); 1083 lastTs = ts; 1084 1085 // easing de velocidad (desaceleración suave) 1086 speed += (targetSpeed - speed) * SPEED_EASE; 1087 1088 if (!isDown){ 1089 x += speed * dt; 1090 setTransform(); 1091 } 1092 1093 requestAnimationFrame(tick); 1094 } 1095 1096 // ========================= 1097 // Drag horizontal (robusto) 1098 // ========================= 1099 vp.addEventListener('pointerdown', (e) => { 1100 if (e.pointerType === 'mouse' && e.button !== 0) return; 1101 1102 isDown = true; 1103 dragged = false; 1104 lock = null; 1105 1106 startX = e.clientX; 1107 startY = e.clientY; 1108 startOffset = x; 1109 1110 vp.classList.add('is-dragging'); 1111 1112 try { vp.setPointerCapture(e.pointerId); } catch(_) {} 1113 }, { passive: true }); 1114 1115 vp.addEventListener('pointermove', (e) => { 1116 if (!isDown) return; 1117 1118 const dx = e.clientX - startX; 1119 const dy = e.clientY - startY; 1120 1121 if (!lock){ 1122 if (Math.abs(dx) > DRAG_THRESHOLD || Math.abs(dy) > DRAG_THRESHOLD){ 1123 lock = (Math.abs(dx) >= Math.abs(dy)) ? 'x' : 'y'; 1124 } else { 1125 return; 1126 } 1127 } 1128 1129 if (lock === 'y'){ 1130 // deja scroll vertical normal 1131 return; 1132 } 1133 1134 e.preventDefault(); // clave para que el drag horizontal funcione en móvil 1135 if (Math.abs(dx) > DRAG_THRESHOLD) dragged = true; 1136 1137 // mover a mano: si arrastras a la derecha, el contenido va a la derecha (x disminuye) 1138 x = startOffset - dx; 1139 setTransform(); 1140 }, { passive: false }); 1141 1142 function endDrag(e){ 1143 if (!isDown) return; 1144 isDown = false;
1145 vp.classList.remove('is-dragging'); 1146 1147 try { vp.releasePointerCapture(e.pointerId); } catch(_) {} 1148 1149 // reengancha animación sin âsaltoâ 1150 lastTs = 0; 1151 if (!canHover) targetSpeed = SPEED_FAST; 1152 } 1153 1154 vp.addEventListener('pointerup', endDrag, { passive: true }); 1155 vp.addEventListener('pointercancel', endDrag, { passive: true }); 1156 1157 // Bloquea click si hubo drag (evita navegar sin querer) 1158 vp.addEventListener('click', (e) => { 1159 if (!dragged) return; 1160 e.preventDefault(); 1161 e.stopPropagation(); 1162 dragged = false; 1163 }, true); 1164 1165 // ========================= 1166 // Init + reflow safety 1167 // ========================= 1168 const ro = ('ResizeObserver' in window) ? new ResizeObserver(() => ensureClones()) : null; 1169 if (ro) ro.observe(vp); 1170 1171 window.addEventListener('resize', ensureClones, { passive: true }); 1172 1173 // Si cargan imágenes tarde, puede cambiar el ancho. Reintenta un par de veces. 1174 ensureClones(); 1175 setTimeout(ensureClones, 250); 1176 setTimeout(ensureClones, 1200); 1177 1178 requestAnimationFrame(tick); 1179})(); 1180</script>
1180 1181 1182<!--podcast-->
1183<script> 1184(() => { 1185 'use strict'; 1186 1187 // ========================================================= 1188 // PODCAST LIST (YouTube playlist RSS) + MODAL PLAYER 1189 // - Lista vÃdeos SIN API KEY (feed XML) 1190 // - Reproduce en modal con YouTube Iframe Player API (SIN API KEY) 1191 // - playsinline=1 1192 // - Guarda progreso por vÃdeo en localStorage 1193 // - Usa progreso real para pintar .podrow__waveFill (--p) 1194 // ========================================================= 1195 1196 const PLAYLIST_ID = 'PLUvRagCQQog2iHF62qrIbfIxWoCG_6HDY'; 1197 1198 // Opción 1 (directa): 1199 // const FEED_URL = `https://www.youtube.com/feeds/videos.xml?playlist_id=${encodeURIComponent(PLAYLIST_ID)}`; 1200 1201 // Opción 2 (tu fallback PHP): 1202 const FEED_URL = `/api/youtube/playlist-feed.php?playlist_id=${encodeURIComponent(PLAYLIST_ID)}`; 1203 1204 // Cuántos items pintas 1205 const LIMIT = 3; 1206 1207 // Storage 1208 const LS_KEY = 'ma_podcast_progress_v1'; // { [videoId]: { t:number, d:number, updated:number } } 1209 const SAVE_EVERY_MS = 2500; // frecuencia de guardado 1210 const RESUME_MIN_SECONDS = 5; // no reanudar si el progreso es muy pequeño 1211 const RESUME_GUARD_END_SECONDS = 8; // no reanudar si está muy cerca del final 1212 1213 // DOM 1214 const listEl = document.getElementById('podcastList'); 1215 if (!listEl) return; 1216 1217 const modal = document.getElementById('podmodal'); 1218 const titleEl = document.getElementById('podmodalTitle'); 1219 const subEl = document.getElementById('podmodalSub'); 1220 1221 // El player: idealmente un contenedor <div id="podmodalFrame"></div> 1222 // Si actualmente es <iframe id="podmodalFrame">, lo convertimos a <div> automáticamente. 1223 let playerHost = document.getElementById('podmodalFrame'); 1224 if (!playerHost) return; 1225 1226 // ---------- utils ---------- 1227 const escHtml = (s='') => String(s).replace(/[&<>"']/g, m => ({ 1228 '&':'&','<':'<','>':'>','"':'"',"'":''' 1229 }[m])); 1230 1231 function parseVideoIdFromLink(link){ 1232 try{ 1233 const u = new URL(link); 1234 return u.searchParams.get('v') || ''; 1235 }catch(_){ return ''; } 1236 } 1237 1238 function formatDate(iso){ 1239 try{ 1240 const d = new Date(iso); 1241 const dd = d.getDate(); 1242 const mm = d.getMonth()+1; 1243 const yy = d.getFullYear(); 1244 const hh = String(d.getHours()).padStart(2,'0'); 1245 const mi = String(d.getMinutes()).padStart(2,'0'); 1246 return `${dd}/${mm}/${yy} · ${hh}:${mi}`; 1247 }catch(_){ return ''; } 1248 } 1249 1250 function loadProgressMap(){ 1251 try{ 1252 const raw = localStorage.getItem(LS_KEY); 1253 const obj = raw ? JSON.parse(raw) : {}; 1254 return (obj && typeof obj === 'object') ? obj : {}; 1255 }catch(_){ 1256 return {}; 1257 } 1258 } 1259 1260 function saveProgressMap(map){ 1261 try{ localStorage.setItem(LS_KEY, JSON.stringify(map)); }catch(_){} 1262 } 1263 1264 function getProgress(videoId){ 1265 const map = loadProgressMap(); 1266 const it = map[videoId]; 1267 if (!it) return { t: 0, d: 0, p: 0 }; 1268 const t = Number(it.t || 0); 1269 const d = Number(it.d || 0); 1270 const p = (d > 0) ? Math.max(0, Math.min(1, t / d)) : 0; 1271 return { t, d, p }; 1272 } 1273 1274 function setProgress(videoId, t, d){ 1275 const map = loadProgressMap(); 1276 map[videoId] = { t: Number(t || 0), d: Number(d || 0), updated: Date.now() }; 1277 saveProgressMap(map); 1278 } 1279 1280 function pctFromProgress(videoId){ 1281 const { p } = getProgress(videoId); 1282 return `${Math.round(p * 100)}%`; 1283 } 1284 1285 function updateRowWave(videoId){ 1286 const row = listEl.querySelector(`.podrow[data-video-id="${CSS.escape(videoId)}"]`); 1287 if (!row) return; 1288 const fill = row.querySelector('.podrow__waveFill'); 1289 if (!fill) return; 1290 fill.style.setProperty('--p', pctFromProgress(videoId)); 1291 } 1292 1293 // ---------- render row ---------- 1294 function renderRow(item){ 1295 const thumb = item.thumb || `https://i.ytimg.com/vi/${item.videoId}/hqdefault.jpg`; 1296 const date = item.published ? formatDate(item.published) : ''; 1297 const p = pctFromProgress(item.videoId); 1298 1299 return ` 1300 <li class="now-item now-item--podcast scalehover minizoom"> 1301 <article class="podrow " data-video-id="${escHtml(item.videoId)}" data-title="${escHtml(item.title)}"> 1302 <a class="podrow__link bg-dark-blue " href="#" aria-label="Reproducir: ${escHtml(item.title)}"></a>
1303 <div class="podrow__thumb" style="--bg:url('${escHtml(thumb)}');"> 1304 <span class="podrow__thumbShade" aria-hidden="true"></span> 1305 1306 1307 1308 <button class="btn icon-btn btn--md btn--blue podrow__play" type="button" aria-label="play"> <span aria-hidden="true"> 1309 <svg class="icon icon--24" aria-hidden="true"> 1310 <use href="/assets/icons/sprite.svg#i-play"></use> 1311 </svg> 1312 </span> </button> 1313 1314 1315 </div> 1316 1317 <div class="podrow__main"> 1318 <div class="podrow__top"> 1319 <span class="now-chip now-chip--pod">Podcast</span> 1320 <span class="podrow__date">${escHtml(date)}</span> 1321 <div class="actions-icons"> 1322 1323 <button class="btn icon-btn btn--md btn--coral--outline" type="button" aria-label="Avisarme"> <span aria-hidden="true"> 1324 <svg class="icon icon--24" aria-hidden="true"> 1325 <use href="/assets/icons/sprite.svg#i-heart"></use> 1326 </svg> 1327 </span> </button> 1328 <button class="btn icon-btn btn--md btn--yellow--outline" type="button" aria-label="Añadir al calendario"> <span aria-hidden="true"> 1329 <svg class="icon icon--grid icon--share" aria-hidden="true"> 1330 <use href="/assets/icons/sprite.svg#i-share"></use> 1331 </svg> 1332 </span> </button> 1333 1334 </div> 1335 </div> 1336 1337 <div class="podrow__title">${escHtml(item.title)}</div> 1338 1339 <div class="podrow__wave" aria-hidden="true"> 1340 <div class="podrow__waveFill" style="--p:${escHtml(p)};"></div> 1341 </div> 1342 </div> 1343 1344 <div class="podrow__right" aria-label="Acciones"> 1345 <!--<button class="podrow__more" type="button" aria-label="Más opciones">â¯</button>--> 1346 </div> 1347 </article> 1348 </li> 1349 `; 1350 } 1351 1352 // ---------- modal open/close ---------- 1353 let YTReady = false; 1354 let player = null; 1355 let currentVideoId = ''; 1356 let saveTimer = null; 1357 1358 function ensurePlayerHostIsDiv(){ 1359 // Si es iframe, lo reemplazamos por un div para que YT.Player lo gestione 1360 if (playerHost && playerHost.tagName === 'IFRAME'){ 1361 const div = document.createElement('div'); 1362 div.id = playerHost.id; 1363 div.className = playerHost.className || ''; 1364 playerHost.replaceWith(div); 1365 playerHost = div; 1366 } 1367 } 1368 1369 function openModalShell(title){ 1370 if (!modal) return; 1371 if (titleEl) titleEl.textContent = title || 'Reproduciendoâ¦'; 1372 if (subEl) subEl.textContent = 'Movistar Arena'; 1373 1374 modal.classList.add('is-open'); 1375 modal.setAttribute('aria-hidden','false'); 1376 document.body.classList.add('is-modal-open'); 1377 } 1378 1379 function closeModal(){ 1380 if (!modal) return; 1381 1382 modal.classList.remove('is-open'); 1383 modal.setAttribute('aria-hidden','true'); 1384 document.body.classList.remove('is-modal-open'); 1385 1386 stopSaving(); 1387 1388 // parar reproducción 1389 try{ 1390 if (player && player.stopVideo) player.stopVideo(); 1391 }catch(_){} 1392 1393 currentVideoId = ''; 1394 } 1395 1396 modal?.addEventListener('click', (e) => { 1397 if (e.target && e.target.closest('[data-close]')) closeModal(); 1398 }); 1399 1400 document.addEventListener('keydown', (e) => { 1401 if (e.key === 'Escape' && modal?.classList.contains('is-open')) closeModal(); 1402 }); 1403 1404 // ---------- YouTube Iframe API (NO KEY) ---------- 1405 function loadYTApi(){ 1406 return new Promise((resolve) => { 1407 if (window.YT && window.YT.Player){ 1408 resolve(); 1409 return; 1410 } 1411 const s = document.createElement('script'); 1412 s.src = 'https://www.youtube.com/iframe_api'; 1413 s.async = true; 1414 document.head.appendChild(s); 1415 1416 const prev = window.onYouTubeIframeAPIReady; 1417 window.onYouTubeIframeAPIReady = () => { 1418 try{ if (typeof prev === 'function') prev(); }catch(_){} 1419 resolve(); 1420 }; 1421 }); 1422 } 1423 1424 function stopSaving(){ 1425 if (saveTimer){ 1426 clearInterval(saveTimer); 1427 saveTimer = null; 1428 } 1429 } 1430 1431 function startSaving(){ 1432 stopSaving(); 1433 saveTimer = setInterval(() => { 1434 if (!player || !currentVideoId) return; 1435 1436 // Guardar solo si estamos en un estado reproducible 1437 const st = (player.getPlayerState ? player.getPlayerState() : null); 1438 // 1 = playing, 2 = paused, 3 = buffering 1439 if (st !== 1 && st !== 2 && st !== 3) return; 1440 1441 const t = safeGetCurrentTime(); 1442 const d = safeGetDuration(); 1443 if (d > 0){ 1444 setProgress(currentVideoId, t, d); 1445 updateRowWave(currentVideoId); 1446 } 1447 }, SAVE_EVERY_MS); 1448 } 1449 1450 function safeGetCurrentTime(){ 1451 try{ 1452 return Number(player.getCurrentTime ? player.getCurrentTime() : 0) || 0; 1453 }catch(_){ return 0; } 1454 } 1455 1456 function safeGetDuration(){ 1457 try{ 1458 return Number(player.getDuration ? player.getDuration() : 0) || 0; 1459 }catch(_){ return 0; } 1460 } 1461 1462 function maybeResume(videoId){ 1463 const { t, d } = getProgress(videoId); 1464 if (!d || d <= 0) return 0; 1465 if (t < RESUME_MIN_SECONDS) return 0; 1466 if (t > (d - RESUME_GUARD_END_SECONDS)) return 0; 1467 return t; 1468 } 1469 1470 async function playVideoInModal(videoId, title){ 1471 ensurePlayerHostIsDiv(); 1472 openModalShell(title); 1473 1474 await loadYTApi(); 1475 YTReady = true; 1476 1477 currentVideoId = videoId; 1478 1479 const resumeAt = maybeResume(videoId); 1480 1481 const playerVars = { 1482 autoplay: 1, 1483 playsinline: 1, 1484 rel: 0, 1485 modestbranding: 1, 1486 // importante para algunas integraciones 1487 origin: window.location.origin 1488 }; 1489 1490 // Si el player ya existe, reutiliza 1491 if (player && player.loadVideoById){ 1492 player.loadVideoById({ videoId, startSeconds: resumeAt || 0 }); 1493 startSaving(); 1494 return; 1495 } 1496 1497 player = new YT.Player(playerHost.id, { 1498 videoId, 1499 host: 'https://www.youtube-nocookie.com', 1500 playerVars, 1501 events: { 1502 onReady: () => { 1503 if (resumeAt > 0){ 1504 try{ player.seekTo(resumeAt, true); }catch(_){} 1505 } 1506 startSaving(); 1507 }, 1508 onStateChange: (ev) => { 1509 // cuando pause/playing/buffering/end -> guardamos 1510 const st = ev.data; 1511 if (!currentVideoId) return; 1512 1513 if (st === YT.PlayerState.ENDED){ 1514 // al terminar, dejamos progreso al final (100%) 1515 const d = safeGetDuration(); 1516 if (d > 0){ 1517 setProgress(currentVideoId, d, d); 1518 updateRowWave(currentVideoId); 1519 } 1520 stopSaving(); 1521 } else if (st === YT.PlayerState.PAUSED || st === YT.PlayerState.PLAYING){ 1522 const t = safeGetCurrentTime(); 1523 const d = safeGetDuration(); 1524 if (d > 0){ 1525 setProgress(currentVideoId, t, d); 1526 updateRowWave(currentVideoId); 1527 } 1528 } 1529 } 1530 } 1531 }); 1532 } 1533 1534 // ---------- clicks (fila/play) ---------- 1535 listEl.addEventListener('click', (e) => {
1536 const row = e.target.closest('.podrow'); 1537 if (!row) return; 1538 1539 // "â¯" no reproduce 1540 if (e.target.closest('.podrow__more')) return; 1541 1542 const isPlay = !!e.target.closest('.podrow__play'); 1543 const isLink = !!e.target.closest('.podrow__link'); 1544 1545 if (isPlay || isLink){ 1546 e.preventDefault(); 1547 const videoId = row.getAttribute('data-video-id') || ''; 1548 const title = row.getAttribute('data-title') || ''; 1549 if (videoId) playVideoInModal(videoId, title); 1550 } 1551 }); 1552 1553 // ---------- fetch + parse feed ---------- 1554 async function loadFeed(){ 1555 const res = await fetch(FEED_URL, { cache: 'no-store' }); 1556 if (!res.ok) throw new Error(`Feed HTTP ${res.status}`); 1557 const xmlText = await res.text(); 1558 1559 const doc = new DOMParser().parseFromString(xmlText, 'text/xml'); 1560 1561 const entries = Array.from(doc.querySelectorAll('entry')).map(entry => { 1562 const title = entry.querySelector('title')?.textContent?.trim() || ''; 1563 const link = entry.querySelector('link')?.getAttribute('href') || ''; 1564 const published = entry.querySelector('published')?.textContent || ''; 1565 const thumb = entry.querySelector('media\\:thumbnail, thumbnail')?.getAttribute('url') || ''; 1566 const videoId = entry.querySelector('yt\\:videoId, videoId')?.textContent?.trim() || parseVideoIdFromLink(link); 1567 return { title, link, published, thumb, videoId }; 1568 }).filter(x => x.videoId); 1569 1570 return entries; 1571 } 1572 1573 async function init(){ 1574 try{ 1575 const items = await loadFeed(); 1576 1577 listEl.innerHTML = items.slice(0, LIMIT).map(renderRow).join(''); 1578 1579 // pinta waves con progreso real (por si habÃa datos previos) 1580 items.slice(0, LIMIT).forEach(it => updateRowWave(it.videoId)); 1581 }catch(err){ 1582 console.warn('[podcast] feed error:', err); 1583 listEl.innerHTML = ` 1584 <li class="now-item now-item--podcast" style="padding:12px;opacity:.8;"> 1585 No se pudo cargar la playlist ahora mismo. 1586 </li> 1587 `; 1588 } 1589 } 1590 1591 init(); 1592 1593 // Si cierras modal con botón externo, expón helper opcional 1594 window.__podmodalClose = closeModal; 1595})(); 1596</script>
1596 1597 1598 1599<!--ads card-->
1600<script> 1601(() => { 1602 'use strict'; 1603 1604 const cards = document.querySelectorAll('.card-ads[data-type]'); 1605 if (!cards.length) return; 1606 1607 const safe = (s='') => String(s || ''); 1608 1609 function setOverlayLink(card, href){ 1610 const a = card.querySelector('.card-ads__overlayLink'); 1611 if (a && href) a.href = href; 1612 } 1613 1614 function go(href){ 1615 if (!href) return; 1616 window.location.href = href; 1617 } 1618 1619 cards.forEach(card => { 1620 const type = safe(card.dataset.type); 1621 const src = safe(card.dataset.src); 1622 const link = safe(card.dataset.link); 1623 const ctaTxt = safe(card.dataset.cta); 1624 const title = safe(card.dataset.title); 1625 const media = card.querySelector('.card-ads__media'); 1626 1627 if (!media) return; 1628 1629 // Botón CTA (si existe) 1630 const btn = card.querySelector('.card-ads__btn'); 1631 if (btn){ 1632 if (ctaTxt) btn.textContent = ctaTxt; 1633 btn.addEventListener('click', (e) => { 1634 e.preventDefault(); 1635 e.stopPropagation(); 1636 go(link); 1637 }); 1638 } 1639 1640 // Card clickable si no hay botones o si quieres toda la card clickable: 1641 // (para video/image suele ser deseable también) 1642 card.addEventListener('click', (e) => { 1643 // si se pulsa un botón/elemento interactivo, no duplicar acción 1644 if (e.target.closest('button,a,input,select,textarea')) return; 1645 if (link) go(link); 1646 }); 1647 1648 // Construcción por tipo 1649 if (type === 'video'){ 1650 const poster = safe(card.dataset.poster); 1651 1652 const v = document.createElement('video'); 1653 v.setAttribute('playsinline',''); 1654 v.muted = true; 1655 v.loop = true; 1656 v.autoplay = true; 1657 v.preload = 'metadata'; 1658 if (poster) v.poster = poster; 1659 if (src) v.src = src; 1660 1661 media.appendChild(v); 1662 1663 // si autoplay falla, no rompas UI 1664 const p = v.play(); 1665 if (p && typeof p.catch === 'function') p.catch(() => {}); 1666 setOverlayLink(card, link); 1667 1668 // opcional: texto del tÃtulo en la shell del CTA 1669 if (title){ 1670 const h = card.querySelector('.card-ads__h'); 1671 if (h) h.textContent = title; 1672 } 1673 } 1674 1675 if (type === 'image'){ 1676 if (src) media.style.backgroundImage = `url("${src}")`; 1677 setOverlayLink(card, link); 1678 1679 // lÃneas (hasta 3) usando data-lines: "l1|l2|l3" 1680 const linesWrap = card.querySelector('.card-ads__lines'); 1681 const rawLines = safe(card.dataset.lines); 1682 if (linesWrap){ 1683 const parts = rawLines ? rawLines.split('|').map(s => s.trim()).filter(Boolean) : []; 1684 const l1 = parts[0] || ''; 1685 const l2 = parts[1] || ''; 1686 const l3 = parts[2] || ''; 1687 1688 linesWrap.innerHTML = ` 1689 ${l1 ? `<div class="card-ads__line1">${l1}</div>` : ''} 1690 ${l2 ? `<div class="card-ads__line2">${l2}</div>` : ''} 1691 ${l3 ? `<div class="card-ads__line3">${l3}</div>` : ''} 1692 `; 1693 } 1694 } 1695 1696 if (type === 'html5'){ 1697 const iframe = document.createElement('iframe'); 1698 iframe.src = src || 'about:blank'; 1699 iframe.loading = 'lazy'; 1700 iframe.setAttribute('title', title || 'Banner'); 1701 // allow según lo que necesite el banner 1702 iframe.setAttribute('allow', 'autoplay; fullscreen; clipboard-read; clipboard-write'); 1703 media.appendChild(iframe); 1704 setOverlayLink(card, link); 1705 } 1706 }); 1707})(); 1708</script>
1708 1709 1710<!--
1710<script src="inc/consent/consent-bindings.js?v=1" defer></script>
vendor: 1 bytes, line 1710
1710
1711<script src="/inc/c360/c360.js?v=1" defer></script>
1711--> 1712 1713<!-- Js Consent, c360.... --> 1714<!-- ====================================================================== 1715 CONSENT UI â INCLUDE BODY (al final del <body>, antes de </body>) 1716 1717 â Cómo reabrir el configurador (relanzamiento) una vez tomado consentimiento: 1718 1) Botón flotante (incluido): aparece cuando hay elección guardada. 1719 2) Cualquier botón/link de tu web: 1720 data-consent-open="1" 1721 Ej: 1722 <button data-consent-open="1">Preferencias de cookies</button> 1723 <a href="#" data-consent-open="1">Configurar cookies</a> 1724 1725 3) VÃa JS: 1726 MAConsent.open(); // abre modal configuración 1727 MAConsent.reset(true); // borra elección y recarga 1728 ====================================================================== -->
vendor: 72 bytes, lines 1728-1731
1728 1729 1730<noscript> 1731 <iframe src="https://www.googletagmanager.com/ns.html?id=
1731GTM-5V2KLQ4V
vendor: 95 bytes, lines 1731-1734
1731" 1732 height="0" width="0" style="display:none;visibility:hidden"></iframe> 1733</noscript> 1734
1735<!-- FAB flotante --> 1736<button id="consent-fab" type="button" aria-label="Configurar cookies" title="Configurar cookies"> 1737 Cookies 1738</button> 1739 1740<!-- Banner --> 1741<div id="consent-banner" role="dialog" aria-label="Consentimiento cookies"> 1742 <div class="consent-row"> 1743 <div class="consent-text"> 1744 Usamos cookies para mejorar la experiencia, medir el uso y personalizar publicidad. 1745 </div> 1746 <div class="consent-actions"> 1747 <button class="consent-btn consent-btn--ghost" data-consent-action="config">Configurar</button> 1748 <button class="consent-btn consent-btn--secondary" data-consent-action="reject">Rechazar opcionales</button> 1749 <button class="consent-btn consent-btn--primary" data-consent-action="accept">Aceptar todo</button> 1750 </div> 1751 </div> 1752</div> 1753 1754<!-- Modal configuración --> 1755<div id="consent-modal" role="dialog" aria-modal="true" aria-label="Configuración de cookies"> 1756 <div class="consent-panel"> 1757 <header class="consent-panel__header"> 1758 <h2 class="consent-panel__title">Configuración de cookies</h2> 1759 <div class="consent-panel__subtitle"> 1760 Puedes activar o desactivar categorÃas. Las esenciales son necesarias para el funcionamiento del sitio. 1761 </div> 1762 </header> 1763 1764 <div class="consent-panel__content"> 1765 <div class="consent-list"> 1766 1767 <div class="consent-item"> 1768 <div class="consent-meta"> 1769 <strong>Esenciales | Siempre activas</strong> 1770 <small>Estas cookies permiten al usuario la navegación a través de nuestra web y la utilización de las diferentes opciones o servicios que existen en ella. Asimismo, se incluyen en esta categorÃa las cookies que permiten almacenar las preferencias configuradas por el usuario, por ejemplo, sección de particulares, de autónomos o de empresas, el tipo de navegación y configuración regional a través la cual accede, etc. con el fin de mantener la experiencia del usuario que accede a nuestra página web. </small> 1771 </div> 1772 <label class="consent-switch" title="Siempre activas"> 1773 <!--<input type="checkbox" checked disabled>--> 1774 <input type="checkbox" checked disabled> 1775 <span class="consent-slider"></span> 1776 </label> 1777 </div> 1778 1779 <div class="consent-item"> 1780 <div class="consent-meta"> 1781 <strong>Funcionales | Siempre activas</strong> 1782 <small>Estas cookies permiten que el sitio ofrezca una mejor funcionalidad y personalización. Pueden ser establecidas por nosotros o por terceras partes cuyos servicios hemos agregado a nuestras páginas. Si no permite estas cookies algunos de nuestros servicios no funcionarán correctamente.</small> 1783 </div> 1784 <label class="consent-switch"> 1785 <!--<input id="consent-c-func" type="checkbox">--> 1786 <input type="checkbox" checked disabled> 1787 1788 <span class="consent-slider"></span> 1789 </label> 1790 </div> 1791 1792 <div class="consent-item"> 1793 <div class="consent-meta"> 1794 <strong>AnalÃticas</strong> 1795 <small>Nos ayudan a entender cómo se usa la web (GA4, medición agregada).</small> 1796 </div> 1797 <label class="consent-switch"> 1798 <input id="consent-c-ana" type="checkbox"> 1799 <span class="consent-slider"></span> 1800 </label> 1801 </div> 1802 1803 <div class="consent-item"> 1804 <div class="consent-meta"> 1805 <strong>Marketing</strong> 1806 <small>Permiten personalizar anuncios y medir campañas (Google Ads y similares).</small> 1807 </div> 1808 <label class="consent-switch"> 1809 <input id="consent-c-mkt" type="checkbox"> 1810 <span class="consent-slider"></span> 1811 </label> 1812 </div> 1813 1814 </div> 1815 1816 <div class="consent-modal-actions"> 1817 <!-- <button class="consent-btn consent-btn--ghost" data-consent-action="close">Cerrar</button>--> 1818 <button class="consent-btn consent-btn--ghost" data-consent-action="reject_all">Rechazar opcionales</button> 1819 <button class="consent-btn consent-btn--primary" data-consent-action="save">Guardar</button> 1820 <button class="consent-btn consent-btn--primary" data-consent-action="accept_all">Aceptar todo</button> 1821 </div> 1822 </div> 1823 </div> 1824</div> 1825
1826<script> 1827window.__CONSENT_CFG__ = {"storage_key":"ma_consent_v2","source":"web_movistar_arena","debug":false}; 1828</script>
1828 1829
1830<script src="/inc/consent/consent.js?v=1" defer></script>
1830 1831<!-- Consent bindings -->
1832<script src="/inc/consent/consent-bindings.js?v=2" defer></script>
1832 1833<!-- C360 -->
1834<script src="/inc/c360/c360.js?v=3.1" defer></script>
1834 1835
1836<script src="/inc/datalayer/event-data-action.js?v=1.7" defer></script>
1836 1837 1838<!--
1838<script type="text/javascript" src="/includes/api_sendy/js/jquery-1.7.1.min.js?20260925055109" ></script>
1838--> 1839
1840<script type="text/javascript" src="/includes/api_sendy/js/signup.js?20260925055109" ></script>
1840 1841 1842 1843 1844</body> 1845</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.