PageSourceSearch

https://www.departamentodeenviosextraordinarios.es/js/0-modules.js

js departamentodeenviosextraordinarios.es collected 2026-10-05 05:19:00 UTC 116,038 bytes, 2,105 lines download raw bytes

1// Generic classes.
2
3function takeSizes(info){
4    if (info==='both'){
5        const widths=takeWidth();
6        const heights=takeHeight();
7        const allMeasures ={
8            "width":widths,
9            "height":heights
10        };
11        return allMeasures;
12    }
13    else if(info==='width'){
14        const widths=takeWidth();
15        const widthMeasures ={
16            "width":widths
17        };
18        return widthMeasures;
19    }
20
21    else{
22        const heights=takeHeight();
23        const heightMeasures ={
24            "height":heights
25        };
26        return heightMeasures;
27    }
28}
29
30function takeWidth(){
31    const widths={
32        "screen":screen.width,
33        "browser":window.innerWidth,
34    }
35    return widths;
36}
37
38function takeHeight(){
39    const heights={
40        "screen":screen.height,
41        "browser":window.innerHeight,
42    }
43    return heights;
44}
45
46// General sound with error control.
47function ctrlSnd() {
48    const icon = document.querySelector('#soundIcn');
49    const snd = document.createElement('audio');
50    const sndSrc = document.createElement('source');
51    sndSrc.setAttribute('src', 'assets/audio/music-site.mp3');
52    sndSrc.setAttribute('type', 'audio/mpeg');
53    snd.appendChild(sndSrc);
54    // snd.muted=true;
55    snd.loop = true;
56    snd.autoplay = true;
57    // snd.controls=true;
58
59    // Add event listeners for error handling
60    snd.addEventListener('canplaythrough', () => {
61        console.log('Audio loaded successfully');
62    }, false);
63
64    snd.addEventListener('error', (e) => {
65        console.error('Error occurred while loading audio:', e);
66    });
67
68    const soundCntr=document.createElement('div');
69    soundCntr.setAttribute('id','sndCtrls');
70    soundCntr.dataset.mute=false;
71    // const iconSnd= document.createElement('i');
72    // iconSnd.setAttribute('id','settings');
73    // iconSnd.setAttribute('class','fa fa-angle-left');
74    
75    const img = document.createElement('img');
76    let state = true;
77    const sizes = takeSizes('both');
78    const checkS1=document.querySelector('.s1');
79    img.src = 'assets/img/sonido-on.png';
80    if(checkS1){
81        if((sizes.height.screen<791)&&(sizes.width.screen<550)){
82            img.style.bottom='-18%';
83        }
84
85    }
86    img.addEventListener('click', () => {
87        /*state ? (img.src = 'assets/img/sonido.png') : (img.src = 'assets/img/sonido-on.png');
88        snd.muted = state;
89        state = !state;*/
90
91        
92        state ? (img.src = 'assets/img/sonido.png') : (img.src = 'assets/img/sonido-on.png');
93        snd.muted = state;
94        
95        // Silenciar TODOS los audios y videos (incluye detectAudio)
96        document.querySelectorAll('audio, video').forEach(el => {
97          el.muted = state;
98        });
99        // Actualiza el dataset para saber si está muteado globalmente.
100        soundCntr.dataset.mute = state;
101        state = !state;
102    });
103
104    // (sizes.width.screen<1199)&&soundCntr.appendChild(iconSnd);
105    soundCntr.appendChild(img);
106    icon.appendChild(soundCntr);
107    icon.appendChild(snd);
108
109    document.querySelector('body').addEventListener('click', function() {
110        snd.play();
111    });
112    
113    document.querySelector('body').addEventListener('touchstart', function() {
114        snd.play();
115    });
116    document.querySelector('body').addEventListener('touchmove', function() {
117        snd.play();
118    });
119
120    // Control audio when change focus and close tab.
121    document.addEventListener('visibilitychange', function() {
122        if (document.hidden) {
123            snd.pause();
124        } else {
125            snd.play();
126        }
127    });
128    window.addEventListener('beforeunload', function() {
129        snd.pause();
130    });
131
132}
133
134// Control sound icon behavior.
135function slideSnd(size){
136    if(size<1200){
137        const slideIcon=document.querySelector('#sndCtrls');
138        const eOut='slide-out-right-normal';
139        const eIn='slide-in-right-normal';
140        let state = true;
141
142        setTimeout(() => {
143            slideOut(false,slideIcon,eOut,eIn);
144        }, 1500);
145
146        document.querySelector('#settings').addEventListener('click',(item)=>{
147            state ? slideIn(true,slideIcon,eOut,eIn):slideOut(true,slideIcon,eOut,eIn);
148            // state ? item.currentTarget.classList.add('rotate180'):item.currentTarget.classList.remove('rotate0');
149            if(state){
150                item.currentTarget.classList.add('rotate180');
151                (item.currentTarget.classList.contains('rotate0'))&&item.currentTarget.classList.remove('rotate0');
152                item.currentTarget.style.borderRight='2px solid #fff';
153                item.currentTarget.style.borderLeft='2px solid transparent';
154            }
155            else{
156                item.currentTarget.classList.add('rotate0');
157                (item.currentTarget.classList.contains('rotate0'))&&item.currentTarget.classList.remove('rotate180');
158                item.currentTarget.style.borderLeft='2px solid #fff';
159                item.currentTarget.style.borderRight='2px solid transparent';
160            }
161            state=!state;
162        });
163    }
164    
165    
166}
167// Slide out.
168function slideOut(removePrev,slideIcon,eOut,eIn){
169    removePrev&&slideIcon.classList.remove(eIn);
170    slideIcon.classList.add(eOut);
171}
172
173// Slide in.
174function slideIn(removePrev,slideIcon,eOut,eIn){
175    removePrev&&slideIcon.classList.remove(eOut);
176    slideIcon.classList.add(eIn);
177
178}
179
180function scrollToTop(){
181    // Scroll to the top of the page
182    window.scrollTo({
183        top: 0,
184        behavior: 'smooth'
185    });
186}
187
188function launchEffect(target,effect, time=1600, destroy = true){
189    tsParticles.load(target, effect).then(container => {
190        console.log('Aquí container vale: '+ container);
191               
192        destroy && setTimeout(() => {
193            container.destroy();
194        }, time);
195    });
196}
197
198function launchStardust(selector, effect){
199
200  // Parametrized
201  // Efecto elipse parametrizado con anime.js
202  var container = document.querySelector(selector);
203
204  var a = effect.a;
205  var l = effect.l;
206
207  for (var i = 0; i <= l; i += 1) {
208    var angle = effect.angle * i;
209    var x = (a*angle) * Math.cos(angle) + effect.angleX;
210    var y = (a*angle) * Math.sin(angle) + effect.angleY;
211
212    var n = 15;
213    
214    for (var j = 0; j < n; j++) {
215      var dot = document.createElement("div");
216      dot.classList.add("dot");
217      container.appendChild(dot);
218
219      var size = anime.random(effect.size.init, effect.size.end);
220    
221      dot.style.width = size + "px";
222      dot.style.height = size + "px";
223    
224      dot.style.left = x + anime.random(effect.style.left.init, effect.style.left.end) + "px";
225      dot.style.top = y + anime.random(effect.style.top.init, effect.style.top.end) + "px";
226      
227      dot.style.backgroundColor = effect.colors[Math.floor(Math.random() * effect.colors.length)];
228      
229      dot.style.opacity = "0";
230    
231    }
232  }
233  anime({
234    loop: false,
235    easing: "linear",
236    targets: document.querySelectorAll(".dot"),
237    opacity: [
238      { value: 1, duration: 50, delay: anime.stagger(effect.dataAnime.stagger) },
239      { value: 0, duration: effect.dataAnime.duration}
240    ],
241    complete: function(anim) {
242      anim.animatables.forEach(function(animatable) {
243        if (animatable.target && animatable.target.remove) {
244          animatable.target.remove();
245        }
246      });
247    }
248  });
249
250  // Not parametrized
251  /*var container = document.querySelector(".anime-container");
252  
253  var a = 6;
254  var l = 220;
255
256  for (var i = 0; i <= l; i += 1) {
257    var angle = 0.2 * i;
258    // var x = (a*angle) * Math.cos(angle) + window.innerWidth / 2;
259    // var y = (a*angle) * Math.sin(angle) + window.innerHeight / 2;
260    var x = (a*angle) * Math.cos(angle);
261    var y = (a*angle) * Math.sin(angle);
262
263    var n = 15;
264    
265    for (var j = 0; j < n; j++) {
266      var dot = document.createElement("div");
267      dot.classList.add("dot");
268      container.appendChild(dot);
269
270      var size = anime.random(1.5, 2.6);
271    
272      dot.style.width = size + "px";
273      dot.style.height = size + "px";
274    
275      dot.style.left = x + anime.random(-15, 35) + "px";
276      dot.style.top = y + anime.random(-15, 35) + "px";
277      
278      dot.style.backgroundColor = "hsl(60, 100%, 80%)";
279      
280      dot.style.opacity = "0";
281    
282    }
283  }
284
285  anime({
286    loop: false,
287    easing: "linear",
288    targets: document.querySelectorAll(".dot"),
289    opacity: [
290      { value: 1, duration: 50, delay: anime.stagger(.25) },
291      { value: 0, duration: 300}
292    ],
293    
294    complete: function(anim) {
295      anim.animatables.forEach(function(animatable) {
296        if (animatable.target && animatable.target.remove) {
297          animatable.target.remove();
298        }
299      });
300    }
301  });*/
302}
303
304// Launch snow flakes effect.
305function snowFlakes(){
306  $.snowfall.start({    
307    content: '<i class="fa fa-snowflake-o"></i>',
308    size: {
309        min: 10,
310        max: 27
311    },
312    color: '#fff',
313    content: '&#10052;',
314    interval: 230,
315	  disappear: 'swing'
316  });
317}
318
319// Destroy snow flakes effect.
320function destroySnow(){
321  $.snowfall.stop(); // Stop and clear flakes
322  if ($.snowfall.$wrapper) {
323    $.snowfall.$wrapper.remove(); // Remove wrapper from DOM
324    $.snowfall.$wrapper = null;   // Reset reference
325  }
326}
327
328// Create html elements
329function dinamycCreateElements(tag, options = {}) {
330        const el = document.createElement(tag);
331
332        // Set attributes
333        if (options.attributes) {
334            for (const [key, value] of Object.entries(options.attributes)) {
335                el.setAttribute(key, value);
336            }
337        }
338
339        // Set styles
340        if (options.styles) {
341            for (const [key, value] of Object.entries(options.styles)) {
342                el.style[key] = value;
343            }
344        }
345
346        // Set inner text or HTML
347        if (options.text) {
348            el.textContent = options.text;
349        }
350        if (options.html) {
351            el.innerHTML = options.html;
352        }
353        
354        // Add multiple classes
355        if (options.classList && Array.isArray(options.classList)) {
356            options.classList.forEach(cls => el.classList.add(cls));
357        }
358
359        // Add event listeners
360        if (options.events) {
361            for (const [eventType, handler] of Object.entries(options.events)) {
362                el.addEventListener(eventType, handler);
363            }
364        }
365
366        // Append to parent
367        if (options.parent) {
368            options.parent.appendChild(el);
369        }
370
371        return el;
372    }
373
374// Recursive function to translate.
375function contents2Translate(language, elements, translations = slide1) {
376        for (const key in elements) {
377            if (!Object.hasOwn(elements, key)) continue;
378
379            const valor = elements[key];
380            const traduccion = translations?.[key];
381
382            if (typeof valor === "object" && valor !== null) {
383                // Solo recursión si hay traducción correspondiente
384                if (traduccion) {
385                    contents2Translate(language, valor, traduccion);
386                }
387                else {
388                    console.warn(`No hay traducción para objeto anidado: ${key}`);
389                }
390            }
391            else {
392                const el = document.querySelector(valor);
393                if (el && traduccion && traduccion[language]) {
394                    el.innerHTML = traduccion[language];
395                }
396                else {
397                    console.warn(`Elemento o traducción no encontrada para: ${key}`, {
398                        selector: `.contPB ${valor}`,
399                        traduccion,
400                        idioma: language,
401                        result: traduccion[language],
402                        selectorReal: el,
403                        realValor: valor
404                    });
405                }
406            }
407        }
408}
409
410// First function, replaced for contents2Translate. This one is recursive.
411/*function translateThis(obj, lang, fallback='es'){
412  return obj[lang] || obj[fallback];
413}*/
414
415/*const avisoLegal =`<!--<p class="demoTitle">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
416                    <p><strong>Aviso Legal</strong></p>-->
417                    <p><strong>CONDICIONES GENERALES DE ACCESO Y USO DEL SITIO WEB</strong></p>
418                    <p>En cumplimiento de la Ley 34/2002 de 11 de julio, de Servicios de la Sociedad de la Informaci&oacute;n y de Comercio Electr&oacute;nico, el presente aviso legal establece las condiciones de uso del sitio web &ldquo;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&rdquo; que la Sociedad Estatal Correos y Tel&eacute;grafos, S.A., S.M.E&rdquo; (en adelante, &ldquo;Correos&rdquo;), con domicilio social en&nbsp;Calle del Conde de Pe&ntilde;alver, n&ordm; 19, 28006 Madrid (Espa&ntilde;a), NIF n&uacute;mero A83052407, e inscrita en el Registro Mercantil de Madrid, Tomo16.665, Libro 0, Folio 20, Secci&oacute;n 8, Hoja M-284323, Inscripci&oacute;n 1&ordf; (datos registrales del nombre de dominio "correos.es": Inscripci&oacute;n 1/M en la Hoja, Secci&oacute;n, Folio, Libro y Tomo anteriormente indicados), pone a disposici&oacute;n de los usuarios de Internet.&nbsp;</p>
419                    <p>Correos est&aacute; habilitada para prestar servicios postales de conformidad con lo previsto en la Ley 43/2010, de 30 de Diciembre de los Derechos de los Usuarios y del Mercado Postal y para prestar servicios de telecomunicaciones de conformidad con la Ley 9/2014, de 9 de mayo, General de Telecomunicaciones.</p>
420                    <p>Para establecer una comunicaci&oacute;n directa y efectiva, puede ponerse en contacto con nosotros a trav&eacute;s de&nbsp;nuestro&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente/tu-consulta-tu-reclamacion/solicita-informacion" target="_blank">formulario</a>&nbsp; o mediante el tel&eacute;fono 915 197 197. En caso de tratarse de servicios de car&aacute;cter b&aacute;sico de inter&eacute;s general: postal, transporte y financiero, el tel&eacute;fono a su disposici&oacute;n ser&aacute; 900 400 004.&nbsp;</p>
421                    <p>Tambi&eacute;n puede consultar la p&aacute;gina de&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente" target="_blank">Atenci&oacute;n al Cliente.</a></p>
422                    <p><strong>&nbsp;</strong></p>
423                    <p><strong>Aceptaci&oacute;n</strong></p>
424                    <p>El acceso al sitio web&nbsp;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&nbsp;atribuye la condici&oacute;n de usuario e implica la aceptaci&oacute;n plena y sin reservas por parte del usuario, de todas y cada una de las condiciones incluidas en este Aviso legal.</p>
425                    <p>El contenido del presente del Aviso legal puede sufrir modificaciones, por lo que su aceptaci&oacute;n por parte del usuario, ser&aacute;
425 respecto de la versi&oacute;n del Aviso legal publicado por Correos en el momento en el que el usuario acceda al sitio web.</p>
426                    <p>La utilizaci&oacute;n de ciertos servicios ofrecidos a trav&eacute;s del sitio web&nbsp;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&nbsp;puede encontrarse sometida a condiciones particulares que, seg&uacute;n los casos, sustituyan, completen y/o modifican el presente Aviso Legal. El acceso a dichos servicios implicar&aacute; la aceptaci&oacute;n de las condiciones particulares establecidas para los mismos. En consecuencia, el usuario deber&aacute; leer atentamente las condiciones particulares de servicio cada vez que acceda al mismo.</p>
427                    <p>El acceso al sitio web&nbsp;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&nbsp;se encuentra igualmente sometido a todos los avisos, condiciones de uso e instrucciones, puestos en conocimiento del usuario por Correos que sustituyan, completen y/o modifiquen el presente Aviso Legal.</p>
428                    <p><strong>&nbsp;</strong></p>
429                    <p><strong>Suscripci&oacute;n de servicios</strong></p>
430                    <p>Con car&aacute;cter general el acceso a las utilidades del sitio web no exige previa suscripci&oacute;n o registro de usuario. No obstante lo anterior, el acceso a alguno de los servicios que se ofrezcan a trav&eacute;s del sitio web, puede estar condicionado a la previa cumplimentaci&oacute;n del formulario de suscripci&oacute;n o inicio de sesi&oacute;n. A estos efectos el usuario garantiza la autenticidad y veracidad de todos aquellos datos que comunique al cumplimentar el/los formulario/s de suscripci&oacute;n. El usuario se compromete y responsabiliza de mantener toda la informaci&oacute;n facilitada de forma que responda, en cada momento, a su situaci&oacute;n real.</p>
431                    <p>Las tarifas recogidas en la web en el concepto "Desde" corresponden a tarifas sin impuestos incluidos.&nbsp;</p>
432                    <p><strong>Condiciones de uso</strong></p>
433                    <p>El usuario se compromete a hacer uso de las utilidades y/o servicios ofrecidos por Correos a trav&eacute;s del sitio web&nbsp;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&nbsp;de conformidad con la ley, este Aviso legal, las condiciones particulares publicadas para ciertos servicios y dem&aacute;s avisos e instrucciones puestos en su conocimiento, as&iacute; como con la moral y las buenas costumbre generalmente aceptadas y el orden p&uacute;blico.</p>
434                    <p>Todas las marcas, nombres comerciales o signos distintivos de cualquier clase que aparecen en el sitio web e identifiquen a Correos, son propiedad de esta Sociedad. Asimismo, los derechos de explotaci&oacute;n de propiedad intelectual sobre los contenidos del sitio web corresponden a Correos tal y como consta en el &ldquo;copyright&rdquo;, por lo que no podr&aacute;n ser utilizados por el usuario m&aacute;s all&aacute; de lo que sea imprescindible para el acceso a las utilidades y servicios suministrados a trav&eacute;s del sitio web, salvo autorizaci&oacute;n expresa de Correos.</p>
435                    <p>El usuario se compromete a no reproducir, copiar, distribuir, realizar actos de comunicaci&oacute;n p&uacute;blica, transformar o modificar los contenidos del sitio web, incluidos marcas, nombres comerciales o signos distintivos, a menos que cuente con la autorizaci&oacute;n del titular de los derechos, ni a suprimir manipular o de cualquier forma alterar el &ldquo;copyright&rdquo; y dem&aacute;s datos identificativos de la reserva de derechos.</p>
436                    <p>El usuario debe abstenerse de obtener o intentar obtener los contenidos empleando para ello mecanismos distintos de los que, en su caso, se hayan puesto a su disposici&oacute;n o, en general, de los que se empleen habitualmente en Internet siempre que, estos &uacute;ltimos, no entra&ntilde;en un riesgo de da&ntilde;o o inutilizaci&oacute;n del sitio web y /o sus contenidos.</p>
437                    <p>Para acceder a la informaci&oacute;n contenida en el sitio web y hacer uso de los de los servicios ofrecidos, los menores de edad deben obtener previamente permiso de sus padres, tutores o representantes legales.</p>
438                    <p>La responsabilidad en la determinaci&oacute;n de los contenidos y servicios a los que acceden los menores de edad corresponde a las personas a cuyo cargo se encuentran. Como a trav&eacute;s de Internet es posible acceder a contenidos que pueden ser inapropiados para menores, se informa a los usuarios de la existencia de programas inform&aacute;ticos que permiten limitar o controlar los contenidos a los que pueden acceder los menores.</p>
439                    <p><strong>Utilizaci&oacute;n de Cookies</strong></p>
440                    <p>CORREOS le informa de que durante la navegaci&oacute;n por el Portal se utilizan &ldquo;cookies&rdquo;. Las &ldquo;cookies&rdquo; que son archivos o dispositivos que se descargan en el ordenador/smartphone/tablet del usuario al acceder a determinadas p&aacute;ginas web para almacenar y recuperar informaci&oacute;n del equipo terminal. Entre otras funciones, permite almacenar y recuperar informaci&oacute;n sobre los h&aacute;bitos de navegaci&oacute;n de un usuario con el fin de mejorar el servicio ofrecido.</p>
441                    <p>El usuario puede reconfigurar sus preferencias en cuanto a cookies, prestar su consentimiento al uso de cookies o revocarlo en cualquier momento utilizando su navegador, por el que puede permitir, restringir, bloquear o borrar las cookies utilizadas desde nuestro Sitio Web.</p>
442                    <p>Para m&aacute;s informaci&oacute;n acerca del uso de las cookies en la presente web, puede consultar nuestra la&nbsp;</p>
443                    <p><strong>&nbsp;</strong></p>
444                    <p><strong>Exclusi&oacute;n de responsabilidad y l&iacute;mite de garant&iacute;as</strong></p>
445                    <p>Los datos, textos, informaciones, Pliegos de Condiciones, gr&aacute;ficos o v&iacute;nculos publicado en el sitio web&nbsp;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>, son recopilados con efectos meramente informativos para todas aquellas personas interesadas en los mismos sin que, su acceso, genere relaci&oacute;n comercial, contractual o profesional entre los usuarios y Correos. En caso de discrepancia entre la informaci&oacute;n contenida en el sitio web y la contenida en papel, se estar&aacute; a esta &uacute;ltima. Se advierte al usuario que antes de realizar cualquier acci&oacute;n derivada del contenido del sitio web, verifique la informaci&oacute;n obtenida poni&eacute;ndose en contacto con el departamento de&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente" target="_blank">Atenci&oacute;n al Cliente</a></p>
446                    <p>Lo anterior con excepci&oacute;n de aquellos servicios cuya contrataci&oacute;n se ofrezca a trav&eacute;s del sitio web y su acceso est&eacute; sujeto a condiciones particulares publicadas por Correos y aceptadas por el usuario.</p>
447                    <p>Correos excluye, con toda la extensi&oacute;n permitida por el ordenamiento jur&iacute;dico, cualquier responsabilidad por da&ntilde;os y perjuicios producidos o que puedan producirse en el futuro, por defectos t&eacute;cnicos, cualquiera que sea su naturaleza, que se deriven del uso de la informaci&oacute;
447n y de las materias contenidas en la web. Los enlaces e hipertexto que, en su caso, posibiliten el acceso a trav&eacute;s del sitio web a prestaciones y servicios ofrecidos por terceros, no pertenecen ni se encuentran bajo el control de Correos, por lo que esta Sociedad no se hace responsable ni de la informaci&oacute;n contenida en los mismos ni de cualesquiera efectos que pudieran derivarse de dicha informaci&oacute;n.</p>
448                    <p>Correos no se hace responsable del incumplimiento de cualquier norma aplicable en que pueda incurrir el usuario en su acceso al sitio web y/o utilizaci&oacute;n de las informaciones contenidas en la misma. Tampoco se hace responsable del uso ileg&iacute;timo que terceras personas puedan hacer de los nombres de marca, nombres de producto, marcas comerciales registradas o no que, no siendo propiedad de Correos, aparezcan en el sitio web.</p>
449                    <p>Correos no garantiza la continuidad del funcionamiento y la disponibilidad del sitio web no obstante lo cual, y en la medida de lo posible, advertir&aacute; de las interrupciones que conozca con car&aacute;cter previo a que concurran.</p>
450                    <p>Correos no controla ni garantiza la ausencia de virus ni de otro elemento en los servicios prestados por terceros a los que el usuario acceda a trav&eacute;s del sitio web, que puedan producir fallo, o alteraciones en su software o hardware, documentos y ficheros almacenados en su sistema inform&aacute;tico.&nbsp;</p>
451                    <p><strong>Protecci&oacute;n de datos de car&aacute;cter personal</strong></p>
452                    <p>Correos, tratar&aacute; sus datos de car&aacute;cter personal conforme las condiciones publicadas en la <a href="#" class="enlace privacidad_web" data-bs-toggle="modal" data-bs-target="#privacidad">Pol&iacute;tica de Privacidad Web</a>,&nbsp; &nbsp; la <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a> y a la <a href="#" class="enlace politica_proteccion" data-bs-toggle="modal" data-bs-target="#protDatos">Pol&iacute;tica de Protecci&oacute;n de Datos</a>.&nbsp;&nbsp;</p>
453                    <p>&nbsp;</p>
454                    <p>&nbsp;</p>
455                    <p><strong>REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales)</strong></p>
456                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-organismos" target="_blank">enlace</a>&nbsp;como punto de contacto &uacute;nico para Autoridades y Organismos.</p>
457                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-ilicitos-art-3" target="_blank">enlace</a>&nbsp;para la comunicaci&oacute;n de contenidos il&iacute;citos&nbsp;contemplados en los art&iacute;culos 3 a 7 de la&nbsp;<a href="https://www.boe.es/buscar/doc.php?id=DOUE-L-2011-82637" target="_blank">Directiva 2011/93/UE</a>.</p>
458                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-ilicitos" target="_blank">enlace</a>&nbsp;para la comunicaci&oacute;n de contenidos il&iacute;citos NO contemplados en los art&iacute;culos 3 a 7 de la&nbsp;<a href="https://www.boe.es/buscar/doc.php?id=DOUE-L-2011-82637" target="_blank">Directiva 2011/93/UE</a>.</p>`;*/
459
460/*const avisoLegal = `<!--<p class="demoTitle">&nbsp;&nbsp;&nbsp;</p>
461                    <p><strong>Aviso Legal</strong></p>-->
462                    <p><strong>Condiciones generales de acceso y uso del Sitio Web</strong></p>
463                    <p>En cumplimiento de la Ley 34/2002 de 11 de julio, de Servicios de la Sociedad de la Informaci&oacute;n y de Comercio Electr&oacute;nico, el presente aviso legal (en adelante, el &ldquo;Aviso Legal&rdquo;) establece las condiciones de uso del sitio web &ldquo;<a href="http://www.departamentodeenviosextraordinarios.es">www.departamentodeenviosextraordinarios.es</a>&rdquo; (en adelante, el &ldquo;Sitio Web&rdquo;
463), que la Sociedad Estatal Correos y Tel&eacute;grafos, S.A., S.M.E&rdquo; (en adelante, &ldquo;Correos&rdquo;), con domicilio social en&nbsp;Calle del Conde de Pe&ntilde;alver, n&ordm; 19, 28006 Madrid (Espa&ntilde;a), NIF n&uacute;mero A83052407, e inscrita en el Registro Mercantil de Madrid, Tomo 16.665, Libro 0, Folio 20, Secci&oacute;n 8, Hoja M-284323, Inscripci&oacute;n 1&ordf; (datos registrales del nombre de dominio "correos.es": Inscripci&oacute;n 1/M en la Hoja, Secci&oacute;n, Folio, Libro y Tomo anteriormente indicados), pone a disposici&oacute;n de los usuarios de Internet.&nbsp;</p>
464                    <p>&nbsp;</p>
465                    <p>Correos est&aacute; habilitada para prestar servicios postales de conformidad con lo previsto en la Ley 43/2010, de 30 de diciembre de los Derechos de los Usuarios y del Mercado Postal y para prestar servicios de telecomunicaciones de conformidad con la Ley 9/2014, de 9 de mayo, General de Telecomunicaciones.</p>
466                    <p>Para establecer una comunicaci&oacute;n directa y efectiva, puede ponerse en contacto con nosotros a trav&eacute;s de&nbsp;nuestro&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente/tu-consulta-tu-reclamacion/solicita-informacion" target="_blank">formulario</a>&nbsp; o mediante el tel&eacute;fono 915 197 197. En caso de tratarse de servicios de car&aacute;cter b&aacute;sico de inter&eacute;s general: postal, transporte y financiero, el tel&eacute;fono a su disposici&oacute;n ser&aacute; 900 400 004.&nbsp;Tambi&eacute;n puede consultar la p&aacute;gina de&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente" target="_blank">Atenci&oacute;n al Cliente.</a></p>
467                    <p><strong>&nbsp;</strong></p>
468                    <p><strong>Aceptaci&oacute;n</strong></p>
469                    <p>El acceso al Sitio Web&nbsp; atribuye la condici&oacute;n de usuario e implica la aceptaci&oacute;n plena y sin reservas por parte del usuario, de todas y cada una de las condiciones incluidas en este Aviso Legal.</p>
470                    <p>&nbsp;</p>
471                    <p>El contenido del presente del Aviso Legal puede sufrir modificaciones, por lo que su aceptaci&oacute;n por parte del usuario, ser&aacute; respecto de la versi&oacute;n del Aviso Legal publicado por Correos en el momento en el que el usuario acceda al Sitio Web.</p>
472                    <p>La utilizaci&oacute;n de ciertos servicios ofrecidos a trav&eacute;s del Sitio Web&nbsp;puede encontrarse sometida a condiciones particulares que, seg&uacute;n los casos, sustituyan, completen y/o modifican el presente Aviso Legal. El acceso a dichos servicios implicar&aacute; la aceptaci&oacute;n de las condiciones particulares establecidas para los mismos. En consecuencia, el usuario deber&aacute; leer atentamente las condiciones particulares de servicio cada vez que acceda al mismo.</p>
473                    <p>&nbsp;</p>
474                    <p>El acceso al Sitio Web&nbsp; se encuentra igualmente sometido a todos los avisos, condiciones de uso e instrucciones, puestos en conocimiento del usuario por Correos que sustituyan, completen y/o modifiquen el presente Aviso Legal.</p>
475                    <p>&nbsp;</p>
476                    <p><strong>Suscripci&oacute;n de servicios</strong></p>
477                    <p>Con car&aacute;cter general el acceso a las utilidades del Sitio Web no exige previa suscripci&oacute;n o registro de usuario. No obstante lo anterior, el acceso a alguno de los servicios que se ofrezcan a trav&eacute;s del Sitio Web, puede estar condicionado a la previa cumplimentaci&oacute;n del formulario de suscripci&oacute;n o inicio de sesi&oacute;n. A estos efectos el usuario garantiza la autenticidad y veracidad de todos aquellos datos que comunique al cumplimentar el/los formulario/s de suscripci&oacute;n. El usuario se compromete y responsabiliza de mantener toda la informaci&oacute;n facilitada de forma que responda, en cada momento, a su situaci&oacute;n real.</p>
478                    <p>Las tarifas recogidas en el Sitio Web en el concepto "Desde" corresponden a tarifas sin impuestos incluidos.&nbsp;</p>
479                    <p><strong>Condiciones de uso</strong></p>
480                    <p>El usuario se compromete a hacer uso de las utilidades y/o servicios ofrecidos por Correos a trav&eacute;s del Sitio Web&nbsp; de conformidad con la ley, este Aviso Legal, las condiciones particulares publicadas para ciertos servicios y dem&aacute;s avisos e instrucciones puestos en su conocimiento, as&iacute; como con la moral y las buenas costumbre generalmente aceptadas y el orden p&uacute;blico.</p>
481                    <p>&nbsp;</p>
482                    <p>Todas las marcas, nombres comerciales o signos distintivos de cualquier clase que aparecen en el Sitio Web e identifiquen a Correos, son propiedad de esta Sociedad. Asimismo, los derechos de explotaci&oacute;n de propiedad intelectual sobre los contenidos del sitio web corresponden a Correos tal y como consta en el &ldquo;copyright&rdquo;, por lo que no podr&aacute;n ser utilizados por el usuario m&aacute;s all&aacute; de lo que sea imprescindible para el acceso a las utilidades y servicios suministrados a trav&eacute;s del sitio web, salvo autorizaci&oacute;n expresa de Correos.</p>
483                    <p>El usuario se compromete a no reproducir, copiar, distribuir, realizar actos de comunicaci&oacute;n p&uacute;blica, transformar o modificar los contenidos del sitio web, incluidos marcas, nombres comerciales o signos distintivos, a menos que cuente con la autorizaci&oacute;n del titular de los derechos, ni a suprimir manipular o de cualquier forma alterar el &ldquo;copyright&rdquo; y dem&aacute;s datos identificativos de la reserva de derechos.</p>
484                    <p>El usuario debe abstenerse de obtener o intentar obtener los contenidos empleando para ello mecanismos distintos de los que, en su caso, se hayan puesto a su disposici&oacute;n o, en general, de los que se empleen habitualmente en Internet siempre que, estos &uacute;ltimos, no entra&ntilde;en un riesgo de da&ntilde;o o inutilizaci&oacute;n del Sitio Web y /o sus contenidos.</p>
485                    <p>Para acceder a la informaci&oacute;n contenida en el Sitio Web y hacer uso de los de los servicios ofrecidos, los menores de edad deben obtener previamente permiso de sus padres, tutores o representantes legales.</p>
486                    <p>La responsabilidad en la determinaci&oacute;n de los contenidos y servicios a los que acceden los menores de edad corresponde a las personas a cuyo cargo se encuentran. Como a trav&eacute;s de Internet es posible acceder a contenidos que pueden ser inapropiados para menores, se informa a los usuarios de la existencia de programas inform&aacute;ticos que permiten limitar o controlar los contenidos a los que pueden acceder los menores.</p>
487                    <p><strong>Utilizaci&oacute;n de Cookies</strong></p>
488                    <p>CORREOS le informa de que durante la navegaci&oacute;n por el Portal se utilizan &ldquo;cookies&rdquo;. Las &ldquo;cookies&rdquo; que son archivos o dispositivos que se descargan en el ordenador/smartphone/tablet del usuario al acceder a determinadas p&aacute;ginas web para almacenar y recuperar informaci&oacute;n del equipo terminal. Entre otras funciones, permite almacenar y recuperar informaci&oacute;n sobre los h&aacute;bitos de navegaci&oacute;n de un usuario con el fin de mejorar el servicio ofrecido.</p>
489                    <p>El usuario puede reconfigurar sus preferencias en cuanto a cookies, prestar su consentimiento al uso de cookies o revocarlo en cualquier momento utilizando su navegador, por el que puede permitir, restringir, bloquear o borrar las cookies utilizadas desde nuestro Sitio Web.</p>
490                    <p>Para m&aacute;s informaci&oacute;n acerca del uso de las cookies en la presente web, puede consultar nuestra <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a></p>
491                    <p>&nbsp;</p>
492                    <p><strong>Exclusi&oacute;n de responsabilidad y l&iacute;mite de garant&iacute;as</strong></p>
493                    <p>Los datos, textos, informaciones, pliegos de condiciones, gr&aacute;ficos o v&iacute;nculos publicados en el Sitio Web&nbsp; son recopilados con efectos meramente informativos para todas aquellas personas interesadas en los mismos sin que su acceso genere relaci&oacute;n comercial, contractual o profesional entre los usuarios y Correos. En caso de discrepancia entre la informaci&oacute;n contenida en el Sitio Web y la contenida en papel, se estar&aacute; a esta &uacute;ltima. Se advierte al usuario que antes de realizar cualquier acci&oacute;n derivada del contenido del Sitio Web, verifique la informaci&oacute;n obtenida poni&eacute;ndose en contacto con el departamento de&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente" target="_blank">Atenci&oacute;n al Cliente</a><u>.</u></p>
494                    <p>&nbsp;</p>
495                    <p>Lo anterior con excepci&oacute;n de aquellos servicios cuya contrataci&oacute;n se ofrezca a trav&eacute;s del Sitio Web y su acceso est&eacute; sujeto a condiciones particulares publicadas por Correos y aceptadas por el usuario.</p>
496                    <p>Correos excluye, con toda la extensi&oacute;n permitida por el ordenamiento jur&iacute;dico, cualquier responsabilidad por da&ntilde;os y perjuicios producidos o que puedan producirse en el futuro, por defectos t&eacute;cnicos, cualquiera que sea su naturaleza, que se deriven del uso de la informaci&oacute;
496n y de las materias contenidas en el Sitio Web.</p>
497                    <p>Correos no se hace responsable del incumplimiento de cualquier norma aplicable en que pueda incurrir el usuario en su acceso al Sitio Web y/o utilizaci&oacute;n de las informaciones contenidas en la misma. Tampoco se hace responsable del uso ileg&iacute;timo que terceras personas puedan hacer de los nombres de marca, nombres de producto, marcas comerciales registradas o no que, no siendo propiedad de Correos, aparezcan en el Sitio Web.</p>
498                    <p>CORREOS se compromete a llevar a cabo todos los esfuerzos necesarios para garantizar la disponibilidad y continuidad del Sitio Web. No obstante, CORREOS no puede garantizar que el Sitio Web funcione correctamente en todo momento, o que el usuario pueda acceder al mismo y utilizarlo de forma r&aacute;pida, ininterrumpida y libre de errores. De la misma forma, CORREOS no otorga ninguna garant&iacute;a respecto a la idoneidad y contenido del Sitio Web para la satisfacci&oacute;n de las necesidades espec&iacute;ficas del usuario. A pesar de lo anterior, y en la medida en que pueda conocerlo, CORREOS advertir&aacute; de las interrupciones que conozca con car&aacute;cter previo a que concurran.</p>
499                    <p>CORREOS actuar&aacute; diligentemente seg&uacute;n los usos generales aceptados en el sector para evitar la presencia en el Sitio Web de virus u otros elementos lesivos que pudieran causar alteraciones en el sistema inform&aacute;tico del usuario, en sus documentos electr&oacute;nicos o en sus ficheros, pero no puede garantizar la ausencia de tales elementos, no siendo por tanto CORREOS responsable por los da&ntilde;os y perjuicios que ello pudiera ocasionar.</p>
500                    <p>CORREOS no garantiza la disponibilidad t&eacute;cnica, calidad, fiabilidad, exactitud o veracidad de los contenidos y servicios disponibles en sitios pertenecientes o gestionados por terceros a los que el usuario pueda acceder mediante dispositivos t&eacute;cnicos de enlace (&ldquo;links&rdquo;) desde el Sitio Web. CORREOS no controla el contenido de dichos sitios web ni ofrece ni comercializa los productos y servicios disponibles en los sitios web as&iacute; enlazados, ni asume en consecuencia responsabilidad alguna por los mismos.</p>
501                    <p><strong>Protecci&oacute;n de datos de car&aacute;cter personal</strong></p>
502                    <p>Correos, tratar&aacute; sus datos de car&aacute;cter personal conforme las condiciones publicadas en la <a href="#" class="enlace privacidad_web" data-bs-toggle="modal" data-bs-target="#privacidad">Pol&iacute;tica de Privacidad Web</a>,&nbsp; &nbsp; la <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a> y a la <a href="#" class="enlace politica_proteccion" data-bs-toggle="modal" data-bs-target="#protDatos">Pol&iacute;tica de Protecci&oacute;n de Datos</a></p>
503                    <p><strong>Legislaci&oacute;n y jurisdicci&oacute;n</strong></p>
504                    <p>La legislaci&oacute;n aplicable al contenido del Sitio Web, ser&aacute; la espa&ntilde;ola y la jurisdicci&oacute;n, los Juzgados y Tribunales competentes en Espa&ntilde;a.</p>
505                    <p>&nbsp;</p>
506                    <p><strong>REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales)</strong></p>
507                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-organismos" target="_blank">enlace</a>&nbsp;como punto de contacto &uacute;nico para Autoridades y Organismos.</p>
508                    <p>&nbsp;</p>
509                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-ilicitos-art-3" target="_blank">enlace</a>&nbsp;para la comunicaci&oacute;n de contenidos il&iacute;citos&nbsp;contemplados en los art&iacute;culos 3 a 7 de la&nbsp;<a href="https://www.boe.es/buscar/doc.php?id=DOUE-L-2011-82637" target="_blank">Directiva 2011/93/UE</a>.</p>
510                    <p>&nbsp;</p>
511                    <p>En cumplimiento de REGLAMENTO (UE) 2022/2065 (Reglamento de Servicios Digitales), se facilita el siguiente&nbsp;<a href="https://www.correos.es/es/es/legales/aviso-legal/reglamento-ue-2022-2065-ilicitos" target="_blank">enlace</a>&nbsp;para la comunicaci&oacute;n de contenidos il&iacute;citos NO contemplados en los art&iacute;culos 3 a 7 de la&nbsp;<a href="https://www.boe.es/buscar/doc.php?id=DOUE-L-2011-82637" target="_blank">Directiva 2011/93/UE</a>.</p>`;
512
513const basesLeg=`<!--<p><strong>CONDICIONES DE PARTICIPACI&Oacute;N EN LA ACCION</strong></p>-->
514                <p><strong>&ldquo;DEPARTAMENTO DE ENV&Iacute;OS EXTRAPORDINARIOS&rdquo;</strong></p>
515                <p><strong>COMPA&Ntilde;&Iacute;A ORGANIZADORA</strong></p>
516                
517                <p>La SOCIEDAD ESTATAL CORREOS Y TEL&Eacute;GRAFOS S.A., S.M.E., con N.I.F. A-83052407, con domicilio social en calle del Conde Pe&ntilde;alver 19, 28006, Madrid (Espa&ntilde;a)(en adelante, el &ldquo;Organizador&rdquo; o &ldquo;CORREOS&rdquo;), organiza esta acci&oacute;n denominada &ldquo;DEPARTAMENTO DE ENV&Iacute;OS EXTRAORDINARIOS&rdquo; (en adelante, la &ldquo;Acci&oacute;n&rdquo;), a trav&eacute;s del sitio web &ldquo;www.departamentodeenviosextraordinarios.es&rdquo; (en adelante, el &ldquo;Sitio Web&rdquo;).</p>
518                <p>CORREOS es la entidad a la que deber&aacute;n dirigirse todas las comunicaciones y notificaciones relativas al desarrollo de la presente Acci&oacute;n.</p>
519                <p>La participaci&oacute;n en esta Acci&oacute;n implica el total conocimiento y aceptaci&oacute;n plena e incondicional por parte de los usuarios y participantes de las presentes Bases, as&iacute; como de los correspondientes Aviso Legal, <a href="#" class="enlace politica_proteccion" data-bs-toggle="modal" data-bs-target="#protDatos">Pol&iacute;tica de Protecci&oacute;n de Datos</a>, <a href="#" class="enlace privacidad_web" data-bs-toggle="modal" data-bs-target="#privacidad">Pol&iacute;tica de Privacidad web</a> y <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a>, o cualesquiera otros textos que sustituyan, completen y/o modifiquen los anteriores, as&iacute; como de los procedimientos o sistemas establecidos por el Organizador para la realizaci&oacute;n de la Acci&oacute;n (en adelante, conjuntamente, las &ldquo;Bases&rdquo;).</p>
520                <p>Estas Bases podr&aacute;n ser consultadas en el Sitio Web destinado a esta Acci&oacute;n.</p>
521                <p>CORREOS se reserva el derecho de modificar en cualquier momento las presentes Bases o la Acci&oacute;n, incluso su posible anulaci&oacute;n antes de la fecha de su celebraci&oacute;n, comprometi&eacute;ndose a comunicar con suficiente antelaci&oacute;n las nuevas bases, condiciones, o en su caso, la anulaci&oacute;n definitiva de la Acci&oacute;n, por los mismos medios y canales utilizados para la difusi&oacute;n de las Bases originales.</p>
522                <ol start="2">
523                <li><strong>DURACI&Oacute;N</strong></li>
524                </ol>
525                <p>La Acci&oacute;n estar&aacute; vigente desde el d&iacute;a 2 de diciembre de 2024 hasta el d&iacute;a 5 de enero de 2025, ambos inclusive (en adelante, el &ldquo;<strong>Plazo de Vigencia</strong>&rdquo;). CORREOS se reserva el derecho a modificar, suspender, ampliar o prorrogar las fechas aqu&iacute; establecidas.</p>
526                <ol start="3">
527                <li><strong>OBJETIVO</strong></li>
528                </ol>
529                <p>El objetivo de la Acci&oacute;n es ofrecer a los usuarios y participantes de la misma una experiencia familiar navide&ntilde;a, totalmente gratuita.</p>
530                <ol start="4">
531                <li><strong>REQUISITOS</strong> <strong>PARA PARTICIPAR</strong></li>
532                </ol>
533                <p>El simple acceso al Sitio Web implica la aceptaci&oacute;n por parte de los usuarios y participantes de estas Bases en su totalidad.</p>
534                <p>Es requisito imprescindible para participar en la Acci&oacute;n ser mayor de 18 a&ntilde;os, o, en caso de ser menor de edad, estar acompa&ntilde;ado de alg&uacute;n progenitor o tutor en el momento de acceder al Sitio Web y participar en la Acci&oacute;n, y cumplir con los requisitos establecidos en las presentes Bases, en el correspondiente aviso legal, as&iacute; como en cualesquiera otros textos legales relacionados con la Acci&oacute;
534n y el Sitio Web, y que completen lo previsto en las presentes Bases.</p>
535                <p>La participaci&oacute;n en esta Acci&oacute;n es gratuita, sin que exista obligaci&oacute;n directa ni indirecta de compra, o contrataci&oacute;n de servicio alguno.</p>
536                <p>CORREOS se reserva el derecho de limitar la participaci&oacute;n en la Acci&oacute;n, sin necesidad de justificaci&oacute;n, a aquellos que, a su exclusivo criterio, de manera enunciativa pero no limitativa: (a) violen o infrinjan derechos de terceros, incluyendo y sin limitaci&oacute;n, derechos de privacidad y/o derechos de propiedad intelectual, marcas registradas, lemas, distintivos, o derechos que afecten el honor y las buenas costumbres; y/o (b) realicen comentarios inapropiados, indecentes, obscenos, hostiles, difamatorios o calumniosos, y/o que promuevan la intolerancia, racismo, odio o da&ntilde;o contra cualquier grupo o persona, o la discriminaci&oacute;n por raz&oacute;n de raza, g&eacute;nero, religi&oacute;n, nacionalidad, discapacidad, orientaci&oacute;n sexual o edad.&nbsp;</p>
537                <p>El usuario se obliga a utilizar el Sitio Web conforme a la legislaci&oacute;n vigente aplicable, a los principios de buena fe y a los usos generalmente aceptados y a no contravenir con su actuaci&oacute;n a trav&eacute;s del Sitio Web el orden p&uacute;blico ni lo dispuesto en las presentes Bases o cualesquiera otros textos legales relacionados con la Acci&oacute;n. Por tanto, queda prohibido todo uso con fines il&iacute;citos o que perjudiquen o impidan, puedan da&ntilde;ar y/o sobrecargar, de cualquier forma, la utilizaci&oacute;n y normal funcionamiento del Sitio Web, o bien, que directa o indirectamente atenten contra los mismos o contra cualquier tercero.</p>
538                <p>Con el fin de solventar las discrepancias que pudiesen surgir, se atender&aacute; al criterio de la estricta literalidad de la informaci&oacute;n contenida en las presentes Bases. Asimismo, CORREOS ser&aacute; el &uacute;nico facultado para decidir acerca de cualquier circunstancia no prevista en las presentes Bases, siendo la decisi&oacute;n que adopte al respecto definitiva e inapelable.</p>
539                <ol start="5">
540                <li><strong>DERECHOS DE TERCEROS</strong></li>
541                </ol>
542                <p>Los participantes y usuarios declaran y garantizan al Organizador que han obtenido el consentimiento de todas las personas involucradas en la Acci&oacute;n, oblig&aacute;ndose en consecuencia a mantener indemne al Organizador por cualquier reclamaci&oacute;n y/o perjuicio en este sentido.</p>
543                <p>Cualquier participaci&oacute;n que incluya informaci&oacute;n que no pertenezca al participante, que no se ci&ntilde;a a la tem&aacute;tica de la Acci&oacute;n, tomada de Internet o de cualquier otra fuente, ser&aacute;n &uacute;nica y exclusivamente responsabilidad del participante.</p>
544                <p>El participante ser&aacute; el &uacute;nico responsable frente a terceros y deber&aacute; mantener indemne al Organizador por cualquier reclamaci&oacute;n y/o perjuicio que &eacute;ste sufra en relaci&oacute;n con los comentarios que el primero realice, y expresamente declara y garantiza que no vulnera ning&uacute;n derecho de un tercero, ya sean personas f&iacute;sicas o jur&iacute;dicas.</p>
545                <ol start="6">
546                <li><strong>MEC&Aacute;NICA DE LA ACCI&Oacute;N</strong></li>
547                </ol>
548                <p>El acceso a la Acci&oacute;n se realizar&aacute; a trav&eacute;s de la URL www.departamentodeenviosextraordinarios.es. El simple acceso a y/o utilizaci&oacute;n del Sitio Web, conlleva impl&iacute;citamente la aceptaci&oacute;n plena e incondicional por parte de los usuarios y participantes de los t&eacute;rminos y condiciones incluidos en las presentes Bases.</p>
549                <p>La Acci&oacute;n consiste en una actividad online con juegos infantiles y diferentes estancias &ldquo;m&aacute;gicas&rdquo; en las que se hace un recorrido para escribir y decorar una carta y un sobre para enviar a los Reyes Magos o a Pap&aacute; Noel.</p>
550                <p>Al finalizar la experiencia, se podr&aacute; descargar la carta en dispositivos m&oacute;viles, ordenador y/o Tablet.</p>
551                <ol start="7">
552                <li><strong>CONDICIONES DE USO</strong></li>
553                </ol>
554                <p>El usuario se compromete a hacer uso de las utilidades y/o servicios ofrecidos por CORREOS a trav&eacute;s del Sitio Web de conformidad con las presentes bases, la ley, cualesquiera otros textos legales relacionados con la Acci&oacute;n, las condiciones particulares publicadas para ciertos servicios, y dem&aacute;s avisos e instrucciones puestos en su conocimiento, as&iacute; como con la moral y las buenas costumbres generalmente aceptadas y el orden p&uacute;blico.</p>
555                <p>CORREOS es el leg&iacute;timo titular o, en su caso, est&aacute; autorizado para su uso por el leg&iacute;timo titular, de todos los derechos de propiedad intelectual del Sitio Web y de la Acci&oacute;n, as&iacute; como cualesquiera otros derechos que guarden relaci&oacute;n con los mismos, y que comprenden asimismo el contenido escrito del Sitio Web, su dise&ntilde;o, logotipos, textos, im&aacute;genes, marcas, bases de datos, estructura, archivos de audio, archivos de softw
555are, combinaciones de colores, y dem&aacute;s elementos, la estructura, selecci&oacute;n y orden de sus contenidos, as&iacute; como el c&oacute;digo fuente con el que est&aacute; programada, protegidos conforme a la legislaci&oacute;n espa&ntilde;ola e internacional relativa a los derechos de autor. Queda expresamente prohibida cualquier explotaci&oacute;n, distribuci&oacute;n, reproducci&oacute;n, transformaci&oacute;n, adaptaci&oacute;n, traducci&oacute;n, cesi&oacute;n, modificaci&oacute;n, comunicaci&oacute;n al p&uacute;blico, o cualquier otra forma de explotaci&oacute;n o difusi&oacute;n, de todo o parte del contenido del citado Sitio Web o de la Acci&oacute;n, de cualquier forma o por cualquier medio, salvo autorizaci&oacute;n previa por escrito de CORREOS, pudiendo dar lugar la infracci&oacute;n de estos derechos a los procedimientos extrajudiciales o judiciales civiles o penales que correspondan. El acceso a este Sitio Web no otorga a los usuarios derecho, ni titularidad alguna, sobre los derechos de propiedad intelectual y/o industrial de los contenidos que alberga este Sitio Web. CORREOS y el Sitio Web se reservan la posibilidad de ejercer las acciones legales que correspondan contra los usuarios que violen o infrinjan los derechos de propiedad intelectual y/o industrial.</p>
556                <p>Para acceder a la informaci&oacute;n contenida en el Sitio Web y la Acci&oacute;n, y hacer uso de los servicios ofrecidos, los menores de edad deben estar acompa&ntilde;ado de alg&uacute;n progenitor o tutor en el momento de acceder a los mismos.</p>
557                <p>La responsabilidad en la determinaci&oacute;n de los contenidos y servicios a los que acceden los menores de edad corresponde a las personas a cuyo cargo se encuentran. Como a trav&eacute;s de Internet es posible acceder a contenidos que pueden ser inapropiados para menores, se informa a los usuarios de la existencia de programas inform&aacute;ticos que permiten limitar o controlar los contenidos a los que pueden acceder los menores.</p>
558                <ol start="8">
559                <li><strong>POL&Iacute;TICA DE PROTECCI&Oacute;N DE DATOS</strong></li>
560                </ol>
561                <p>En cumplimiento de la normativa aplicable en protecci&oacute;n de datos de car&aacute;cter personal, le informamos que los datos de car&aacute;cter personal ser&aacute;n tratados por CORREOS de acuerdo con lo establecido en la &nbsp;</p>
562                <ol start="9">
563                <li><strong>EXCLUSI&Oacute;N DE RESPONSABILIDAD Y L&Iacute;MITE DE GARANT&Iacute;AS</strong></li>
564                </ol>
565                <p>Los datos, textos, informaciones, gr&aacute;ficos o v&iacute;nculos publicados en el Sitio Web, son recopilados con efectos meramente informativos para todas aquellas personas interesadas en los mismos sin que su acceso genere relaci&oacute;n comercial, contractual o profesional entre los usuarios y CORREOS. En caso de discrepancia entre la informaci&oacute;n contenida en el Sitio Web y la contenida en papel, se estar&aacute; a esta &uacute;ltima. Se advierte al usuario que antes de realizar cualquier acci&oacute;n derivada del contenido del Sitio Web, verifique la informaci&oacute;n obtenida poni&eacute;ndose en contacto con el departamento de&nbsp;<a href="https://www.correos.es/es/es/atencion-al-cliente" target="_blank">Atenci&oacute;n al Cliente</a>.</p>
566                <p>Lo anterior con excepci&oacute;n de aquellos servicios cuya contrataci&oacute;n se ofrezca a trav&eacute;s del Sitio Web y su acceso est&eacute; sujeto a condiciones particulares publicadas por CORREOS y aceptadas por el usuario.</p>
567                <p>CORREOS excluye, con toda la extensi&oacute;n permitida por el ordenamiento jur&iacute;dico, cualquier responsabilidad por da&ntilde;os y perjuicios producidos o que puedan producirse en el futuro, por defectos t&eacute;cnicos, cualquiera que sea su naturaleza, que se deriven del uso de la informaci&oacute;n y de las materias contenidas en el Sitio Web o en la Acci&oacute;n.</p>
568                <p>CORREOS no se hace responsable del incumplimiento de cualquier norma aplicable en que pueda incurrir el usuario en su acceso al Sitio Web y/o utilizaci&oacute;n de las informaciones contenidas en el mismo. Tampoco se hace responsable del uso ileg&iacute;timo que terceras personas puedan hacer de los nombres de marca, nombres de producto, marcas comerciales registradas o 
568no que, no siendo propiedad de CORREOS, aparezcan en el Sitio Web.</p>
569                <p>CORREOS no se hace responsable de los da&ntilde;os y perjuicios derivados de la participaci&oacute;n en la Acci&oacute;n. Consecuentemente, los usuarios exoneran a CORREOS, de la forma m&aacute;s amplia que en Derecho proceda, de cualquier tipo de responsabilidad, sanci&oacute;n, reclamaci&oacute;n, demanda o causa civil, mercantil, penal, administrativa o de cualquier otra &iacute;ndole, incluyendo indemnizaciones de cualquier naturaleza y/o &iacute;ndole, costas o cualquier otro tipo de gastos (con expresa inclusi&oacute;n de los honorarios de Letrados y Procuradores) en los que pudiere resultar implicada CORREOS con motivo y ocasi&oacute;n de la Acci&oacute;n.</p>
570                <p>CORREOS se compromete a llevar a cabo todos los esfuerzos necesarios para garantizar la disponibilidad y continuidad del Sitio Web. No obstante, CORREOS no puede garantizar que el Sitio Web funcione correctamente en todo momento, o que el usuario pueda acceder al mismo y utilizarlo de forma r&aacute;pida, ininterrumpida y libre de errores. De la misma forma, CORREOS no otorga ninguna garant&iacute;a respecto a la idoneidad y contenido del Sitio Web para la satisfacci&oacute;n de las necesidades espec&iacute;ficas del usuario. A pesar de lo anterior, y en la medida en que pueda conocerlo, CORREOS advertir&aacute; de las interrupciones que conozca con car&aacute;cter previo a que concurran.</p>
571                <p>CORREOS actuar&aacute; diligentemente seg&uacute;n los usos generales aceptados en el sector para evitar la presencia en el Sitio Web de virus u otros elementos lesivos que pudieran causar alteraciones en el sistema inform&aacute;tico del usuario, en sus documentos electr&oacute;nicos o en sus ficheros, pero no puede garantizar la ausencia de tales elementos, no siendo por tanto CORREOS responsable por los da&ntilde;os y perjuicios que ello pudiera ocasionar.</p>
572                <p>CORREOS no garantiza la disponibilidad t&eacute;cnica, calidad, fiabilidad, exactitud o veracidad de los contenidos y servicios disponibles en sitios pertenecientes o gestionados por terceros a los que el usuario pueda acceder mediante dispositivos t&eacute;cnicos de enlace (&ldquo;links&rdquo;) desde el Sitio Web. CORREOS no controla el contenido de dichos sitios web ni ofrece ni comercializa los productos y servicios disponibles en los sitios web as&iacute; enlazados, ni asume en consecuencia responsabilidad alguna por los mismos.</p>
573                <p>Salvo en los casos en los que concurra dolo o culpa grave de CORREOS, CORREOS no ser&aacute; responsable en modo alguno por los da&ntilde;os que pueda sufrir el usuario como consecuencia del acceso a y utilizaci&oacute;n del Sitio Web.</p>
574                <ol start="10">
575                <li><strong>LEGISLACI&Oacute;N Y JURISDICCI&Oacute;N</strong></li>
576                </ol>
577                <p>La legislaci&oacute;n aplicable al contenido del Sitio Web, ser&aacute; la espa&ntilde;ola.</p>
578                <p>Los usuarios se someten a la jurisdicci&oacute;n de los Juzgados y Tribunales de la ciudad de Madrid, o del lugar donde radique el domicilio del usuario.</p>
579                <p>&nbsp;</p>`;
580
581const protecDatos=`<!--<p><strong>POL&Iacute;TICA DE PROTECCI&Oacute;N DE DATOS</strong></p>-->
582                    <p><strong>DEPARTAMENTO DE ENV&Iacute;OS EXTRAORDINARIOS DE CORREOS</strong></p>
583                    
584                    <p><strong> &iquest;Qui&eacute;n tratar&aacute; sus datos?</strong></p>
585                    
586                    <p>El responsable del tratamiento es la &ldquo;Sociedad Estatal Correos y Tel&eacute;grafos, S.A., S.M.E&rdquo; (en adelante, &ldquo;<strong>Correos</strong>&rdquo;), con NIF A-83052407 y domicilio social en calle del Conde de Pe&ntilde;alver 19, 28006, Madrid (Espa&ntilde;a).</p>
587                    <p>&nbsp;</p>
588                    <p>Para garantizar la adecuada gesti&oacute;n de dicho tratamiento, Correos tiene designado un Delegado de Protecci&oacute;n de Datos (DPD o DPO), a qui&eacute;n puede dirigirse a trav&eacute;s de la siguiente direcci&oacute;n de correo electr&oacute;nico:&nbsp;<a href="mailto:[email protected]">[email protected]</a></p>
589                    <p><strong>&nbsp;</strong></p>
590                    <p><strong> &iquest;Para qu&eacute; se tratar&aacute;n sus datos y por qu&eacute;?</strong></p>
591                    <p><strong>&nbsp;</strong></p>
592                    <p><strong>Finalidad</strong>: Los datos de car&aacute;cter personal que, en su caso, sean incluidos al redactar la carta ser&aacute;n tratados &uacute;nicamente para permitir el desarrollo de la actividad, es decir, para poder tramitar la solicitud del usuario de elaborar la carta.</p>
593                    <p>&nbsp;</p>
594                    <p><strong>Datos tratados: </strong>Datos de car&aacute;cter personal que, en su caso, sean incluidos al redactar la carta</p>
595                    <p><strong>&nbsp;</strong></p>
596                    <p><strong>Base de legitimaci&oacute;n:</strong> La base de legitimaci&oacute;n para este tratamiento ser&aacute; la relaci&oacute;n contractual, y caso de incluir datos personales de menores de edad, la base de legitimaci&oacute;n para este tratamiento ser&aacute; el consentimiento del padre/madre/tutor, en su propio nombre y en representaci&oacute;n del menor.</p>
597                    
598                    <p><strong> &iquest;Se comunicar&aacute;n sus datos a terceros?</strong></p>
599                    <p>Queda informado que, para la correcta ejecuci&oacute;n de la Acci&oacute;n, ser&aacute; necesario compartir informaci&oacute;n relativa a usted con empresas proveedoras de algunos de los servicios a los que se haya encomendado alg&uacute;n servicio vinculado con la gesti&oacute;n de la Acci&oacute;n.</p>
600                    <p>Asimismo, para cumplir con la ley podemos vernos obligados a tener que comunicar sus datos a otros terceros como Administraciones P&uacute;blicas o Tribunales.</p>
601                    <p>&nbsp;</p>
602                    <p><strong> &iquest;Por cu&aacute;nto tiempo ser&aacute;n tratados sus datos?</strong></p>
603                    <p>&nbsp;</p>
604                    <p>Se informa de que los datos personales no se conservan ni almacenan, es decir, la actividad se desarrolla en tiempo real y CORREOS no guarda ni almacena ninguno de estos datos de car&aacute;cter personal. Esto es, una vez finalice la elaboraci&oacute;n de la carta y sea enviada por parte del Usuario.</p>
605                    <p>&nbsp;</p>
606                    <p><strong> Seguridad de los Datos</strong></p>
607                    <p><strong>&nbsp;</strong></p>
608                    <p>CORREOS tratar&aacute; los datos del Usuario en todo momento de forma absolutamente confidencial y guardando el preceptivo deber de secreto respecto de los mismos, de conformidad con lo previsto en la normativa de aplicaci&oacute;n. CORREOS tiene implantadas las medidas de &iacute;ndole t&eacute;cnica y organizativas necesarias que garanticen la seguridad de sus datos personales y eviten su alteraci&oacute;n, p&eacute;rdida, tratamiento o acceso no autorizado, habida cuenta del estado de la tecnolog&iacute;a, la naturaleza de los datos almacenados y los riesgos a que est&aacute;
608n expuestos.</p>
609                    <p>&nbsp;</p>
610                    <p><strong> &iquest;Cu&aacute;les son sus derechos?</strong></p>
611                    <p>&nbsp;</p>
612                    <p>En la medida en que est&eacute;n reconocidos en la normativa de protecci&oacute;n de datos aplicable en cada momento, el Usuario podr&aacute; ejercer los siguientes derechos en relaci&oacute;n con el tratamiento de sus datos:</p>
613                    <ol>
614                    <li>Derecho de acceso: si ejerce este derecho, podr&aacute; conocer qu&eacute; tipo de datos estamos tratando y las caracter&iacute;sticas del tratamiento que estamos llevando a cabo.</li>
615                    <li>Derecho de rectificaci&oacute;n: si ejerce este derecho, podr&aacute; solicitar la modificaci&oacute;n de sus datos por ser &eacute;stos inexactos o no veraces.</li>
616                    <li>Derecho de portabilidad: si ejerce este derecho, podr&aacute; obtener una copia en un formato interoperable de los datos que est&eacute;n siendo tratados en los casos recogidos en la Ley.</li>
617                    <li>Derecho a la limitaci&oacute;n en el tratamiento de datos: si ejerce este derecho, podr&aacute; limitar el tratamiento de sus datos en los casos recogidos en la Ley.</li>
618                    <li>Derecho de oposici&oacute;n: si ejerce este derecho, podr&aacute; oponerse al tratamiento de sus datos en los supuestos recogidos en la Ley.</li>
619                    <li>Derecho de supresi&oacute;n: podr&aacute; solicitar la supresi&oacute;n de sus datos cuando concurran los requisitos recogidos en la Ley.</li>
620                    <li>Derecho a no ser objeto de decisiones automatizadas: Tiene Ud. Derecho a no ser objeto de una decisi&oacute;n basada &uacute;nicamente en el tratamiento automatizado, incluida la elaboraci&oacute;n de perfiles, que produzca efectos jur&iacute;dicos sobre Ud. o le afecte significativamente de modo similar.</li>
621                    <li>Derecho a revocar el consentimiento prestado, en su caso.</li>
622                    </ol>
623                    <p>&nbsp;</p>
624                    <p>Puede ejercitar sus derechos a trav&eacute;s de alguno de los siguientes canales:</p>
625                    <ul>
626                    <li>Direcci&oacute;n Postal: Calle del Conde de Pe&ntilde;alver 19, 28006-Madrid (Espa&ntilde;a)</li>
627                    <li>Correo Electr&oacute;nico:&nbsp;<a href="mailto:[email protected]">[email protected]</a></li>
628                    </ul>
629                    <p>&nbsp;</p>
630                    <p>En la p&aacute;gina web de la Agencia Espa&ntilde;ola de Protecci&oacute;n de Datos (AEPD) puede encontrar una serie de modelos que le ayudar&aacute;n en el ejercicio de sus derechos. Asimismo, le informamos que tiene derecho a interponer una reclamaci&oacute;n ante la autoridad de control (en Espa&ntilde;a, la AEPD) en caso de que considere infringidos sus derechos, as&iacute; como a dirigirse al Delegado de Protecci&oacute;n de Datos (DPD o DPO) de Correos a trav&eacute;s de la siguiente direcci&oacute;n de correo electr&oacute;nico: <a href="mailto:[email protected]">[email protected]</a>.</p>
631                    <p>Puede consultar la informaci&oacute;n detallada del tratamiento de datos realizados desde la <a href="#" class="enlace politica_proteccion" data-bs-toggle="modal" data-bs-target="#protDatos">Pol&iacute;tica de Protecci&oacute;n de Datos</a> que se encuentra en la web de la Acci&oacute;n www.departamentodeenviosextraordinarios.es que debe ser le&iacute;da y aceptada con car&aacute;cter previo a la participaci&oacute;n en la misma.</p>`;
632
633const polPriv=`<!--<p>POL&Iacute;TICA DE PRIVACIDAD WEB</p>-->
634                <p><br />La presente Pol&iacute;tica de Privacidad Web regula el tratamiento de datos que se llevar&aacute; a cabo cuando cualquier usuario navegue por nuestra p&aacute;gina web departamentodeenviosextraordinarios.es Puede consultar este texto en cualquier momento al pie de este sitio web.</p>
635                <p>&nbsp;<br />1. Responsable del tratamiento<br />El responsable del tratamiento es la Sociedad Estatal Correos y Tel&eacute;grafos, S.A., S.M.E. (en adelante, &ldquo;Correos&rdquo;), con NIF A-83052407, y con domicilio social en calle del Conde de Pe&ntilde;
635alver, 19, 28006 Madrid (Espa&ntilde;a). <br /><br />Para garantizar la adecuada gesti&oacute;n de dicho tratamiento, Correos tiene designado un Delegado de Protecci&oacute;n de Datos (DPD o DPO), a qui&eacute;n puede dirigirse a trav&eacute;s de la siguiente direcci&oacute;n de correo electr&oacute;nico: <a href="mailto:[email protected]" target="_blank">[email protected]</a><br /><br />2. Datos tratados, finalidad del tratamiento y base jur&iacute;dica<br />A. Navegaci&oacute;n en la p&aacute;gina web<br />Datos tratados para esta finalidad: Datos de navegaci&oacute;n (direcci&oacute;n IP).<br />Finalidad:&nbsp; Permitir la navegaci&oacute;n en las diferentes secciones que conforman nuestro sitio web.</p>
636                <p><br />Base jur&iacute;dica: La base jur&iacute;dica para el tratamiento de sus datos es la gesti&oacute;n y tramitaci&oacute;n de la relaci&oacute;n jur&iacute;dica entablada entre el interesado y Correos.<br /><br />B. Cookies <br />Este sitio web utiliza cookies y su uso puede implicar el tratamiento de datos de car&aacute;cter personal. Puede consultar la informaci&oacute;n sobre su uso en nuestra <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a>. &nbsp;<br /><br />3. Fuentes de las que proceden los datos personales<br />Los datos que Correos trata como consecuencia de las interacciones realizadas por el usuario a trav&eacute;s de nuestra p&aacute;gina web provienen de las siguientes fuentes:</p>
637                <p><br />a.&nbsp;&nbsp;&nbsp; Datos facilitados de forma indirecta por el usuario: Cuando usted visita nuestra p&aacute;gina web, nuestros servidores web almacenan, de forma est&aacute;ndar, informaci&oacute;n como la direcci&oacute;n IP y el dominio desde el que se obtiene el acceso, la fecha y la hora de la visita, etc. A trav&eacute;s de su navegaci&oacute;n, pueden instalarse en su dispositivo distintas cookies de conformidad con lo establecido en nuestra <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a>. <br /><br />b.&nbsp;&nbsp;&nbsp; Datos facilitados de forma directa por el usuario: aquellos datos personales que pudiera incluir el usuario al redactar la carta.<br /><br /><br /><br />4. Comunicaci&oacute;n de datos<br />Con car&aacute;cter general no se prev&eacute; que sus datos sean comunicados a otras personas distintas de Correos. Independientemente de lo anterior, podr&aacute;n compartirse sus datos con los proveedores de Correos que requieran del acceso a datos personales, quienes los tratar&aacute;n en condici&oacute;n de encargados del tratamiento, conforme a las instrucciones y bajo la supervisi&oacute;n de Correos. <br />No obstante, para cumplir con la ley podemos vernos obligados a tener que comunicar sus datos a otros terceros como Administraciones P&uacute;blicas (p.ej. FCSE) o tribunales.</p>
638                <p><br />5. Transferencias internacionales<br />No se prev&eacute; la transferencia internacional por parte de Correos respecto de los datos recabados. Sin perjuicio de ello, respecto de las transferencias que, en cada caso, puedan hacer los terceros instaladores de cookies en nuestra p&aacute;gina web, puedes obtener informaci&oacute;n en sus respectivas pol&iacute;ticas, accesibles en nuestra <a href="#" class="enlace politica_cookies" data-bs-toggle="modal" data-bs-target="#polCook">Pol&iacute;tica de Cookies</a>.</p>
639                <p><br />6. Plazo de conservaci&oacute;n de los datos<br />Los datos personales ser&aacute;n conservados exclusivamente durante el plazo necesario para llevar a cabo la finalidad para la cual fueron recabados y que hemos indicado en el apartado segundo de la presente Pol&iacute;tica de Privacidad Web.</p>
640                <p><br />En el momento en que dejen de ser necesarios, los datos ser&aacute;n suprimidos conforme a lo dispuesto en la normativa de protecci&oacute;n de datos lo que implica su bloqueo, estando disponibles tan solo a solicitud de Jueces y tribunales, el Ministerio Fiscal o las Administraciones P&uacute;blicas competentes durante el plazo de prescripci&oacute;n de las acciones que pudieran derivar y, transcurrido el per&iacute;
640odo de bloqueo, su completa eliminaci&oacute;n.</p>
641                <p><br />7. Sus derechos en materia de protecci&oacute;n de datos<br />Para solicitar el acceso, la rectificaci&oacute;n, supresi&oacute;n o limitaci&oacute;n del tratamiento de los datos personales o a oponerse al tratamiento, en el caso de se den los requisitos establecidos en el Reglamento General de Protecci&oacute;n de Datos, as&iacute; como en la Ley Org&aacute;nica 3/2018, de 5 de diciembre, de Protecci&oacute;n de Datos Personal y garant&iacute;a de los derechos digitales, puede dirigir un escrito al responsable del tratamiento, en este caso, a Correos dirigiendo el mismo a la direcci&oacute;n&nbsp; postal calle del Conde de Pe&ntilde;alver, 19, 28006 Madrid (Espa&ntilde;a), o a la direcci&oacute;n de correo electr&oacute;nico [email protected] <br />Le informamos tiene derecho a interponer una reclamaci&oacute;n ante la autoridad de control (en Espa&ntilde;a, la AEPD) en caso de que considere infringidos sus derechos.<br /><br /></p>`;
642
643const polCookies=`<p><strong>POL&Iacute;TICA DE COOKIES</strong></p>
644                    <p>La Sociedad Estatal Correos y Tel&eacute;grafos, S.A., S.M.E. (en adelante, &ldquo;Correos&rdquo;), le informa acerca del uso de las Cookies en su p&aacute;gina web.&nbsp;</p>
645                    <ol>
646                    <li><strong> &iquest;Qu&eacute; son las Cookies?</strong></li>
647                    </ol>
648                    <p>En cumplimiento de la Ley 34/2002, de 11 de julio, de servicios de la sociedad de la informaci&oacute;n y de comercio electr&oacute;nico (LSSI o LSSICE) le informamos que https://www.departamentodeenviosextraordinarios.es (en adelante, &ldquo;Sitio Web&rdquo;) utiliza Cookies.</p>
649                    <p>Una cookie es un archivo que se descarga en el terminal del usuario (ya sea un ordenador, <em>smartphone</em> o <em>tablet</em>) cuando accede a una p&aacute;gina web y que permite al titular de dicha p&aacute;gina almacenar o recuperar determinada informaci&oacute;n sobre los h&aacute;bitos de navegaci&oacute;n del usuario.&nbsp;</p>
650                    <ol start="2">
651                    <li><strong> Tipo de Cookies</strong></li>
652                    </ol>
653                    <p>Desde Correos le ofrecemos la informaci&oacute;n sobre la tipolog&iacute;a de Cookies existente con car&aacute;cter general. Las cookies se clasifican:</p>
654                    <p><strong>2.1. Seg&uacute;n qui&eacute;n sea la entidad que gestione el equipo o dominio desde donde se env&iacute;an las cookies y trate los datos que se obtengan, podemos distinguir:</strong></p>
655                    <ul>
656                    <li><strong>Cookies propias</strong>: son aquellas de las que es responsable el propio editor y que, generalmente, se env&iacute;an al equipo terminal del usuario desde un equipo o dominio gestionado por el propio editor y desde el que se presta el servicio solicitado por el usuario.</li>
657                    <li><strong>Cookies de terceros</strong>: son aquellas de las que es responsable una entidad distinta del editor y que, generalmente, se env&iacute;an al equipo terminal del usuario desde un equipo o dominio que no es gestionado por el editor, sino por otra entidad que trata los datos obtenidos a trav&eacute;s de las cookies.</li>
658                    </ul>
659                    <p><strong>2.2. Seg&uacute;n el plazo de tiempo que permanecen activadas en el equipo o terminal del usuario, pudiendo tratarse de:</strong></p>
660                    <ul>
661                    <li><strong>Cookies de sesi&oacute;n</strong>: son aquellas dise&ntilde;adas para recabar y almacenar datos mientras el usuario accede a una p&aacute;gina web. Se emplean para almacenar informaci&oacute;n que solo interesa conservar para la prestaci&oacute;n del servicio solicitado por el usuario en una sola ocasi&oacute;n (por ejemplo, una lista de productos adquiridos) y desaparecen al terminar la sesi&oacute;n</li>
662                    <li><strong>Cookies persistentes</strong>: son aquellas en las que los datos siguen almacenados en el terminal y pueden ser accedidos y tratados durante un periodo definido por el responsable de la cookie, y que puede ir de unos minutos a varios a&ntilde;os.</li>
663                    </ul>
664                    <p><strong>2.3. Seg&uacute;n la finalidad para la que se traten los datos obtenidos:</strong></p>
665                    <ul>
666                    <li><strong>Cookies t&eacute;cnicas</strong>: son aquellas que permiten al usuario la navegaci&oacute;n a trav&eacute;s de una p&aacute;gina web y la utilizaci&oacute;n de las diferentes opciones o servicios que en ella existan, incluyendo aquellas que el editor utiliza para permitir la gesti&oacute;
666n y operativa de la p&aacute;gina web y habilitar sus funciones y servicios, como, por ejemplo, controlar el tr&aacute;fico y la comunicaci&oacute;n de datos, identificar la sesi&oacute;n, acceder a partes de acceso restringido, recordar los elementos que integran un pedido, realizar el proceso de compra de un pedido, gestionar el pago, controlar el fraude vinculado a la seguridad del servicio, realizar la solicitud de inscripci&oacute;n o participaci&oacute;n en un evento, contar visitas a efectos de la facturaci&oacute;n de licencias del software con el que funciona el servicio (sitio web, plataforma o aplicaci&oacute;n), utilizar elementos de seguridad durante la navegaci&oacute;n, almacenar contenidos para la difusi&oacute;n de v&iacute;deos o sonido, habilitar contenidos din&aacute;micos (por ejemplo, animaci&oacute;n de carga de un texto o imagen) o compartir contenidos a trav&eacute;s de redes sociales.</li>
667                    <li><strong>Cookies de preferencia o personalizaci&oacute;n</strong>: son aquellas que permiten recordar informaci&oacute;n para que el usuario acceda al servicio con determinadas caracter&iacute;sticas que pueden diferenciar su experiencia de la de otros usuarios, como, por ejemplo, el idioma, el n&uacute;mero de resultados a mostrar cuando el usuario realiza una b&uacute;squeda, el aspecto o contenido del servicio en funci&oacute;n del tipo de navegador a trav&eacute;s del cual el usuario accede al servicio o de la regi&oacute;n desde la que accede al servicio, etc.</li>
668                    <li><strong>Cookies de an&aacute;lisis</strong>: son aquellas que permiten al responsable de las mismas el seguimiento y an&aacute;lisis del comportamiento de los usuarios de los sitios web a los que est&aacute;n vinculadas, incluida la cuantificaci&oacute;n de los impactos de los anuncios. La informaci&oacute;n recogida mediante este tipo de cookies se utiliza en la medici&oacute;n de la actividad de los sitios web, aplicaci&oacute;n o plataforma, con el fin de introducir mejoras en funci&oacute;n del an&aacute;lisis de los datos de uso que hacen los usuarios del servicio.</li>
669                    <li><strong>Cookies de publicidad comportamental</strong>: son aquellas que almacenan informaci&oacute;n del comportamiento de los usuarios obtenida a trav&eacute;s de la observaci&oacute;n continuada de sus h&aacute;bitos de navegaci&oacute;n, lo que permite desarrollar un perfil espec&iacute;fico para mostrar publicidad en funci&oacute;n del mismo.</li>
670                    </ul>
671                    <ol start="3">
672                    <li><strong> Informaci&oacute;n sobre el tipo de cookies utilizadas en nuestra web</strong></li>
673                    </ol>
674                    <p>A continuaci&oacute;n, se identifican las Cookies que est&aacute;n siendo utilizadas en nuestro Sitio Web:</p>
675                    <p><strong>T&eacute;cnicas:</strong></p>
676                    <table>
677                    <tbody>
678                    <tr>
679                    <td>
680                    <p><strong>Denominaci&oacute;n</strong></p>
681                    </td>
682                    <td>
683                    <p><strong>Finalidad</strong></p>
684                    </td>
685                    <td>
686                    <p><strong>Duraci&oacute;n</strong></p>
687                    </td>
688                    <td>
689                    <p><strong>Titular</strong></p>
690                    </td>
691                    </tr>
692                    <tr>
693                    <td>
694                    <p>Consents</p>
695                    </td>
696                    <td>
697                    <p>Generada para identificar los par&aacute;metros de configuraci&oacute;n de cookies que ha seleccionado el usuario.</p>
698                    </td>
699                    <td>
700                    <p>Sesi&oacute;n</p>
701                    </td>
702                    <td>
703                    <p><strong>Correos</strong></p>
704                    </td>
705                    </tr>
706                    <tr>
707                    <td>&nbsp;</td>
708                    <td>&nbsp;</td>
709                    <td>&nbsp;</td>
710                    <td>&nbsp;</td>
711                    </tr>
712                    <tr>
713                    <td>&nbsp;</td>
714                    <td>&nbsp;</td>
715                    <td>&nbsp;</td>
716                    <td>&nbsp;</td>
717                    </tr>
718                    <tr>
719                    <td>&nbsp;</td>
720                    <td>&nbsp;</td>
721                    <td>&nbsp;</td>
722                    <td>&nbsp;</td>
723                    </tr>
724                    </tbody>
725                    </table>
726                    <p>&nbsp;</p>
727                    <p>&nbsp;</p>
728                    <p>&nbsp;</p>
729                    <p><strong>Anal&iacute;ticas o medici&oacute;n: </strong></p>
730                    <table>
731                    <tbody>
732                    <tr>
733                    <td>
734                    <p><strong>Denominaci&oacute;n</strong></p>
735                    </td>
736                    <td>
737                    <p><strong>Finalidad</strong></p>
738                    </td>
739                    <td>
740                    <p><strong>Duraci&oacute;n</strong></p>
741                    </td>
742                    <td>
743                    <p><strong>Titular</strong></p>
744                    </td>
745                    </tr>
746                    <tr>
747                    <td>
748                    <p>_ga</p>
749                    </td>
750                    <td>
751                    <p>Saber c&oacute;mo los usuarios navegan por el sitio web con el fin de mejorar los servicios que ofrecemos. Esta informaci&oacute;n es an&oacute;nima, y s&oacute;lo se utiliza para fines estad&iacute;sticos. Puedes obtener m&aacute;s informaci&oacute;
751n <a href="https://policies.google.com/technologies/cookies?hl=es#how-google-uses-cookies">aqu&iacute;</a>.&nbsp;</p>
752                    </td>
753                    <td>
754                    <p>24 meses</p>
755                    </td>
756                    <td>
757                    <p><strong>Google</strong></p>
758                    </td>
759                    </tr>
760                    <tr>
761                    <td>
762                    <p>_dc_gtm_470341878</p>
763                    </td>
764                    <td>
765                    <p>Saber c&oacute;mo los usuarios navegan por el sitio web con el fin de mejorar los servicios que ofrecemos. Esta informaci&oacute;n es an&oacute;nima, y s&oacute;lo se utiliza para fines estad&iacute;sticos. Puedes obtener m&aacute;s informaci&oacute;n <a href="https://policies.google.com/technologies/cookies?hl=es#how-google-uses-cookies">aqu&iacute;</a>.</p>
766                    </td>
767                    <td>
768                    <p>Sesi&oacute;n</p>
769                    </td>
770                    <td>
771                    <p>Google</p>
772                    </td>
773                    </tr>
774                    </tbody>
775                    </table>
776                    <p>&nbsp;</p>
777                    <ol start="4">
778                    <li><strong> Informaci&oacute;n sobre c&oacute;mo aceptar, denegar o revocar el consentimiento para el uso de cookies </strong></li>
779                    </ol>
780                    <p><strong>4.1 Aceptar, denegar o revocar el consentimiento para el uso de cookies desde el sitio web </strong></p>
781                    <p>El usuario puede reconfigurar sus preferencias en cuanto a Cookies a trav&eacute;s del enlace: <u id="modConsent">configurar cookies</u>.</p>
782                    <p><strong>4.2 Aceptar, denegar o revocar el consentimiento para el uso de cookies desde el navegador</strong></p>
783                    <p>Para aceptar, denegar o revocar el consentimiento para el uso de cookies desde el navegador, el usuario podr&aacute; modificar la configuraci&oacute;n del navegador que utilice en su terminal, ya sea ordenador, <em>smartphone</em> o <em>tablet</em>. Con car&aacute;cter general, los navegadores ofrecen las siguientes opciones de configuraci&oacute;n con relaci&oacute;n a la instalaci&oacute;n de Cookies:</p>
784                    <ul>
785                    <li>Que el navegador rechace todas las Cookies y, por lo tanto, que no se instale ninguna cookie de ninguna p&aacute;gina web en su terminal.</li>
786                    <li>Que el navegador avise ante de que se produzca la instalaci&oacute;n de la cookie para que usted decida si acepta o no la instalaci&oacute;n de esta.</li>
787                    <li>Que el navegador &uacute;nicamente rechace las Cookies de terceros de los sitios web que visita pero no las utilizadas por el sitio web por el que usted navega.</li>
788                    <li>La opci&oacute;n de navegaci&oacute;n en modo privado mediante la cual las Cookies se instalan en el terminal pero se eliminan de manera autom&aacute;tica cuando finaliza la navegaci&oacute;n por la p&aacute;gina web.</li>
789                    </ul>
790                    <p>A continuaci&oacute;n, se muestran una serie de enlaces informativos sobre esta cuesti&oacute;n de los navegadores m&aacute;s utilizados:</p>
791                    <ul>
792                    <li>Google Chrome: <a href="https://support.google.com/chrome/answer/95647?hl=es">https://support.google.com/chrome/answer/95647?hl=es</a></li>
793                    <li>Mozilla Firefox: <a href="https://support.mozilla.org/es/kb/Borrar%20cookies">https://support.mozilla.org/es/kb/Borrar%20Cookies</a></li>
794                    <li>Microsoft Edge: <a href="https://support.microsoft.com/es-es/help/4027947/microsoft-edge-delete-cookies">https://support.microsoft.com/es-es/help/4027947/microsoft-edge-delete-Cookies</a></li>
795                    <li>Safari: <a href="https://support.apple.com/es-es/guide/safari/sfri11471/mac">https://support.apple.com/es-es/guide/safari/sfri11471/mac</a></li>
796                    </ul>
797                    <p>Finalmente, el usuario tambi&eacute;n puede gestionar el almac&eacute;n de Cookies de su navegador y su desactivaci&oacute;n a trav&eacute;s de herramientas como:</p>
798                    <ul>
799                    <li><strong>Ghostery</strong>:&nbsp;<a href="http://www.ghostery.com/">ghostery.com/</a></li>
800                    <li><strong>Your online choices</strong>:&nbsp;<a href="http://www.youronlinechoices.com/es/">youronlinechoices.com/es/&nbsp;</a></li>
801                    </ul>
802                    <ol start="5">
803                    <li><strong>5</strong>. <strong>Transferencias internacionales </strong></li>
804                    </ol>
805                    <p>No se prev&eacute; la transferencia internacional de dichos datos por parte de Correos. Sin perjuicio de ello, respecto de las transferencias que, en cada caso, puedan hacer los terceros instaladores de cookies en nuestra p&aacute;gina web, puede obtener informaci&oacute;n en sus respectivas pol&iacute;ticas, a trav&eacute;s de los enlaces incluidos en el apartado 3 de esta Pol&iacute;tica.</p>
806                    <p>La presente Pol&iacute;tica de Cookies puede ser susceptible de modificaciones, por lo que se aconseja al usuario que la consulte cada vez que acceda al Sitio Web.</p>
807                    <p>Para m&aacute;s informaci&oacute;n sobre el tratamiento de sus datos puede consultar nuestra <a href="#" class="enlace privacidad_web" data-bs-toggle="modal" data-bs-target="#privacidad">Pol&iacute;tica de privacidad</a> del sitio web.</p>
808                    <ol start="6">
809                    <li><strong> Derechos de los usuarios e informaci&oacute;n adicional</strong></li>
810                    </ol>
811                    <p>Puede obtener m&aacute;s informaci&oacute;n sobre el tratamiento de sus datos realizado por Correos, as&iacute; como sobre el modo de ejercitar sus derechos en nuestra Pol&iacute;tica de Protecci&oacute;n de Datos.</p>
812                    <p>Tambi&eacute;n puede contactar con el Delegado de Protecci&oacute;n de Datos de Correos en el email: <a href="mailto:[email protected]">[email protected]</a></p>
813                    <p>&nbsp;</p>
814                    <p>&nbsp;</p>
815                    <p>&nbsp;</p>
816                    <p>&nbsp;</p>`;*/
817
818const confetti ={
819  "autoPlay": true,
820  "background": {
821    "color": {
822      "value": "transparent"
823    },
824    "image": "",
825    "position": "",
826    "repeat": "",
827    "size": "",
828    "opacity": 1
829  },
830  "backgroundMask": {
831    "composite": "destination-out",
832    "cover": {
833      "opacity": 1
834    },
835    "enable": false
836  },
837  "clear": true,
838  "defaultThemes": {},
839  "delay": 0,
840  "fullScreen": {
841    "enable": true,
842    "zIndex": 0
843  },
844  "detectRetina": true,
845  "duration": 0,
846  "fpsLimit": 120,
847  "interactivity": {
848    "detectsOn": "window",
849    "events": {
850      "onClick": {
851        "enable": false,
852        "mode": []
853      },
854      "onDiv": {
855        "selectors": [],
856        "enable": false,
857        "mode": [],
858        "type": "circle"
859      },
860      "onHover": {
861        "enable": false,
862        "mode": [],
863        "parallax": {
864          "enable": false,
865          "force": 2,
866          "smooth": 10
867        }
868      },
869      "resize": {
870        "delay": 0.5,
871        "enable": true
872      }
873    },
874    "modes": {}
875  },
876  "manualParticles": [],
877  "particles": {
878    "bounce": {
879      "horizontal": {
880        "value": 0
881      },
882      "vertical": {
883        "value": 0
884      }
885    },
886    "collisions": {
887      "absorb": {
888        "speed": 2
889      },
890      "bounce": {
891        "horizontal": {
892          "value": 1
893        },
894        "vertical": {
895          "value": 1
896        }
897      },
898      "enable": false,
899      "maxSpeed": 50,
900      "mode": "bounce",
901      "overlap": {
902        "enable": true,
903        "retries": 0
904      }
905    },
906    "color": {
907      "value": [
908        "#1E00FF",
909        "#FF0061",
910        "#E1FF00",
911        "#00FF9E"
912      ],
913      "animation": {
914        "h": {
915          "count": 0,
916          "enable": true,
917          "speed": 30,
918          "decay": 0,
919          "delay": 0,
920          "sync": true,
921          "offset": 0
922        },
923        "s": {
924          "count": 0,
925          "enable": false,
926          "speed": 1,
927          "decay": 0,
928          "delay": 0,
929          "sync": true,
930          "offset": 0
931        },
932        "l": {
933          "count": 0,
934          "enable": false,
935          "speed": 1,
936          "decay": 0,
937          "delay": 0,
938          "sync": true,
939          "offset": 0
940        }
941      }
942    },
943    "effect": {
944      "close": true,
945      "fill": true,
946      "options": {},
947      "type": []
948    },
949    "groups": {},
950    "move": {
951      "angle": {
952        "offset": 0,
953        "value": 90
954      },
955      "attract": {
956        "distance": 200,
957        "enable": false,
958        "rotate": {
959          "x": 3000,
960          "y": 3000
961        }
962      },
963      "center": {
964        "x": 50,
965        "y": 50,
966        "mode": "percent",
967        "radius": 0
968      },
969      "decay": {
970        "min": 0.05,
971        "max": 0.15
972      },
973      "distance": {},
974      "direction": "top",
975      "drift": 0,
976      "enable": true,
977      "gravity": {
978        "acceleration": 9.81,
979        "enable": true,
980        "inverse": false,
981        "maxSpeed": 200
982      },
983      "path": {
984        "clamp": true,
985        "delay": {
986          "value": 0
987        },
988        "enable": false,
989        "options": {}
990      },
991      "outModes": {
992        "default": "destroy",
993        "bottom": "destroy",
994        "left": "destroy",
995        "right": "destroy",
996        "top": "none"
997      },
998      "random": false,
999      "size": false,
1000      "speed": {
1001        "min": 5,
1002        "max": 150
1003      },
1004      "spin": {
1005        "acceleration": 0,
1006        "enable": false
1007      },
1008      "straight": false,
1009      "trail": {
1010        "enable": false,
1011        "length": 10,
1012        "fill": {}
1013      },
1014      "vibrate": false,
1015      "warp": false
1016    },
1017    "number": {
1018      "density": {
1019        "enable": false,
1020        "width": "100%",
1021        "height": "100%",
1022      },
1023      "limit": {
1024        "mode": "delete",
1025        "value": 300
1026      },
1027      "value": 0
1028    },
1029    "opacity": {
1030      "value": 1,
1031      "animation": {
1032        "count": 0,
1033        "enable": false,
1034        "speed": 0.3,
1035        "decay": 0,
1036        "delay": 0,
1037        "sync": true,
1038        "mode": "auto",
1039        "startValue": "max",
1040        "destroy": "min"
1041      }
1042    },
1043    "reduceDuplicates": false,
1044    "shadow": {
1045      "blur": 0,
1046      "color": {
1047        "value": "#000"
1048      },
1049      "enable": false,
1050      "offset": {
1051        "x": 0,
1052        "y": 0
1053      }
1054    },
1055    "shape": {
1056      "close": true,
1057      "fill": true,
1058      "options": {
1059        "polygon": [
1060          {
1061            "sides": 5
1062          },
1063          {
1064            "sides": 6
1065          }
1066        ]
1067      },
1068      "type": [
1069        "circle",
1070        "square",
1071        "polygon"
1072      ]
1073    },
1074    "size": {
1075      "value": 3,
1076      "animation": {
1077        "count": 0,
1078        "enable": false,
1079        "speed": 5,
1080        "decay": 0,
1081        "delay": 0,
1082        "sync": false,
1083        "mode": "auto",
1084        "startValue": "random",
1085        "destroy": "none"
1086      }
1087    },
1088    "stroke": {
1089      "width": 0
1090    },
1091    "zIndex": {
1092      "value": 0,
1093      "opacityRate": 1,
1094      "sizeRate": 1,
1095      "velocityRate": 1
1096    },
1097    "destroy": {
1098      "bounds": {},
1099      "mode": "none",
1100      "split": {
1101        "count": 1,
1102        "factor": {
1103          "value": 3
1104        },
1105        "rate": {
1106          "value": {
1107            "min": 4,
1108            "max": 9
1109          }
1110        },
1111        "sizeOffset": true
1112      }
1113    },
1114    "roll": {
1115      "darken": {
1116        "enable": true,
1117        "value": 30
1118      },
1119      "enable": true,
1120      "enlighten": {
1121        "enable": true,
1122        "value": 30
1123      },
1124      "mode": "both",
1125      "speed": {
1126        "min": 15,
1127        "max": 25
1128      }
1129    },
1130    "tilt": {
1131      "value": {
1132        "min": 0,
1133        "max": 360
1134      },
1135      "animation": {
1136        "enable": true,
1137        "speed": 60,
1138        "decay": 0,
1139        "sync": false
1140      },
1141      "direction": "random",
1142      "enable": true
1143    },
1144    "twinkle": {
1145      "lines": {
1146        "enable": false,
1147        "frequency": 0.05,
1148        "opacity": 1
1149      },
1150      "particles": {
1151        "enable": false,
1152        "frequency": 0.05,
1153        "opacity": 1
1154      }
1155    },
1156    "wobble": {
1157      "distance": 30,
1158      "enable": true,
1159      "speed": {
1160        "angle": {
1161          "min": -15,
1162          "max": 15
1163        },
1164        "move": 10
1165      }
1166    },
1167    "life": {
1168      "count": 0,
1169      "delay": {
1170        "value": 0,
1171        "sync": false
1172      },
1173      "duration": {
1174        "value": 0,
1175        "sync": false
1176      }
1177    },
1178    "rotate": {
1179      "value": {
1180        "min": 0,
1181        "max": 360
1182      },
1183      "animation": {
1184        "enable": true,
1185        "speed": 60,
1186        "decay": 0,
1187        "sync": false
1188      },
1189      "direction": "random",
1190      "path": false
1191    },
1192    "orbit": {
1193      "animation": {
1194        "count": 0,
1195        "enable": false,
1196        "speed": 1,
1197        "decay": 0,
1198        "delay": 0,
1199        "sync": false
1200      },
1201      "enable": false,
1202      "opacity": 1,
1203      "rotation": {
1204        "value": 45
1205      },
1206      "width": 1
1207    },
1208    "links": {
1209      "blink": false,
1210      "color": {
1211        "value": "#fff"
1212      },
1213      "consent": false,
1214      "distance": 100,
1215      "enable": false,
1216      "frequency": 1,
1217      "opacity": 1,
1218      "shadow": {
1219        "blur": 5,
1220        "color": {
1221          "value": "#000"
1222        },
1223        "enable": false
1224      },
1225      "triangles": {
1226        "enable": false,
1227        "frequency": 1
1228      },
1229      "width": 1,
1230      "warp": false
1231    },
1232    "repulse": {
1233      "value": 0,
1234      "enabled": false,
1235      "distance": 1,
1236      "duration": 1,
1237      "factor": 1,
1238      "speed": 1
1239    }
1240  },
1241  "pauseOnBlur": true,
1242  "pauseOnOutsideViewport": true,
1243  "responsive": [],
1244  "smooth": false,
1245  "style": {},
1246  "themes": [],
1247  "zLayers": 100,
1248  "key": "wobble",
1249  "name": "Wobble",
1250  "emitters": {
1251    "autoPlay": true,
1252    "fill": true,
1253    "life": {
1254      "wait": false
1255    },
1256    "rate": {
1257      "quantity": 10,
1258      "delay": 0.05
1259    },
1260    "shape": {
1261      "options": {},
1262      "replace": {
1263        "color": false,
1264        "opacity": false
1265      },
1266      "type": "square"
1267    },
1268    "startCount": 0,
1269    "size": {
1270      "mode": "percent",
1271      "height": 0,
1272      "width": 0
1273    },
1274    "particles": {},
1275    "position": {
1276      "x": 50,
1277      "y": 100
1278    }
1279  },
1280  "motion": {
1281    "disable": false,
1282    "reduce": {
1283      "factor": 4,
1284      "value": true
1285    }
1286  }
1287}
1288
1289const pinataeffectConfig = {
1290  "autoPlay": true,
1291  "background": { "color": { "value": "transparent" } },
1292  "fullScreen": { "enable": true, "z-index":9 },
1293  "particles": {
1294    "color": {
1295      "value": ["#FF0000", "#00FF00", "#0000FF", "#FFFF00", "#FF00FF", "#FFA500"]
1296    },
1297    "shape": { "type": ["circle", "square", "polygon"] },
1298    "size": { "value": { "min": 3, "max": 6 } },
1299    "move": {
1300      "enable": true,
1301      "direction": "bottom",          // Solo hacia abajo
1302      "speed": { "min": 5, "max": 10 }, // Más lento
1303      "gravity": { "enable": true, "acceleration": 8.81 },
1304      "outModes": { "default": "destroy" }
1305    },
1306    "rotate": {
1307      "value": { "min": 0, "max": 360 },
1308      "animation": { "enable": true, "speed": 20 }
1309    },
1310    "tilt": {
1311      "enable": true,
1312      "value": { "min": 0, "max": 360 },
1313      "animation": { "enable": true, "speed": 20 }
1314    },
1315    "wobble": { "enable": true, "distance": 20, "speed": { "move": 5 } }
1316  },
1317  "emitters": [
1318    {
1319      "autoPlay": true,
1320      "position": { "x": 50, "y": 20 }, // Centro
1321      "rate": { "quantity": 30, "delay": 0 },
1322      "life": { "duration": 0.4, "count": 1 }
1323    }
1324  ]
1325}
1326
1327const lucesGrupo1 = {
1328
1329  fullScreen: {
1330    enable: false
1331  },
1332
1333  particles: {
1334    number: { value: 80 },
1335    color: { value: ["#FF0000", "#00FF00", "#FFFF00", "#00BFFF", "#FF69B4"] },
1336    shape: { type: "circle" },
1337    size: { value: { min: 2, max: 3 } },
1338    move: { enable: false },
1339    twinkle: {
1340      particles: {
1341        enable: true,
1342        frequency: 0.05,
1343        opacity: 0,
1344        color: "#FFFFFF"
1345      }
1346    }
1347  },
1348  background: { color: "transparent" }
1349};
1350
1351const lucesGrupo2 = {
1352  particles: {
1353    number: { value: 80 },
1354    color: { value: ["#FFFF00","#00BFFF","#FF0000","#FF69B4","#00FF00"] },
1355    shape: { type: "circle" },
1356    size: { value: { min: 2, max: 3 } },
1357    move: { enable: false },
1358    twinkle: {
1359      particles: {
1360        enable: true,
1361        frequency: 0.05,
1362        opacity: 0,
1363        color: "#bebebeff"
1364      }
1365    }
1366  },
1367  background: { color: "transparent" }
1368};
1369
1370const snow = {
1371  "autoPlay": true,
1372  "background": {
1373    "color": {
1374      "value": "transparent"
1375    },
1376    "image": "",
1377    "position": "",
1378    "repeat": "",
1379    "size": "",
1380    "opacity": 1
1381  },
1382  "backgroundMask": {
1383    "composite": "destination-out",
1384    "cover": {
1385      "opacity": 1
1386    },
1387    "enable": false
1388  },
1389  "clear": true,
1390  "defaultThemes": {},
1391  "delay": 0,
1392  "fullScreen": {
1393    "enable": true,
1394    "zIndex": 0
1395  },
1396  "detectRetina": true,
1397  "duration": 0,
1398  "fpsLimit": 120,
1399  "interactivity": {
1400    "detectsOn": "window",
1401    "events": {
1402      "onClick": {
1403        "enable": false,
1404        "mode": []
1405      },
1406      "onDiv": {
1407        "selectors": [],
1408        "enable": false,
1409        "mode": [],
1410        "type": "circle"
1411      },
1412      "onHover": {
1413        "enable": false,
1414        "mode": [],
1415        "parallax": {
1416          "enable": false,
1417          "force": 2,
1418          "smooth": 10
1419        }
1420      },
1421      "resize": {
1422        "delay": 0.5,
1423        "enable": true
1424      }
1425    },
1426    "modes": {}
1427  },
1428  "manualParticles": [],
1429  "particles": {
1430    "bounce": {
1431      "horizontal": {
1432        "value": 1
1433      },
1434      "vertical": {
1435        "value": 1
1436      }
1437    },
1438    "collisions": {
1439      "absorb": {
1440        "speed": 2
1441      },
1442      "bounce": {
1443        "horizontal": {
1444          "value": 1
1445        },
1446        "vertical": {
1447          "value": 1
1448        }
1449      },
1450      "enable": false,
1451      "maxSpeed": 50,
1452      "mode": "bounce",
1453      "overlap": {
1454        "enable": true,
1455        "retries": 0
1456      }
1457    },
1458    "color": {
1459      "value": "#fff",
1460      "animation": {
1461        "h": {
1462          "count": 0,
1463          "enable": false,
1464          "speed": 1,
1465          "decay": 0,
1466          "delay": 0,
1467          "sync": true,
1468          "offset": 0
1469        },
1470        "s": {
1471          "count": 0,
1472          "enable": false,
1473          "speed": 1,
1474          "decay": 0,
1475          "delay": 0,
1476          "sync": true,
1477          "offset": 0
1478        },
1479        "l": {
1480          "count": 0,
1481          "enable": false,
1482          "speed": 1,
1483          "decay": 0,
1484          "delay": 0,
1485          "sync": true,
1486          "offset": 0
1487        }
1488      }
1489    },
1490    "effect": {
1491      "close": true,
1492      "fill": true,
1493      "options": {},
1494      "type": []
1495    },
1496    "groups": {},
1497    "move": {
1498      "angle": {
1499        "offset": 0,
1500        "value": 90
1501      },
1502      "attract": {
1503        "distance": 200,
1504        "enable": false,
1505        "rotate": {
1506          "x": 3000,
1507          "y": 3000
1508        }
1509      },
1510      "center": {
1511        "x": 50,
1512        "y": 50,
1513        "mode": "percent",
1514        "radius": 0
1515      },
1516      "decay": 0,
1517      "distance": {},
1518      "direction": "bottom",
1519      "drift": 0,
1520      "enable": true,
1521      "gravity": {
1522        "acceleration": 9.81,
1523        "enable": false,
1524        "inverse": false,
1525        "maxSpeed": 50
1526      },
1527      "path": {
1528        "clamp": true,
1529        "delay": {
1530          "value": 0
1531        },
1532        "enable": false,
1533        "options": {}
1534      },
1535      "outModes": {
1536        "default": "out"
1537      },
1538      "random": false,
1539      "size": false,
1540      "speed": 2,
1541      "spin": {
1542        "acceleration": 0,
1543        "enable": false
1544      },
1545      "straight": true,
1546      "trail": {
1547        "enable": false,
1548        "length": 10,
1549        "fill": {}
1550      },
1551      "vibrate": false,
1552      "warp": false
1553    },
1554    "number": {
1555      "density": {
1556        "enable": true,
1557        "width": 1920,
1558        "height": 1080
1559      },
1560      "limit": {
1561        "mode": "delete",
1562        "value": 0
1563      },
1564      "value": 400
1565    },
1566    "opacity": {
1567      "value": 1,
1568      "animation": {
1569        "count": 0,
1570        "enable": false,
1571        "speed": 2,
1572        "decay": 0,
1573        "delay": 0,
1574        "sync": false,
1575        "mode": "auto",
1576        "startValue": "random",
1577        "destroy": "none"
1578      }
1579    },
1580    "reduceDuplicates": false,
1581    "shadow": {
1582      "blur": 0,
1583      "color": {
1584        "value": "#000"
1585      },
1586      "enable": false,
1587      "offset": {
1588        "x": 0,
1589        "y": 0
1590      }
1591    },
1592    "shape": {
1593      "close": true,
1594      "fill": true,
1595      "options": {},
1596      "type": "circle"
1597    },
1598    "size": {
1599      "value": 10,
1600      "animation": {
1601        "count": 0,
1602        "enable": false,
1603        "speed": 5,
1604        "decay": 0,
1605        "delay": 0,
1606        "sync": false,
1607        "mode": "auto",
1608        "startValue": "random",
1609        "destroy": "none"
1610      }
1611    },
1612    "stroke": {
1613      "width": 0
1614    },
1615    "zIndex": {
1616      "value": {
1617        "min": 0,
1618        "max": 100
1619      },
1620      "opacityRate": 10,
1621      "sizeRate": 10,
1622      "velocityRate": 10
1623    },
1624    "destroy": {
1625      "bounds": {},
1626      "mode": "none",
1627      "split": {
1628        "count": 1,
1629        "factor": {
1630          "value": 3
1631        },
1632        "rate": {
1633          "value": {
1634            "min": 4,
1635            "max": 9
1636          }
1637        },
1638        "sizeOffset": true
1639      }
1640    },
1641    "roll": {
1642      "darken": {
1643        "enable": false,
1644        "value": 0
1645      },
1646      "enable": false,
1647      "enlighten": {
1648        "enable": false,
1649        "value": 0
1650      },
1651      "mode": "vertical",
1652      "speed": 25
1653    },
1654    "tilt": {
1655      "value": 0,
1656      "animation": {
1657        "enable": false,
1658        "speed": 0,
1659        "decay": 0,
1660        "sync": false
1661      },
1662      "direction": "clockwise",
1663      "enable": false
1664    },
1665    "twinkle": {
1666      "lines": {
1667        "enable": false,
1668        "frequency": 0.05,
1669        "opacity": 1
1670      },
1671      "particles": {
1672        "enable": false,
1673        "frequency": 0.05,
1674        "opacity": 1
1675      }
1676    },
1677    "wobble": {
1678      "distance": 10,
1679      "enable": true,
1680      "speed": {
1681        "angle": 10,
1682        "move": 10
1683      }
1684    },
1685    "life": {
1686      "count": 0,
1687      "delay": {
1688        "value": 0,
1689        "sync": false
1690      },
1691      "duration": {
1692        "value": 0,
1693        "sync": false
1694      }
1695    },
1696    "rotate": {
1697      "value": 0,
1698      "animation": {
1699        "enable": false,
1700        "speed": 0,
1701        "decay": 0,
1702        "sync": false
1703      },
1704      "direction": "clockwise",
1705      "path": false
1706    },
1707    "orbit": {
1708      "animation": {
1709        "count": 0,
1710        "enable": false,
1711        "speed": 1,
1712        "decay": 0,
1713        "delay": 0,
1714        "sync": false
1715      },
1716      "enable": false,
1717      "opacity": 1,
1718      "rotation": {
1719        "value": 45
1720      },
1721      "width": 1
1722    },
1723    "links": {
1724      "blink": false,
1725      "color": {
1726        "value": "#fff"
1727      },
1728      "consent": false,
1729      "distance": 100,
1730      "enable": false,
1731      "frequency": 1,
1732      "opacity": 1,
1733      "shadow": {
1734        "blur": 5,
1735        "color": {
1736          "value": "#000"
1737        },
1738        "enable": false
1739      },
1740      "triangles": {
1741        "enable": false,
1742        "frequency": 1
1743      },
1744      "width": 1,
1745      "warp": false
1746    },
1747    "repulse": {
1748      "value": 0,
1749      "enabled": false,
1750      "distance": 1,
1751      "duration": 1,
1752      "factor": 1,
1753      "speed": 1
1754    }
1755  },
1756  "pauseOnBlur": true,
1757  "pauseOnOutsideViewport": true,
1758  "responsive": [],
1759  "smooth": false,
1760  "style": {},
1761  "themes": [],
1762  "zLayers": 100,
1763  "key": "snow",
1764  "name": "Snow",
1765  "motion": {
1766    "disable": false,
1767    "reduce": {
1768      "factor": 4,
1769      "value": true
1770    }
1771  }
1772}
1773
1774// Ellipse effect when charater is changed.
1775const ellipse = {
1776  a: 6,
1777  l: 220,
1778  angle: 0.2,
1779  angleX: 0,
1780  angleY: 0,
1781  size: {
1782    init: 1.5,
1783    end: 2.4
1784  },
1785  style: {
1786    left: {
1787      init: -15,
1788      end: 35
1789    },
1790    top: {
1791      init: -15,
1792      end: 35
1793    }
1794  },
1795  colors: ["hsl(60, 100%, 80%)"],
1796  dataAnime: {
1797    stagger: 0.25,
1798    duration: 300
1799  }
1800}
1801
1802// Explosion when character is selected.
1803const explosion = {
1804  a: 3,
1805  l: 290,
1806  angle: 0.4,
1807  angleX: 0,
1808  angleY: 0,
1809  size: {
1810    init: 0.9,
1811    end: 3.2
1812  },
1813  style: {
1814    left: {
1815      init: -15,
1816      end: 35
1817    },
1818    top: {
1819      init: -10,
1820      end: 25
1821    }
1822  },
1823  colors:[
1824    "hsla(33, 100%, 80%, 1.00)",  // dorado claro
1825    "hsl(45, 100%, 70%)",  // ámbar
1826    "hsla(18, 100%, 90%, 1.00)",  // amarillo pálido
1827    "hsl(55, 100%, 85%)",  // dorado suave
1828    "hsl(40, 100%, 75%)"   // naranja dorado
1829  ],
1830  dataAnime: {
1831    stagger: 0.25,
1832    duration: 300
1833  }
1834}
1835
1836// Explosion effect when a character is selected. It delays like 3 seconds.
1837/*const explosion2 = {
1838  a: 1,
1839  l: 1500,
1840  angle: 0.5,
1841  angleX: window.innerWidth / 2,
1842  angleY: window.innerHeight / 2,
1843  size: {
1844    init: 0.1,
1845    end: 2.5
1846  },
1847  style: {
1848    left: {
1849      init: -15,
1850      end: 35
1851    },
1852    top: {
1853      init: -1,
1854      end: 3
1855    }
1856  },
1857  dataAnime: {
1858    stagger: 0.2,
1859    duration: 300
1860  }
1861}*/
1862
1863/**
1864 * Mezcla aditiva correcta (media en RGB lineal) de 1 a 6 colores hex.
1865 * - Acepta #RGB, #RRGGBB, #RGBA, #RRGGBBAA
1866 * - Devuelve #RRGGBB o #RRGGBBAA (si hay transparencia)
1867 * - Soporta pesos opcionales (array del mismo tamaño)
1868 * 
1869 * @param {string[]} hexColors  Array de 1..6 colores hex.
1870 * @param {number[]} [weights]  Pesos opcionales (mismo length). Si se omiten, todos = 1.
1871 * @returns {string}            Hex de resultado (#RRGGBB o #RRGGBBAA).
1872 */
1873function mixHexLinear(hexColors, weights) {
1874  if (!Array.isArray(hexColors) || hexColors.length < 1 || hexColors.length > 6) {
1875    throw new Error('Debes pasar entre 1 y 6 colores hexadecimales.');
1876  }
1877
1878  const n = hexColors.length;
1879  const w = Array.isArray(weights) && weights.length === n
1880    ? weights.slice()
1881    : Array(n).fill(1);
1882
1883  // Normaliza pesos (evita sumas 0 o negativas)
1884  let sumW = w.reduce((a, b) => a + (isFinite(b) ? Math.max(0, b) : 0), 0);
1885  if (sumW <= 0) throw new Error('Los pesos deben ser números no negativos y la suma > 0.');
1886  for (let i = 0; i < n; i++) w[i] = Math.max(0, Number(w[i]));
1887  sumW = w.reduce((a, b) => a + b, 0);
1888
1889  // ---- Utilidades sRGB <-> lineal (canal en [0..1]) ----
1890  const srgbToLinear = (cs) => (cs <= 0.04045 ? cs / 12.92 : Math.pow((cs + 0.055) / 1.055, 2.4));
1891  const linearToSrgb = (cl) => (cl <= 0.0031308 ? 12.92 * cl : 1.055 * Math.pow(cl, 1 / 2.4) - 0.055);
1892
1893  // ---- Parseo HEX (#RGB, #RRGGBB, #RGBA, #RRGGBBAA) -> {r,g,b,a} 0..255 ----
1894  function parseHex(hex) {
1895    if (typeof hex !== 'string') throw new Error('Color no válido (no es string).');
1896    let h = hex.trim().replace(/^#/, '');
1897    if (![3, 4, 6, 8].includes(h.length)) {
1898      throw new Error(`Formato HEX no soportado: ${hex}`);
1899    }
1900    if (h.length === 3 || h.length === 4) {
1901      // Expande #RGB(A) a #RRGGBB(AA)
1902      h = h.split('').map((ch) => ch + ch).join('');
1903    }
1904    const hasAlpha = h.length === 8;
1905    const r = parseInt(h.slice(0, 2), 16);
1906    const g = parseInt(h.slice(2, 4), 16);
1907    const b = parseInt(h.slice(4, 6), 16);
1908    const a = hasAlpha ? parseInt(h.slice(6, 8), 16) : 255;
1909    if ([r, g, b, a].some((v) => Number.isNaN(v))) {
1910      throw new Error(`HEX inválido: ${hex}`);
1911    }
1912    return { r, g, b, a };
1913  }
1914
1915  // ---- Acumuladores en espacio lineal premultiplicado ----
1916  // (Para tratar correctamente el alpha)
1917  let accR = 0, accG = 0, accB = 0, accA = 0;
1918
1919  for (let i = 0; i < n; i++) {
1920    const { r, g, b, a } = parseHex(hexColors[i]);
1921    const weight = w[i] / sumW;
1922
1923    // Normaliza a [0..1]
1924    const as = a / 255;
1925
1926    // sRGB [0..1]
1927    const rs = r / 255;
1928    const gs = g / 255;
1929    const bs = b / 255;
1930
1931    // sRGB -> lineal
1932    const rLin = srgbToLinear(rs);
1933    const gLin = srgbToLinear(gs);
1934    const bLin = srgbToLinear(bs);
1935
1936    // Premultiplicado por alpha para componer correctamente
1937    const rPremul = rLin * as;
1938    const gPremul = gLin * as;
1939    const bPremul = bLin * as;
1940
1941    // Media ponderada (por pesos)
1942    accR += weight * rPremul;
1943    accG += weight * gPremul;
1944    accB += weight * bPremul;
1945    accA += weight * as;
1946  }
1947
1948  // Si la alpha combinada es 0, devolvemos transparente
1949  if (accA <= 0) return '#00000000';
1950
1951  // Despremultiplica en lineal
1952  const rLinOut = accR / accA;
1953  const gLinOut = accG / accA;
1954  const bLinOut = accB / accA;
1955
1956  // Vuelve a sRGB
1957  const rs = linearToSrgb(clamp01(rLinOut));
1958  const gs = linearToSrgb(clamp01(gLinOut));
1959  const bs = linearToSrgb(clamp01(bLinOut));
1960  const as = clamp01(accA);
1961
1962  // A 0..255 enteros
1963  const R = Math.round(clamp01(rs) * 255);
1964  const G = Math.round(clamp01(gs) * 255);
1965  const B = Math.round(clamp01(bs) * 255);
1966  const A = Math.round(clamp01(as) * 255);
1967
1968  // Si todos opacos, devuelve #RRGGBB; si no, #RRGGBBAA
1969  const hexOut = '#' + [R, G, B].map(toHex2).join('');
1970  return (A === 255)
1971    ? hexOut
1972    : hexOut + toHex2(A);
1973
1974  function toHex2(v) {
1975    return v.toString(16).padStart(2, '0');
1976  }
1977  function clamp01(x) {
1978    return Math.min(1, Math.max(0, x));
1979  }
1980}
1981
1982// --- Utilidades básicas HEX ↔ RGB (0..255)
1983function parseHex(hex) {
1984  let h = hex.trim().replace(/^#/, '');
1985  if (h.length === 3 || h.length === 4) h = h.split('').map(ch => ch + ch).join('');
1986  if (![6,8].includes(h.length)) throw new Error(`HEX inválido: ${hex}`);
1987  const r = parseInt(h.slice(0,2), 16);
1988  const g = parseInt(h.slice(2,4), 16);
1989  const b = parseInt(h.slice(4,6), 16);
1990  const a = h.length === 8 ? parseInt(h.slice(6,8), 16) : 255;
1991  return { r, g, b, a };
1992}
1993const toHex2 = v => v.toString(16).padStart(2, '0');
1994function rgbToHex({r,g,b,a=255}) {
1995  const body = `#${toHex2(r)}${toHex2(g)}${toHex2(b)}`;
1996  return a === 255 ? body : body + toHex2(a);
1997}
1998const clamp01 = x => Math.min(1, Math.max(0, x));
1999
2000// --- sRGB companding
2001function srgbToLinear01(cs){ return cs <= 0.04045 ? cs/12.92 : Math.pow((cs+0.055)/1.055, 2.4); }
2002function linearToSrgb01(cl){ return cl <= 0.0031308 ? 12.92*cl : 1.055*Math.pow(cl, 1/2.4) - 0.055; }
2003
2004// --- sRGB (lineal) ↔ XYZ (D65) y XYZ ↔ OKLab
2005// Matrices de https://bottosson.github.io/posts/oklab/ (implementación estándar)
2006function srgbToOkLab(r8,g8,b8){
2007  // 0..255 -> 0..1 sRGB -> lineal
2008  const r = srgbToLinear01(r8/255), g = srgbToLinear01(g8/255), b = srgbToLinear01(b8/255);
2009
2010  const l = 0.4122214708*r + 0.5363325363*g + 0.0514459929*b;
2011  const m = 0.2119034982*r + 0.6806995451*g + 0.1073969566*b;
2012  const s = 0.0883024619*r + 0.2817188376*g + 0.6299787005*b;
2013
2014  const l_ = Math.cbrt(l);
2015  const m_ = Math.cbrt(m);
2016  const s_ = Math.cbrt(s);
2017
2018  const L = 0.2104542553*l_ + 0.7936177850*m_ - 0.0040720468*s_;
2019  const a = 1.9779984951*l_ - 2.4285922050*m_ + 0.4505937099*s_;
2020  const b_ = 0.0259040371*l_ + 0.7827717662*m_ - 0.8086757660*s_;
2021  return { L, a, b: b_ };
2022}
2023
2024function okLabToSrgb({L,a,b}){
2025  const l_ = Math.pow(L + 0.3963377774*a + 0.2158037573*b, 3);
2026  const m_ = Math.pow(L - 0.1055613458*a - 0.0638541728*b, 3);
2027  const s_ = Math.pow(L - 0.0894841775*a - 1.2914855480*b, 3);
2028
2029  const rLin =  4.0767416621*l_ - 3.3077115913*m_ + 0.2309699292*s_;
2030  const gLin = -1.2684380046*l_ + 2.6097574011*m_ - 0.3413193965*s_;
2031  const bLin = -0.0041960863*l_ - 0.7034186147*m_ + 1.7076147010*s_;
2032
2033  const R = Math.round(clamp01(linearToSrgb01(rLin))*255);
2034  const G = Math.round(clamp01(linearToSrgb01(gLin))*255);
2035  const B = Math.round(clamp01(linearToSrgb01(bLin))*255);
2036  return { r:R, g:G, b:B };
2037}
2038
2039// --- Helpers OKLab ↔ OKLCH
2040function okLabToOklch({L,a,b}) {
2041  const C = Math.hypot(a, b);
2042  let h = Math.atan2(b, a) * 180/Math.PI; // -180..180
2043  if (h < 0) h += 360;                     // 0..360
2044  return { L, C, h };
2045}
2046function oklchToOkLab({L,C,h}) {
2047  const rad = h * Math.PI/180;
2048  return { L, a: C*Math.cos(rad), b: C*Math.sin(rad) };
2049}
2050
2051// --- Mezcla perceptual viva
2052/**
2053 * Mezcla 1..6 hex en OKLab con conservación/impulso de croma.
2054 * @param {string[]} hexes
2055 * @param {'avg'|'max'|'boost'} chromaStrategy
2056 * @param {number} boostFactor  e.g. 1.15 para 15% más croma
2057 * @returns {string} #RRGGBB
2058 */
2059// Si ves que algún resultado se “deslava”, sube boostFactor (1.15–1.25).
2060// Si a veces sale “demasiado” saturado, bájalo a 1.05–1.10 o usa chromaStrategy: 'max'.
2061function mixHexVividOKLab(hexes, chromaStrategy='boost', boostFactor=1.85) {
2062  if (!Array.isArray(hexes) || hexes.length < 1 || hexes.length > 6) {
2063    throw new Error('Pasa entre 1 y 6 colores hex.');
2064  }
2065  // A OKLCH
2066  const oklch = hexes.map(hx => {
2067    const {r,g,b} = parseHex(hx);
2068    const lab = srgbToOkLab(r,g,b);
2069    return okLabToOklch(lab);
2070  });
2071
2072  // Media de L y media circular de h (para evitar saltos por 0/360)
2073  const L = oklch.reduce((a,c)=>a+c.L, 0) / oklch.length;
2074
2075  // Media circular de hue
2076  const sumX = oklch.reduce((s,c)=> s + Math.cos(c.h*Math.PI/180), 0);
2077  const sumY = oklch.reduce((s,c)=> s + Math.sin(c.h*Math.PI/180), 0);
2078  let h = Math.atan2(sumY, sumX) * 180/Math.PI;
2079  if (h < 0) h += 360;
2080
2081  // Croma objetivo
2082  let C;
2083  if (chromaStrategy === 'max') {
2084    C = Math.max(...oklch.map(c => c.C));
2085  } else if (chromaStrategy === 'avg') {
2086    C = oklch.reduce((a,c)=>a+c.C, 0) / oklch.length;
2087  } else {
2088    // boost: partimos de la media y la empujamos
2089    const Cavg = oklch.reduce((a,c)=>a+c.C, 0) / oklch.length;
2090    const Cmax = Math.max(...oklch.map(c => c.C));
2091    // mezcla hacia el máximo y aplica boost multiplicativo
2092    C = Cavg + 0.5*(Cmax - Cavg); // empuje hacia el más saturado
2093    C *= boostFactor;             // un poco más de punch
2094  }
2095
2096  // Volver a sRGB
2097  const labOut = oklchToOkLab({L, C, h});
2098  const rgb = okLabToSrgb(labOut);
2099
2100  // Gamut clipping: si algo cae fuera, puedes reducir C ligeramente y reintentar
2101  // (para mantenerlo simple, aquí solo clamp sRGB)
2102  return rgbToHex(rgb);
2103}
2104
2105export {takeSizes, ctrlSnd, slideSnd, scrollToTop, launchEffect, confetti, pinataeffectConfig, snow, lucesGrupo1, lucesGrupo2, mixHexVividOKLab, dinamycCreateElements, contents2Translate, launchStardust, ellipse, explosion, snowFlakes, destroySnow}

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.