PageSourceSearch

https://movistararena.es/restauracion

html movistararena.es collected 2026-09-25 03:51:09 UTC 78,616 bytes, 1,845 lines download raw bytes

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="{&quot;288&quot;:&quot;itsct&quot;}" 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    '&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'
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.