{"id":1191,"date":"2026-10-10T14:13:19","date_gmt":"2026-10-10T14:13:19","guid":{"rendered":"https:\/\/bluelake.milanoproduct.com\/creative\/"},"modified":"2026-10-12T10:25:54","modified_gmt":"2026-10-12T10:25:54","slug":"creative","status":"publish","type":"page","link":"https:\/\/bluelake.milanoproduct.com\/es\/creative\/","title":{"rendered":"Creative"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1191\" class=\"elementor elementor-1191\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3a7b017 bl-page-hero e-flex e-con-boxed e-con e-parent\" data-id=\"3a7b017\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6397aa2 elementor-widget elementor-widget-text-editor\" data-id=\"6397aa2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>[ Creative ]<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e64ac23 elementor-widget elementor-widget-heading\" data-id=\"e64ac23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Creative<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6d44c65 elementor-widget__width-initial elementor-widget elementor-widget-text-editor\" data-id=\"6d44c65\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Strategy, concept and art direction to make your brand look its best.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-693b6ff bl-filter elementor-widget elementor-widget-text-editor\" data-id=\"693b6ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"\/work\/\">All<\/a><span class=\"bl-filter-sep\"> \u00b7 <\/span><a href=\"\/film\/\">Film<\/a><span class=\"bl-filter-sep\"> \u00b7 <\/span><a href=\"\/photo\/\">Photo<\/a><span class=\"bl-filter-sep\"> \u00b7 <\/span><span class=\"bl-filter-active\">Creative<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ab50fa5 bl-work-grid e-flex e-con-boxed e-con e-parent\" data-id=\"ab50fa5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3db6668 elementor-widget-mobile__width-inherit elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"3db6668\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:&quot;1138&quot;,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:64,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:40,&quot;sizes&quot;:[]},&quot;columns&quot;:3,&quot;_skin&quot;:&quot;post&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap_laptop&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\">\n\t\t<style id=\"loop-dynamic-1138\">.e-loop-item-1500 .elementor-element.elementor-element-0ac5b91:not(.elementor-motion-effects-element-type-background), .e-loop-item-1500 .elementor-element.elementor-element-0ac5b91 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/bluelake.milanoproduct.com\/wp-content\/uploads\/2026\/09\/vlog1-1.jpg\");}<\/style><style id=\"loop-1138\">.elementor-1138 .elementor-element.elementor-element-1d4f467{--display:flex;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overlay-opacity:0.5;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1138 .elementor-element.elementor-element-1d4f467::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .e-con-inner > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .elementor-background-slideshow::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-1138 .elementor-element.elementor-element-1d4f467:hover::before, .elementor-1138 .elementor-element.elementor-element-1d4f467:hover > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-1d4f467:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .elementor-background-slideshow:hover::before, .elementor-1138 .elementor-element.elementor-element-1d4f467 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1138 .elementor-element.elementor-element-1d4f467:hover{--overlay-opacity:0.5;}.elementor-1138 .elementor-element.elementor-element-f2771f7{--display:flex;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:10px 10px;--row-gap:10px;--column-gap:10px;--overlay-opacity:0.5;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1138 .elementor-element.elementor-element-f2771f7::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .e-con-inner > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .elementor-background-slideshow::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .e-con-inner > .elementor-background-slideshow::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{--background-overlay:'';}.elementor-1138 .elementor-element.elementor-element-f2771f7:hover::before, .elementor-1138 .elementor-element.elementor-element-f2771f7:hover > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-f2771f7:hover > .e-con-inner > .elementor-background-video-container::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .elementor-background-slideshow:hover::before, .elementor-1138 .elementor-element.elementor-element-f2771f7 > .e-con-inner > .elementor-background-slideshow:hover::before{--background-overlay:'';}.elementor-1138 .elementor-element.elementor-element-f2771f7:hover{--overlay-opacity:0.5;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-1138 .elementor-element.elementor-element-8f24239 .elementor-heading-title{font-family:\"Inter Tight\", Sans-serif;font-size:20px;font-weight:600;letter-spacing:-0.7px;color:var( --e-global-color-accent );}.elementor-1138 .elementor-element.elementor-element-e164096 .elementor-heading-title{font-family:\"Inter Tight\", Sans-serif;font-size:18px;font-weight:500;letter-spacing:-0.5px;color:#15284D5C;}.elementor-1138 .elementor-element.elementor-element-0ac5b91{--display:flex;--min-height:300px;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-1138 .elementor-element.elementor-element-0ac5b91:not(.elementor-motion-effects-element-type-background), .elementor-1138 .elementor-element.elementor-element-0ac5b91 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-position:center center;background-repeat:no-repeat;background-size:cover;}@media(min-width:768px){.elementor-1138 .elementor-element.elementor-element-0ac5b91{--content-width:100%;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1138\" class=\"elementor elementor-1138 e-loop-item e-loop-item-1500 post-1500 proyectos type-proyectos status-publish has-post-thumbnail hentry categoria-proyecto-creativo\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-1d4f467 e-con-full contenedor-hover e-flex e-con e-child\" data-id=\"1d4f467\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/bluelake.milanoproduct.com\/es\/proyectos\/72h-en-hotel-de-lujo-en-ibiza\/\">\n\t\t<div class=\"elementor-element elementor-element-f2771f7 e-con-full contenedor-hover-info e-flex e-con e-child\" data-id=\"f2771f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f24239 elementor-widget elementor-widget-heading\" data-id=\"8f24239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">72h en Hotel de lujo en Ibiza<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ac5b91 video-pro e-flex e-con-boxed e-con e-child\" data-id=\"0ac5b91\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60c5922 elementor-widget elementor-widget-html\" data-id=\"60c5922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =====================================================\n   TARJETA\n===================================================== *\/\n\n.contenedor-hover {\n    position: relative !important;\n\n    width: 100% !important;\n    aspect-ratio: 16 \/ 9 !important;\n\n    \/*\n     * Necesario para que la info pueda\n     * aparecer por encima.\n     *\/\n    overflow: visible !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n}\n\n\n\/* =====================================================\n   SHORTCODE\n===================================================== *\/\n\n.contenedor-hover .elementor-widget-shortcode {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    z-index: 5 !important;\n\n    overflow: hidden !important;\n\n    pointer-events: none !important;\n}\n\n.contenedor-hover\n.elementor-widget-shortcode\n> .elementor-widget-container,\n\n.contenedor-hover\n.elementor-shortcode {\n\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    overflow: hidden !important;\n}\n\n\n\/* =====================================================\n   CAPA YOUTUBE\n===================================================== *\/\n\n.lz-hover-video {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    overflow: hidden !important;\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s linear 0.15s;\n}\n\n\n\/* Mostrar v\u00eddeo *\/\n.contenedor-hover.lz-video-activo\n.lz-hover-video {\n\n    opacity: 1;\n    visibility: visible;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s;\n}\n\n\n\/* =====================================================\n   IFRAME\n===================================================== *\/\n\n.lz-hover-video iframe {\n    position: absolute !important;\n\n    top: 50% !important;\n    left: 50% !important;\n\n    \/*\n     * Overscan como background video.\n     *\n     * Recorta t\u00edtulo\/avatar\/logo situados\n     * en las zonas exteriores.\n     *\/\n    width: 135% !important;\n    height: 135% !important;\n\n    min-width: 135% !important;\n    min-height: 135% !important;\n\n    max-width: none !important;\n\n    transform:\n        translate(-50%, -50%) !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n\n    \/*\n     * YouTube jam\u00e1s recibe hover\/click.\n     *\/\n    pointer-events: none !important;\n}\n\n\n\/* =====================================================\n   INFO ARRIBA\n===================================================== *\/\n\n.contenedor-hover .contenedor-hover-info {\n\n    position: absolute !important;\n\n    left: 0 !important;\n\n    \/*\n     * Arriba de la imagen\/v\u00eddeo.\n     *\/\n    bottom: calc(100% + 12px) !important;\n\n    width: 100% !important;\n\n    z-index: 50 !important;\n\n    opacity: 0 !important;\n    visibility: hidden !important;\n\n    \/*\n     * Entra desde abajo.\n     *\/\n    transform: translateY(18px) !important;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s linear 0.5s !important;\n}\n\n\n\/* Info visible *\/\n.contenedor-hover:hover\n.contenedor-hover-info {\n\n    opacity: 1 !important;\n    visibility: visible !important;\n\n    transform: translateY(0) !important;\n\n    pointer-events: auto !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s !important;\n}\n\n\n\/* =====================================================\n   SIN REDONDEOS\n===================================================== *\/\n\n.contenedor-hover,\n.lz-hover-video,\n.lz-hover-video iframe {\n\n    border-radius: 0 !important;\n}\n\n\n\/* V\u00eddeo alojado (MP4) en el hover *\/\n.lz-hover-video video {\n    position: absolute !important;\n    inset: 0 !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    border: 0 !important;\n    border-radius: 0 !important;\n    pointer-events: none !important;\n}\n<\/style>\n\n\n<script>\n\/*\n * HOVER V\u00cdDEO YOUTUBE (Featured Works)\n * - El iframe se crea en el primer hover y se reutiliza (pausa\/play), no se recarga.\n * - Solo se muestra cuando YouTube confirma que est\u00e1 REPRODUCIENDO:\n *   nunca se ve spinner, bot\u00f3n play ni t\u00edtulo.\n * - Desactivado en dispositivos sin hover (t\u00e1ctil).\n *\/\n(() => {\n  'use strict';\n  if (window.__lzYoutubeHoverV2) return;\n  window.__lzYoutubeHoverV2 = true;\n\n  if (!window.matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n\n  ['https:\/\/www.youtube-nocookie.com', 'https:\/\/www.youtube.com', 'https:\/\/i.ytimg.com'].forEach((h) => {\n    const l = document.createElement('link');\n    l.rel = 'preconnect'; l.href = h; l.crossOrigin = '';\n    document.head.appendChild(l);\n  });\n\n  const players = new Map(); \/\/ contentWindow -> estado de la tarjeta\n  let uid = 0;\n\n  window.addEventListener('message', (e) => {\n    if (!\/^https:\\\/\\\/(www\\.)?youtube(-nocookie)?\\.com$\/.test(e.origin)) return;\n    const p = players.get(e.source);\n    if (!p) return;\n    let d = e.data;\n    if (typeof d === 'string') { try { d = JSON.parse(d); } catch (err) { return; } }\n    if (!d) return;\n    let state = null;\n    if (d.event === 'onStateChange') state = d.info;\n    if (d.event === 'infoDelivery' && d.info && typeof d.info.playerState === 'number') state = d.info.playerState;\n    if (state === null) return;\n    p.playing = state === 1;\n    if (p.playing && p.dentro) p.mostrar();\n  });\n\n  function preparar(card) {\n    if (card.dataset.lzV2Ready === '1') return;\n    const capa = card.querySelector('.lz-hover-video');\n    if (capa && capa.dataset.videoSrc) { prepararMp4(card, capa); return; }\n    if (!capa || !capa.dataset.youtubeId) return;\n    card.dataset.lzV2Ready = '1';\n\n    const videoId = capa.dataset.youtubeId;\n    const p = { dentro: false, playing: false, iframe: null, listo: false, timer: null };\n\n    function cmd(func, args) {\n      if (!p.iframe || !p.iframe.contentWindow) return;\n      p.iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', func: func, args: args || [], id: p.id, channel: 'widget' }), '*');\n    }\n\n    p.mostrar = () => {\n      clearTimeout(p.timer);\n      \/\/ margen m\u00ednimo para que YouTube retire cualquier overlay de arranque\n      p.timer = setTimeout(() => { if (p.dentro && p.playing) card.classList.add('lz-video-activo'); }, 200);\n    };\n\n    function crear() {\n      p.id = 'lzyt' + (++uid);\n      const f = document.createElement('iframe');\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + videoId +\n        '?autoplay=1&mute=1&controls=0&disablekb=1&fs=0&playsinline=1&rel=0&iv_load_policy=3&modestbranding=1' +\n        '&loop=1&playlist=' + videoId + '&enablejsapi=1&origin=' + encodeURIComponent(location.origin);\n      f.setAttribute('allow', 'autoplay; encrypted-media');\n      f.setAttribute('tabindex', '-1');\n      f.setAttribute('aria-hidden', 'true');\n      f.setAttribute('title', '');\n      f.addEventListener('load', () => {\n        players.set(f.contentWindow, p);\n        p.listo = true;\n        f.contentWindow.postMessage(JSON.stringify({ event: 'listening', id: p.id, channel: 'widget' }), '*');\n        cmd('addEventListener', ['onStateChange']);\n        cmd('mute');\n        if (p.dentro) cmd('playVideo'); else cmd('pauseVideo');\n      }, { once: true });\n      p.iframe = f;\n      capa.appendChild(f);\n    }\n\n    card.addEventListener('mouseenter', () => {\n      p.dentro = true;\n      if (!p.iframe) { crear(); return; }\n      if (p.listo) { cmd('seekTo', [0, true]); cmd('playVideo'); }\n      if (p.playing) p.mostrar();\n    });\n\n    card.addEventListener('mouseleave', () => {\n      p.dentro = false;\n      clearTimeout(p.timer);\n      card.classList.remove('lz-video-activo');\n      p.playing = false;\n      cmd('pauseVideo');\n    });\n  }\n\n  \/* V\u00eddeo alojado en la web (MP4\/WebM): mismo comportamiento que YouTube *\/\n  function prepararMp4(card, capa) {\n    card.dataset.lzV2Ready = '1';\n    let v = null, dentro = false;\n    function crear() {\n      v = document.createElement('video');\n      v.src = capa.dataset.videoSrc;\n      v.muted = true; v.loop = true; v.playsInline = true;\n      v.setAttribute('muted', ''); v.setAttribute('playsinline', '');\n      v.preload = 'metadata';\n      v.setAttribute('aria-hidden', 'true');\n      v.addEventListener('playing', () => { if (dentro) card.classList.add('lz-video-activo'); });\n      capa.appendChild(v);\n    }\n    card.addEventListener('mouseenter', () => {\n      dentro = true;\n      if (!v) crear();\n      const p = v.play(); if (p && p.catch) p.catch(() => {});\n    });\n    card.addEventListener('mouseleave', () => {\n      dentro = false;\n      card.classList.remove('lz-video-activo');\n      if (v) { v.pause(); try { v.currentTime = 0; } catch (e) {} }\n    });\n  }\n\n  function iniciar() { document.querySelectorAll('.contenedor-hover').forEach(preparar); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', iniciar, { once: true });\n  else iniciar();\n\n  new MutationObserver(() => {\n    document.querySelectorAll('.contenedor-hover:not([data-lz-v2-ready=\"1\"])').forEach(preparar);\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cdcda0 elementor-widget elementor-widget-shortcode\" data-id=\"0cdcda0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <div\n            class=\"lz-hover-video\"\n            data-youtube-id=\"kSOUNuIrL4k\"\n            aria-hidden=\"true\">\n        <\/div>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-1138\">.e-loop-item-1498 .elementor-element.elementor-element-0ac5b91:not(.elementor-motion-effects-element-type-background), .e-loop-item-1498 .elementor-element.elementor-element-0ac5b91 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/bluelake.milanoproduct.com\/wp-content\/uploads\/2026\/10\/vlog2.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1138\" class=\"elementor elementor-1138 e-loop-item e-loop-item-1498 post-1498 proyectos type-proyectos status-publish has-post-thumbnail hentry categoria-proyecto-creativo\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-1d4f467 e-con-full contenedor-hover e-flex e-con e-child\" data-id=\"1d4f467\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/bluelake.milanoproduct.com\/es\/proyectos\/campana-en-condiciones-extremas\/\">\n\t\t<div class=\"elementor-element elementor-element-f2771f7 e-con-full contenedor-hover-info e-flex e-con e-child\" data-id=\"f2771f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f24239 elementor-widget elementor-widget-heading\" data-id=\"8f24239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Campa\u00f1a en condiciones extremas<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ac5b91 video-pro e-flex e-con-boxed e-con e-child\" data-id=\"0ac5b91\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60c5922 elementor-widget elementor-widget-html\" data-id=\"60c5922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =====================================================\n   TARJETA\n===================================================== *\/\n\n.contenedor-hover {\n    position: relative !important;\n\n    width: 100% !important;\n    aspect-ratio: 16 \/ 9 !important;\n\n    \/*\n     * Necesario para que la info pueda\n     * aparecer por encima.\n     *\/\n    overflow: visible !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n}\n\n\n\/* =====================================================\n   SHORTCODE\n===================================================== *\/\n\n.contenedor-hover .elementor-widget-shortcode {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    z-index: 5 !important;\n\n    overflow: hidden !important;\n\n    pointer-events: none !important;\n}\n\n.contenedor-hover\n.elementor-widget-shortcode\n> .elementor-widget-container,\n\n.contenedor-hover\n.elementor-shortcode {\n\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    overflow: hidden !important;\n}\n\n\n\/* =====================================================\n   CAPA YOUTUBE\n===================================================== *\/\n\n.lz-hover-video {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    overflow: hidden !important;\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s linear 0.15s;\n}\n\n\n\/* Mostrar v\u00eddeo *\/\n.contenedor-hover.lz-video-activo\n.lz-hover-video {\n\n    opacity: 1;\n    visibility: visible;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s;\n}\n\n\n\/* =====================================================\n   IFRAME\n===================================================== *\/\n\n.lz-hover-video iframe {\n    position: absolute !important;\n\n    top: 50% !important;\n    left: 50% !important;\n\n    \/*\n     * Overscan como background video.\n     *\n     * Recorta t\u00edtulo\/avatar\/logo situados\n     * en las zonas exteriores.\n     *\/\n    width: 135% !important;\n    height: 135% !important;\n\n    min-width: 135% !important;\n    min-height: 135% !important;\n\n    max-width: none !important;\n\n    transform:\n        translate(-50%, -50%) !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n\n    \/*\n     * YouTube jam\u00e1s recibe hover\/click.\n     *\/\n    pointer-events: none !important;\n}\n\n\n\/* =====================================================\n   INFO ARRIBA\n===================================================== *\/\n\n.contenedor-hover .contenedor-hover-info {\n\n    position: absolute !important;\n\n    left: 0 !important;\n\n    \/*\n     * Arriba de la imagen\/v\u00eddeo.\n     *\/\n    bottom: calc(100% + 12px) !important;\n\n    width: 100% !important;\n\n    z-index: 50 !important;\n\n    opacity: 0 !important;\n    visibility: hidden !important;\n\n    \/*\n     * Entra desde abajo.\n     *\/\n    transform: translateY(18px) !important;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s linear 0.5s !important;\n}\n\n\n\/* Info visible *\/\n.contenedor-hover:hover\n.contenedor-hover-info {\n\n    opacity: 1 !important;\n    visibility: visible !important;\n\n    transform: translateY(0) !important;\n\n    pointer-events: auto !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s !important;\n}\n\n\n\/* =====================================================\n   SIN REDONDEOS\n===================================================== *\/\n\n.contenedor-hover,\n.lz-hover-video,\n.lz-hover-video iframe {\n\n    border-radius: 0 !important;\n}\n\n\n\/* V\u00eddeo alojado (MP4) en el hover *\/\n.lz-hover-video video {\n    position: absolute !important;\n    inset: 0 !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    border: 0 !important;\n    border-radius: 0 !important;\n    pointer-events: none !important;\n}\n<\/style>\n\n\n<script>\n\/*\n * HOVER V\u00cdDEO YOUTUBE (Featured Works)\n * - El iframe se crea en el primer hover y se reutiliza (pausa\/play), no se recarga.\n * - Solo se muestra cuando YouTube confirma que est\u00e1 REPRODUCIENDO:\n *   nunca se ve spinner, bot\u00f3n play ni t\u00edtulo.\n * - Desactivado en dispositivos sin hover (t\u00e1ctil).\n *\/\n(() => {\n  'use strict';\n  if (window.__lzYoutubeHoverV2) return;\n  window.__lzYoutubeHoverV2 = true;\n\n  if (!window.matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n\n  ['https:\/\/www.youtube-nocookie.com', 'https:\/\/www.youtube.com', 'https:\/\/i.ytimg.com'].forEach((h) => {\n    const l = document.createElement('link');\n    l.rel = 'preconnect'; l.href = h; l.crossOrigin = '';\n    document.head.appendChild(l);\n  });\n\n  const players = new Map(); \/\/ contentWindow -> estado de la tarjeta\n  let uid = 0;\n\n  window.addEventListener('message', (e) => {\n    if (!\/^https:\\\/\\\/(www\\.)?youtube(-nocookie)?\\.com$\/.test(e.origin)) return;\n    const p = players.get(e.source);\n    if (!p) return;\n    let d = e.data;\n    if (typeof d === 'string') { try { d = JSON.parse(d); } catch (err) { return; } }\n    if (!d) return;\n    let state = null;\n    if (d.event === 'onStateChange') state = d.info;\n    if (d.event === 'infoDelivery' && d.info && typeof d.info.playerState === 'number') state = d.info.playerState;\n    if (state === null) return;\n    p.playing = state === 1;\n    if (p.playing && p.dentro) p.mostrar();\n  });\n\n  function preparar(card) {\n    if (card.dataset.lzV2Ready === '1') return;\n    const capa = card.querySelector('.lz-hover-video');\n    if (capa && capa.dataset.videoSrc) { prepararMp4(card, capa); return; }\n    if (!capa || !capa.dataset.youtubeId) return;\n    card.dataset.lzV2Ready = '1';\n\n    const videoId = capa.dataset.youtubeId;\n    const p = { dentro: false, playing: false, iframe: null, listo: false, timer: null };\n\n    function cmd(func, args) {\n      if (!p.iframe || !p.iframe.contentWindow) return;\n      p.iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', func: func, args: args || [], id: p.id, channel: 'widget' }), '*');\n    }\n\n    p.mostrar = () => {\n      clearTimeout(p.timer);\n      \/\/ margen m\u00ednimo para que YouTube retire cualquier overlay de arranque\n      p.timer = setTimeout(() => { if (p.dentro && p.playing) card.classList.add('lz-video-activo'); }, 200);\n    };\n\n    function crear() {\n      p.id = 'lzyt' + (++uid);\n      const f = document.createElement('iframe');\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + videoId +\n        '?autoplay=1&mute=1&controls=0&disablekb=1&fs=0&playsinline=1&rel=0&iv_load_policy=3&modestbranding=1' +\n        '&loop=1&playlist=' + videoId + '&enablejsapi=1&origin=' + encodeURIComponent(location.origin);\n      f.setAttribute('allow', 'autoplay; encrypted-media');\n      f.setAttribute('tabindex', '-1');\n      f.setAttribute('aria-hidden', 'true');\n      f.setAttribute('title', '');\n      f.addEventListener('load', () => {\n        players.set(f.contentWindow, p);\n        p.listo = true;\n        f.contentWindow.postMessage(JSON.stringify({ event: 'listening', id: p.id, channel: 'widget' }), '*');\n        cmd('addEventListener', ['onStateChange']);\n        cmd('mute');\n        if (p.dentro) cmd('playVideo'); else cmd('pauseVideo');\n      }, { once: true });\n      p.iframe = f;\n      capa.appendChild(f);\n    }\n\n    card.addEventListener('mouseenter', () => {\n      p.dentro = true;\n      if (!p.iframe) { crear(); return; }\n      if (p.listo) { cmd('seekTo', [0, true]); cmd('playVideo'); }\n      if (p.playing) p.mostrar();\n    });\n\n    card.addEventListener('mouseleave', () => {\n      p.dentro = false;\n      clearTimeout(p.timer);\n      card.classList.remove('lz-video-activo');\n      p.playing = false;\n      cmd('pauseVideo');\n    });\n  }\n\n  \/* V\u00eddeo alojado en la web (MP4\/WebM): mismo comportamiento que YouTube *\/\n  function prepararMp4(card, capa) {\n    card.dataset.lzV2Ready = '1';\n    let v = null, dentro = false;\n    function crear() {\n      v = document.createElement('video');\n      v.src = capa.dataset.videoSrc;\n      v.muted = true; v.loop = true; v.playsInline = true;\n      v.setAttribute('muted', ''); v.setAttribute('playsinline', '');\n      v.preload = 'metadata';\n      v.setAttribute('aria-hidden', 'true');\n      v.addEventListener('playing', () => { if (dentro) card.classList.add('lz-video-activo'); });\n      capa.appendChild(v);\n    }\n    card.addEventListener('mouseenter', () => {\n      dentro = true;\n      if (!v) crear();\n      const p = v.play(); if (p && p.catch) p.catch(() => {});\n    });\n    card.addEventListener('mouseleave', () => {\n      dentro = false;\n      card.classList.remove('lz-video-activo');\n      if (v) { v.pause(); try { v.currentTime = 0; } catch (e) {} }\n    });\n  }\n\n  function iniciar() { document.querySelectorAll('.contenedor-hover').forEach(preparar); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', iniciar, { once: true });\n  else iniciar();\n\n  new MutationObserver(() => {\n    document.querySelectorAll('.contenedor-hover:not([data-lz-v2-ready=\"1\"])').forEach(preparar);\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cdcda0 elementor-widget elementor-widget-shortcode\" data-id=\"0cdcda0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <div\n            class=\"lz-hover-video\"\n            data-youtube-id=\"VBR3RgVMaIg\"\n            aria-hidden=\"true\">\n        <\/div>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-1138\">.e-loop-item-1496 .elementor-element.elementor-element-0ac5b91:not(.elementor-motion-effects-element-type-background), .e-loop-item-1496 .elementor-element.elementor-element-0ac5b91 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/bluelake.milanoproduct.com\/wp-content\/uploads\/2026\/10\/navidad.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1138\" class=\"elementor elementor-1138 e-loop-item e-loop-item-1496 post-1496 proyectos type-proyectos status-publish has-post-thumbnail hentry categoria-proyecto-creativo\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-1d4f467 e-con-full contenedor-hover e-flex e-con e-child\" data-id=\"1d4f467\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/bluelake.milanoproduct.com\/es\/proyectos\/navidad-blue-lake\/\">\n\t\t<div class=\"elementor-element elementor-element-f2771f7 e-con-full contenedor-hover-info e-flex e-con e-child\" data-id=\"f2771f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f24239 elementor-widget elementor-widget-heading\" data-id=\"8f24239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">La magia de la navidad<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ac5b91 video-pro e-flex e-con-boxed e-con e-child\" data-id=\"0ac5b91\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60c5922 elementor-widget elementor-widget-html\" data-id=\"60c5922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =====================================================\n   TARJETA\n===================================================== *\/\n\n.contenedor-hover {\n    position: relative !important;\n\n    width: 100% !important;\n    aspect-ratio: 16 \/ 9 !important;\n\n    \/*\n     * Necesario para que la info pueda\n     * aparecer por encima.\n     *\/\n    overflow: visible !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n}\n\n\n\/* =====================================================\n   SHORTCODE\n===================================================== *\/\n\n.contenedor-hover .elementor-widget-shortcode {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    z-index: 5 !important;\n\n    overflow: hidden !important;\n\n    pointer-events: none !important;\n}\n\n.contenedor-hover\n.elementor-widget-shortcode\n> .elementor-widget-container,\n\n.contenedor-hover\n.elementor-shortcode {\n\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    overflow: hidden !important;\n}\n\n\n\/* =====================================================\n   CAPA YOUTUBE\n===================================================== *\/\n\n.lz-hover-video {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    overflow: hidden !important;\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s linear 0.15s;\n}\n\n\n\/* Mostrar v\u00eddeo *\/\n.contenedor-hover.lz-video-activo\n.lz-hover-video {\n\n    opacity: 1;\n    visibility: visible;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s;\n}\n\n\n\/* =====================================================\n   IFRAME\n===================================================== *\/\n\n.lz-hover-video iframe {\n    position: absolute !important;\n\n    top: 50% !important;\n    left: 50% !important;\n\n    \/*\n     * Overscan como background video.\n     *\n     * Recorta t\u00edtulo\/avatar\/logo situados\n     * en las zonas exteriores.\n     *\/\n    width: 135% !important;\n    height: 135% !important;\n\n    min-width: 135% !important;\n    min-height: 135% !important;\n\n    max-width: none !important;\n\n    transform:\n        translate(-50%, -50%) !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n\n    \/*\n     * YouTube jam\u00e1s recibe hover\/click.\n     *\/\n    pointer-events: none !important;\n}\n\n\n\/* =====================================================\n   INFO ARRIBA\n===================================================== *\/\n\n.contenedor-hover .contenedor-hover-info {\n\n    position: absolute !important;\n\n    left: 0 !important;\n\n    \/*\n     * Arriba de la imagen\/v\u00eddeo.\n     *\/\n    bottom: calc(100% + 12px) !important;\n\n    width: 100% !important;\n\n    z-index: 50 !important;\n\n    opacity: 0 !important;\n    visibility: hidden !important;\n\n    \/*\n     * Entra desde abajo.\n     *\/\n    transform: translateY(18px) !important;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s linear 0.5s !important;\n}\n\n\n\/* Info visible *\/\n.contenedor-hover:hover\n.contenedor-hover-info {\n\n    opacity: 1 !important;\n    visibility: visible !important;\n\n    transform: translateY(0) !important;\n\n    pointer-events: auto !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s !important;\n}\n\n\n\/* =====================================================\n   SIN REDONDEOS\n===================================================== *\/\n\n.contenedor-hover,\n.lz-hover-video,\n.lz-hover-video iframe {\n\n    border-radius: 0 !important;\n}\n\n\n\/* V\u00eddeo alojado (MP4) en el hover *\/\n.lz-hover-video video {\n    position: absolute !important;\n    inset: 0 !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    border: 0 !important;\n    border-radius: 0 !important;\n    pointer-events: none !important;\n}\n<\/style>\n\n\n<script>\n\/*\n * HOVER V\u00cdDEO YOUTUBE (Featured Works)\n * - El iframe se crea en el primer hover y se reutiliza (pausa\/play), no se recarga.\n * - Solo se muestra cuando YouTube confirma que est\u00e1 REPRODUCIENDO:\n *   nunca se ve spinner, bot\u00f3n play ni t\u00edtulo.\n * - Desactivado en dispositivos sin hover (t\u00e1ctil).\n *\/\n(() => {\n  'use strict';\n  if (window.__lzYoutubeHoverV2) return;\n  window.__lzYoutubeHoverV2 = true;\n\n  if (!window.matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n\n  ['https:\/\/www.youtube-nocookie.com', 'https:\/\/www.youtube.com', 'https:\/\/i.ytimg.com'].forEach((h) => {\n    const l = document.createElement('link');\n    l.rel = 'preconnect'; l.href = h; l.crossOrigin = '';\n    document.head.appendChild(l);\n  });\n\n  const players = new Map(); \/\/ contentWindow -> estado de la tarjeta\n  let uid = 0;\n\n  window.addEventListener('message', (e) => {\n    if (!\/^https:\\\/\\\/(www\\.)?youtube(-nocookie)?\\.com$\/.test(e.origin)) return;\n    const p = players.get(e.source);\n    if (!p) return;\n    let d = e.data;\n    if (typeof d === 'string') { try { d = JSON.parse(d); } catch (err) { return; } }\n    if (!d) return;\n    let state = null;\n    if (d.event === 'onStateChange') state = d.info;\n    if (d.event === 'infoDelivery' && d.info && typeof d.info.playerState === 'number') state = d.info.playerState;\n    if (state === null) return;\n    p.playing = state === 1;\n    if (p.playing && p.dentro) p.mostrar();\n  });\n\n  function preparar(card) {\n    if (card.dataset.lzV2Ready === '1') return;\n    const capa = card.querySelector('.lz-hover-video');\n    if (capa && capa.dataset.videoSrc) { prepararMp4(card, capa); return; }\n    if (!capa || !capa.dataset.youtubeId) return;\n    card.dataset.lzV2Ready = '1';\n\n    const videoId = capa.dataset.youtubeId;\n    const p = { dentro: false, playing: false, iframe: null, listo: false, timer: null };\n\n    function cmd(func, args) {\n      if (!p.iframe || !p.iframe.contentWindow) return;\n      p.iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', func: func, args: args || [], id: p.id, channel: 'widget' }), '*');\n    }\n\n    p.mostrar = () => {\n      clearTimeout(p.timer);\n      \/\/ margen m\u00ednimo para que YouTube retire cualquier overlay de arranque\n      p.timer = setTimeout(() => { if (p.dentro && p.playing) card.classList.add('lz-video-activo'); }, 200);\n    };\n\n    function crear() {\n      p.id = 'lzyt' + (++uid);\n      const f = document.createElement('iframe');\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + videoId +\n        '?autoplay=1&mute=1&controls=0&disablekb=1&fs=0&playsinline=1&rel=0&iv_load_policy=3&modestbranding=1' +\n        '&loop=1&playlist=' + videoId + '&enablejsapi=1&origin=' + encodeURIComponent(location.origin);\n      f.setAttribute('allow', 'autoplay; encrypted-media');\n      f.setAttribute('tabindex', '-1');\n      f.setAttribute('aria-hidden', 'true');\n      f.setAttribute('title', '');\n      f.addEventListener('load', () => {\n        players.set(f.contentWindow, p);\n        p.listo = true;\n        f.contentWindow.postMessage(JSON.stringify({ event: 'listening', id: p.id, channel: 'widget' }), '*');\n        cmd('addEventListener', ['onStateChange']);\n        cmd('mute');\n        if (p.dentro) cmd('playVideo'); else cmd('pauseVideo');\n      }, { once: true });\n      p.iframe = f;\n      capa.appendChild(f);\n    }\n\n    card.addEventListener('mouseenter', () => {\n      p.dentro = true;\n      if (!p.iframe) { crear(); return; }\n      if (p.listo) { cmd('seekTo', [0, true]); cmd('playVideo'); }\n      if (p.playing) p.mostrar();\n    });\n\n    card.addEventListener('mouseleave', () => {\n      p.dentro = false;\n      clearTimeout(p.timer);\n      card.classList.remove('lz-video-activo');\n      p.playing = false;\n      cmd('pauseVideo');\n    });\n  }\n\n  \/* V\u00eddeo alojado en la web (MP4\/WebM): mismo comportamiento que YouTube *\/\n  function prepararMp4(card, capa) {\n    card.dataset.lzV2Ready = '1';\n    let v = null, dentro = false;\n    function crear() {\n      v = document.createElement('video');\n      v.src = capa.dataset.videoSrc;\n      v.muted = true; v.loop = true; v.playsInline = true;\n      v.setAttribute('muted', ''); v.setAttribute('playsinline', '');\n      v.preload = 'metadata';\n      v.setAttribute('aria-hidden', 'true');\n      v.addEventListener('playing', () => { if (dentro) card.classList.add('lz-video-activo'); });\n      capa.appendChild(v);\n    }\n    card.addEventListener('mouseenter', () => {\n      dentro = true;\n      if (!v) crear();\n      const p = v.play(); if (p && p.catch) p.catch(() => {});\n    });\n    card.addEventListener('mouseleave', () => {\n      dentro = false;\n      card.classList.remove('lz-video-activo');\n      if (v) { v.pause(); try { v.currentTime = 0; } catch (e) {} }\n    });\n  }\n\n  function iniciar() { document.querySelectorAll('.contenedor-hover').forEach(preparar); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', iniciar, { once: true });\n  else iniciar();\n\n  new MutationObserver(() => {\n    document.querySelectorAll('.contenedor-hover:not([data-lz-v2-ready=\"1\"])').forEach(preparar);\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cdcda0 elementor-widget elementor-widget-shortcode\" data-id=\"0cdcda0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <div\n            class=\"lz-hover-video\"\n            data-youtube-id=\"2TNmDaEZBmY\"\n            aria-hidden=\"true\">\n        <\/div>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-1138\">.e-loop-item-1494 .elementor-element.elementor-element-0ac5b91:not(.elementor-motion-effects-element-type-background), .e-loop-item-1494 .elementor-element.elementor-element-0ac5b91 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-image:url(\"https:\/\/bluelake.milanoproduct.com\/wp-content\/uploads\/2026\/10\/unahistoriabluelake.jpg\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"1138\" class=\"elementor elementor-1138 e-loop-item e-loop-item-1494 post-1494 proyectos type-proyectos status-publish has-post-thumbnail hentry categoria-proyecto-creativo\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<a class=\"elementor-element elementor-element-1d4f467 e-con-full contenedor-hover e-flex e-con e-child\" data-id=\"1d4f467\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"https:\/\/bluelake.milanoproduct.com\/es\/proyectos\/una-historia-de-blue-lake\/\">\n\t\t<div class=\"elementor-element elementor-element-f2771f7 e-con-full contenedor-hover-info e-flex e-con e-child\" data-id=\"f2771f7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8f24239 elementor-widget elementor-widget-heading\" data-id=\"8f24239\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">Una historia de Blue Lake<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-0ac5b91 video-pro e-flex e-con-boxed e-con e-child\" data-id=\"0ac5b91\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60c5922 elementor-widget elementor-widget-html\" data-id=\"60c5922\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<style>\n\n\/* =====================================================\n   TARJETA\n===================================================== *\/\n\n.contenedor-hover {\n    position: relative !important;\n\n    width: 100% !important;\n    aspect-ratio: 16 \/ 9 !important;\n\n    \/*\n     * Necesario para que la info pueda\n     * aparecer por encima.\n     *\/\n    overflow: visible !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n}\n\n\n\/* =====================================================\n   SHORTCODE\n===================================================== *\/\n\n.contenedor-hover .elementor-widget-shortcode {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    z-index: 5 !important;\n\n    overflow: hidden !important;\n\n    pointer-events: none !important;\n}\n\n.contenedor-hover\n.elementor-widget-shortcode\n> .elementor-widget-container,\n\n.contenedor-hover\n.elementor-shortcode {\n\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    margin: 0 !important;\n    padding: 0 !important;\n\n    overflow: hidden !important;\n}\n\n\n\/* =====================================================\n   CAPA YOUTUBE\n===================================================== *\/\n\n.lz-hover-video {\n    position: absolute !important;\n\n    inset: 0 !important;\n\n    width: 100% !important;\n    height: 100% !important;\n\n    overflow: hidden !important;\n\n    opacity: 0;\n    visibility: hidden;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s linear 0.15s;\n}\n\n\n\/* Mostrar v\u00eddeo *\/\n.contenedor-hover.lz-video-activo\n.lz-hover-video {\n\n    opacity: 1;\n    visibility: visible;\n\n    transition:\n        opacity 0.15s ease,\n        visibility 0s;\n}\n\n\n\/* =====================================================\n   IFRAME\n===================================================== *\/\n\n.lz-hover-video iframe {\n    position: absolute !important;\n\n    top: 50% !important;\n    left: 50% !important;\n\n    \/*\n     * Overscan como background video.\n     *\n     * Recorta t\u00edtulo\/avatar\/logo situados\n     * en las zonas exteriores.\n     *\/\n    width: 135% !important;\n    height: 135% !important;\n\n    min-width: 135% !important;\n    min-height: 135% !important;\n\n    max-width: none !important;\n\n    transform:\n        translate(-50%, -50%) !important;\n\n    border: 0 !important;\n    border-radius: 0 !important;\n\n    \/*\n     * YouTube jam\u00e1s recibe hover\/click.\n     *\/\n    pointer-events: none !important;\n}\n\n\n\/* =====================================================\n   INFO ARRIBA\n===================================================== *\/\n\n.contenedor-hover .contenedor-hover-info {\n\n    position: absolute !important;\n\n    left: 0 !important;\n\n    \/*\n     * Arriba de la imagen\/v\u00eddeo.\n     *\/\n    bottom: calc(100% + 12px) !important;\n\n    width: 100% !important;\n\n    z-index: 50 !important;\n\n    opacity: 0 !important;\n    visibility: hidden !important;\n\n    \/*\n     * Entra desde abajo.\n     *\/\n    transform: translateY(18px) !important;\n\n    pointer-events: none !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s linear 0.5s !important;\n}\n\n\n\/* Info visible *\/\n.contenedor-hover:hover\n.contenedor-hover-info {\n\n    opacity: 1 !important;\n    visibility: visible !important;\n\n    transform: translateY(0) !important;\n\n    pointer-events: auto !important;\n\n    transition:\n        opacity 0.3s ease,\n        transform 0.5s cubic-bezier(0.22, 1, 0.36, 1),\n        visibility 0s !important;\n}\n\n\n\/* =====================================================\n   SIN REDONDEOS\n===================================================== *\/\n\n.contenedor-hover,\n.lz-hover-video,\n.lz-hover-video iframe {\n\n    border-radius: 0 !important;\n}\n\n\n\/* V\u00eddeo alojado (MP4) en el hover *\/\n.lz-hover-video video {\n    position: absolute !important;\n    inset: 0 !important;\n    width: 100% !important;\n    height: 100% !important;\n    object-fit: cover !important;\n    border: 0 !important;\n    border-radius: 0 !important;\n    pointer-events: none !important;\n}\n<\/style>\n\n\n<script>\n\/*\n * HOVER V\u00cdDEO YOUTUBE (Featured Works)\n * - El iframe se crea en el primer hover y se reutiliza (pausa\/play), no se recarga.\n * - Solo se muestra cuando YouTube confirma que est\u00e1 REPRODUCIENDO:\n *   nunca se ve spinner, bot\u00f3n play ni t\u00edtulo.\n * - Desactivado en dispositivos sin hover (t\u00e1ctil).\n *\/\n(() => {\n  'use strict';\n  if (window.__lzYoutubeHoverV2) return;\n  window.__lzYoutubeHoverV2 = true;\n\n  if (!window.matchMedia('(hover: hover) and (pointer: fine)').matches) return;\n\n  ['https:\/\/www.youtube-nocookie.com', 'https:\/\/www.youtube.com', 'https:\/\/i.ytimg.com'].forEach((h) => {\n    const l = document.createElement('link');\n    l.rel = 'preconnect'; l.href = h; l.crossOrigin = '';\n    document.head.appendChild(l);\n  });\n\n  const players = new Map(); \/\/ contentWindow -> estado de la tarjeta\n  let uid = 0;\n\n  window.addEventListener('message', (e) => {\n    if (!\/^https:\\\/\\\/(www\\.)?youtube(-nocookie)?\\.com$\/.test(e.origin)) return;\n    const p = players.get(e.source);\n    if (!p) return;\n    let d = e.data;\n    if (typeof d === 'string') { try { d = JSON.parse(d); } catch (err) { return; } }\n    if (!d) return;\n    let state = null;\n    if (d.event === 'onStateChange') state = d.info;\n    if (d.event === 'infoDelivery' && d.info && typeof d.info.playerState === 'number') state = d.info.playerState;\n    if (state === null) return;\n    p.playing = state === 1;\n    if (p.playing && p.dentro) p.mostrar();\n  });\n\n  function preparar(card) {\n    if (card.dataset.lzV2Ready === '1') return;\n    const capa = card.querySelector('.lz-hover-video');\n    if (capa && capa.dataset.videoSrc) { prepararMp4(card, capa); return; }\n    if (!capa || !capa.dataset.youtubeId) return;\n    card.dataset.lzV2Ready = '1';\n\n    const videoId = capa.dataset.youtubeId;\n    const p = { dentro: false, playing: false, iframe: null, listo: false, timer: null };\n\n    function cmd(func, args) {\n      if (!p.iframe || !p.iframe.contentWindow) return;\n      p.iframe.contentWindow.postMessage(JSON.stringify({ event: 'command', func: func, args: args || [], id: p.id, channel: 'widget' }), '*');\n    }\n\n    p.mostrar = () => {\n      clearTimeout(p.timer);\n      \/\/ margen m\u00ednimo para que YouTube retire cualquier overlay de arranque\n      p.timer = setTimeout(() => { if (p.dentro && p.playing) card.classList.add('lz-video-activo'); }, 200);\n    };\n\n    function crear() {\n      p.id = 'lzyt' + (++uid);\n      const f = document.createElement('iframe');\n      f.src = 'https:\/\/www.youtube-nocookie.com\/embed\/' + videoId +\n        '?autoplay=1&mute=1&controls=0&disablekb=1&fs=0&playsinline=1&rel=0&iv_load_policy=3&modestbranding=1' +\n        '&loop=1&playlist=' + videoId + '&enablejsapi=1&origin=' + encodeURIComponent(location.origin);\n      f.setAttribute('allow', 'autoplay; encrypted-media');\n      f.setAttribute('tabindex', '-1');\n      f.setAttribute('aria-hidden', 'true');\n      f.setAttribute('title', '');\n      f.addEventListener('load', () => {\n        players.set(f.contentWindow, p);\n        p.listo = true;\n        f.contentWindow.postMessage(JSON.stringify({ event: 'listening', id: p.id, channel: 'widget' }), '*');\n        cmd('addEventListener', ['onStateChange']);\n        cmd('mute');\n        if (p.dentro) cmd('playVideo'); else cmd('pauseVideo');\n      }, { once: true });\n      p.iframe = f;\n      capa.appendChild(f);\n    }\n\n    card.addEventListener('mouseenter', () => {\n      p.dentro = true;\n      if (!p.iframe) { crear(); return; }\n      if (p.listo) { cmd('seekTo', [0, true]); cmd('playVideo'); }\n      if (p.playing) p.mostrar();\n    });\n\n    card.addEventListener('mouseleave', () => {\n      p.dentro = false;\n      clearTimeout(p.timer);\n      card.classList.remove('lz-video-activo');\n      p.playing = false;\n      cmd('pauseVideo');\n    });\n  }\n\n  \/* V\u00eddeo alojado en la web (MP4\/WebM): mismo comportamiento que YouTube *\/\n  function prepararMp4(card, capa) {\n    card.dataset.lzV2Ready = '1';\n    let v = null, dentro = false;\n    function crear() {\n      v = document.createElement('video');\n      v.src = capa.dataset.videoSrc;\n      v.muted = true; v.loop = true; v.playsInline = true;\n      v.setAttribute('muted', ''); v.setAttribute('playsinline', '');\n      v.preload = 'metadata';\n      v.setAttribute('aria-hidden', 'true');\n      v.addEventListener('playing', () => { if (dentro) card.classList.add('lz-video-activo'); });\n      capa.appendChild(v);\n    }\n    card.addEventListener('mouseenter', () => {\n      dentro = true;\n      if (!v) crear();\n      const p = v.play(); if (p && p.catch) p.catch(() => {});\n    });\n    card.addEventListener('mouseleave', () => {\n      dentro = false;\n      card.classList.remove('lz-video-activo');\n      if (v) { v.pause(); try { v.currentTime = 0; } catch (e) {} }\n    });\n  }\n\n  function iniciar() { document.querySelectorAll('.contenedor-hover').forEach(preparar); }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', iniciar, { once: true });\n  else iniciar();\n\n  new MutationObserver(() => {\n    document.querySelectorAll('.contenedor-hover:not([data-lz-v2-ready=\"1\"])').forEach(preparar);\n  }).observe(document.body, { childList: true, subtree: true });\n})();\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0cdcda0 elementor-widget elementor-widget-shortcode\" data-id=\"0cdcda0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">\n        <div\n            class=\"lz-hover-video\"\n            data-youtube-id=\"JA3QAgkyW7M\"\n            aria-hidden=\"true\">\n        <\/div>\n        <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>[ Creative ] Creative Strategy, concept and art direction to make your brand look its best. All \u00b7 Film \u00b7 Photo \u00b7 Creative<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-1191","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/pages\/1191","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/comments?post=1191"}],"version-history":[{"count":6,"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/pages\/1191\/revisions"}],"predecessor-version":[{"id":1436,"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/pages\/1191\/revisions\/1436"}],"wp:attachment":[{"href":"https:\/\/bluelake.milanoproduct.com\/es\/wp-json\/wp\/v2\/media?parent=1191"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}