/* ===== Vega Plaza · efectos y movimiento (sobre widgets nativos de Elementor) ===== */
@keyframes vp-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes vp-rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
@keyframes vp-float{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-14px) rotate(var(--r,0deg))}}
@keyframes vp-shine{0%,70%{left:-60%}100%{left:130%}}
@keyframes vp-spin{to{transform:rotate(360deg)}}
@keyframes vp-pulse{0%{box-shadow:0 0 0 0 rgba(95,211,154,.7)}100%{box-shadow:0 0 0 12px rgba(95,211,154,0)}}
@keyframes vp-scan{0%,100%{top:8%}50%{top:88%}}
@keyframes vp-pop{0%,55%{opacity:0;transform:translateY(20px) scale(.6)}65%{opacity:1;transform:translateY(0) scale(1.15)}75%,100%{opacity:1;transform:none}}
@keyframes vp-grow{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}

/* Cinta superior (solo portada) */
.vp-ticker{background:#002B56;color:#fff;overflow:hidden;height:40px;display:flex;align-items:center}
body:not(.home) .vp-ticker{display:none!important}
.vp-ticker .elementor-widget-container,.vp-ticker p{margin:0}
.vp-ticker-src{display:none}
.vp-track{display:flex;width:max-content;animation:vp-marquee 28s linear infinite}
.vp-track span.vp-ti{display:flex;align-items:center;gap:14px;padding-right:40px;white-space:nowrap;font-size:14px;font-weight:600;color:#fff}
.vp-track span.vp-ti::before{content:"";width:8px;height:8px;border-radius:4px;background:#FF009C;display:inline-block}

/* Banda rosa inclinada */
.vp-band{background:#FF009C;transform:rotate(-2deg);margin:10px -40px!important;padding:22px 0!important;overflow:hidden;width:calc(100% + 80px)!important;max-width:none!important}
.vp-band .elementor-widget-container{margin:0}
.vp-band .vp-track{animation-duration:18s}
.vp-band .vp-track span.vp-ti{gap:32px;padding-right:32px;font-family:"Bricolage Grotesque",Georgia,serif;font-weight:800;font-size:clamp(36px,6.5vw,54px);letter-spacing:-1px;color:#fff}
.vp-band .vp-track span.vp-ti::before{display:none}
.vp-band .vp-track span.vp-ti::after{content:"";width:34px;height:34px;flex:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Cpath d='M2 40V17C2 7 10 2 20 2s18 5 18 15v23z' fill='%23002B56'/%3E%3C/svg%3E")}
.vp-band-wrap{overflow:hidden}

/* Palabra que rota en el titular */
.vp-rot{display:inline-block;height:1.05em;overflow:hidden;vertical-align:bottom}
.vp-rot-list{display:flex;flex-direction:column;transition:transform .7s cubic-bezier(.7,0,.2,1)}
.vp-rot-list span{height:1.05em;line-height:1.05em;color:#FF009C;font-style:italic;white-space:nowrap}

/* Estado abierto / cerrado */
.vp-status{display:inline-flex;align-items:center;gap:10px;background:#F3F5F9;padding:10px 16px;border-radius:24px;font-weight:600;font-size:14px;color:#141B2B}
.vp-status i{width:10px;height:10px;border-radius:5px;background:#5FD39A;display:inline-block;animation:vp-pulse 1.6s infinite}
.vp-status.closed i{background:#FF009C}

/* Entrada al cargar (hero) y aparición al hacer scroll */
.vp-rise-seq > .e-con-inner > *,.vp-rise-seq > .elementor-element{animation:vp-rise .8s cubic-bezier(.2,.8,.2,1) both}
.vp-rise-seq > .elementor-element:nth-child(2){animation-delay:.15s}.vp-rise-seq > .elementor-element:nth-child(3){animation-delay:.3s}
.vp-rise-seq > .elementor-element:nth-child(4){animation-delay:.45s}.vp-rise-seq > .elementor-element:nth-child(5){animation-delay:.6s}
.vp-reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.vp-reveal.vp-in{opacity:1;transform:none}

/* Botones: crecen al pasar el ratón; los rosas llevan brillo */
.elementor-widget-button .elementor-button{transition:transform .2s,background-color .2s!important}
.elementor-widget-button .elementor-button:hover{transform:scale(1.04)}
.vp-shine .elementor-button{position:relative;overflow:hidden}
.vp-shine .elementor-button::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:rgba(255,255,255,.35);transform:skewX(-20deg);animation:vp-shine 3.5s ease-in-out infinite;pointer-events:none}

/* Tarjetas que se levantan */
.vp-card{transition:transform .35s cubic-bezier(.2,.8,.2,1)!important}
.vp-card:hover{transform:translateY(-8px) rotate(-1deg)}

/* Collage del hero: fotos que flotan y sello que gira */
.vp-collage{position:relative!important;aspect-ratio:1/1;max-width:600px;margin:0 auto;width:100%}
.e-con.vp-collage::before,.vp-collage::before{content:"";position:absolute;right:-6%;left:auto;top:7%;bottom:auto;width:77%;height:87%;z-index:0;border-radius:50% 50% 0 0/44% 44% 0 0;background:#FFE5F3;animation:vp-grow 1.2s cubic-bezier(.2,.8,.2,1) both}
.vp-collage > .elementor-element{position:absolute!important;margin:0!important;z-index:1}
.vp-collage .vp-c1{left:2%;top:10%;width:42%!important;height:57%;--r:-4deg}
.vp-collage .vp-c2{right:3%;top:0;width:38%!important;height:50%;--r:5deg;animation-delay:-2s!important;animation-duration:7s!important}
.vp-collage .vp-c3{right:12%;bottom:2%;width:45%!important;height:42%;--r:-2deg;animation-delay:-4s!important;animation-duration:8s!important}
.vp-collage .vp-c1 img,.vp-collage .vp-c2 img,.vp-collage .vp-c3 img{width:100%!important;height:100%!important;object-fit:cover;border:6px solid #fff;box-sizing:border-box}
.vp-collage .vp-c1 img{border-radius:50% 50% 24px 24px/37% 37% 24px 24px!important}
.vp-collage .vp-c2 img{border-radius:50% 50% 24px 24px/38% 38% 24px 24px!important}
.vp-collage .vp-c3 img{border-radius:50% 50% 24px 24px/54% 54% 24px 24px!important}
.vp-collage .vp-c1 .elementor-widget-container,.vp-collage .vp-c2 .elementor-widget-container,.vp-collage .vp-c3 .elementor-widget-container{height:100%}
.vp-collage .vp-badge-spin{left:32%;bottom:5%;width:23%!important;z-index:3}
.vp-float{animation:vp-float 6s ease-in-out infinite}
.vp-spin{animation:vp-spin 14s linear infinite}

/* Tres mundos que se expanden */
.vp-worlds{min-height:520px}
.vp-world{position:relative;overflow:hidden;border-radius:200px 200px 28px 28px!important;justify-content:flex-end!important;transition:flex-grow .6s cubic-bezier(.2,.8,.2,1);min-height:420px;flex:1 1 260px!important}
.vp-world .vp-world-img{position:absolute!important;inset:0;margin:0!important;width:100%!important;height:100%}
.vp-world .vp-world-img .elementor-widget-container,.vp-world .vp-world-img img{width:100%!important;height:100%!important;object-fit:cover;border-radius:0!important;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.vp-world:hover .vp-world-img img{transform:scale(1.08)}
.vp-world > .e-con,.vp-world > .e-con-inner > .e-con{position:relative;z-index:1}
@media (min-width:1025px){.vp-world:hover{flex-grow:2.2!important}}
@media (max-width:1024px){.vp-worlds{min-height:0}.vp-world{flex:1 1 30%!important;min-height:400px}}
@media (max-width:767px){.vp-world{flex:none!important;width:100%!important;min-height:360px;border-radius:160px 160px 28px 28px!important}}
.vp-world .elementor-widget-container{color:inherit}
/* Club: círculo decorativo */
.e-con.vp-club-sec{position:relative;overflow:hidden}
.e-con.vp-club-sec::before{content:"";position:absolute;left:-160px;bottom:-220px;top:auto;right:auto;width:520px;height:520px;border-radius:50%;background:#0D3F73;z-index:0}
.vp-club-sec > .e-con-inner{position:relative;z-index:1}

/* Móvil del Club Vega */
.vp-phone-wrap{display:flex;justify-content:center}
.vp-phone{position:relative;width:320px;height:620px;background:#fff;border-radius:48px;border:10px solid #001A35;padding:26px 22px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px;color:#141B2B;transform:rotate(3deg);font-family:"Instrument Sans",system-ui,sans-serif}
.vp-phone .vp-pts{background:#002B56;color:#fff;border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:6px;position:relative}
.vp-phone .vp-pts b{font-family:"Bricolage Grotesque",Georgia,serif;font-size:46px;font-weight:800;line-height:1}
.vp-phone .vp-bar{height:8px;background:#0D3F73;border-radius:4px;overflow:hidden}.vp-phone .vp-bar i{display:block;height:8px;background:#FF6BC1;border-radius:4px;width:62%;transition:width 1s}
.vp-phone .vp-plus{position:absolute;right:18px;top:18px;background:#FF009C;color:#fff;font-weight:800;font-size:18px;padding:6px 12px;border-radius:14px;animation:vp-pop 4s infinite}
.vp-phone .vp-scan-box{position:relative;flex-grow:1;background:#F3F5F9;border-radius:20px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.vp-phone .vp-receipt{width:150px;background:#fff;border-radius:6px;padding:14px;display:flex;flex-direction:column;gap:7px;font-family:"Courier New",monospace;font-size:11px;color:#141B2B}
.vp-phone .vp-line{position:absolute;left:8%;right:8%;height:3px;background:#FF009C;box-shadow:0 0 18px 4px rgba(255,0,156,.6);animation:vp-scan 2.4s ease-in-out infinite}
.vp-phone .vp-up{background:#D10080;color:#fff;font-weight:700;text-align:center;padding:16px;border-radius:22px}
@media (max-width:767px){.vp-phone{transform:rotate(3deg) scale(.86);margin:-40px 0}}

/* Filtros de tiendas / restaurantes */
.vp-filter{display:flex;flex-direction:column;gap:22px}
.vp-filter-top{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.vp-filter label{display:flex;flex-direction:column;gap:8px;font-weight:700;font-size:14px;color:#002B56}
.vp-filter input[type=search]{width:min(420px,100%);height:52px;border-radius:26px;border:1px solid #B9C3D1;padding:0 20px;font:inherit;font-size:16px;box-sizing:border-box}
.vp-filter input[type=search]:focus{outline:2px solid #FF009C;outline-offset:1px}
.vp-filter .vp-count-txt{font-size:15px;color:#4A5568}
.vp-pills-f{display:flex;flex-wrap:wrap;gap:10px}
.vp-pills-f button{border:1px solid #B9C3D1;background:#fff;color:#002B56;font:inherit;font-weight:700;font-size:15px;padding:12px 20px;border-radius:24px;cursor:pointer;min-height:44px;line-height:1.1}
.vp-pills-f button[aria-pressed=true]{background:#002B56;border-color:#002B56;color:#fff}
.vp-pills-f button:hover{border-color:#002B56}
.vp-item.vp-hide{display:none!important}

/* Cabecera (shortcode) */
.vp-hdr{position:relative;background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #E1E6EE;font-family:"Instrument Sans","Segoe UI",system-ui,sans-serif}
.vp-header-wrap,.vp-header-wrap > .elementor-element{--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;--gap:0px;--widgets-spacing:0px}
.vp-header-wrap .elementor-widget{margin:0!important}
.home.ehf-header #masthead{top:-40px}
.admin-bar.home.ehf-header #masthead{top:-8px}
@media (max-width:782px){.admin-bar.home.ehf-header #masthead{top:6px}}
.vp-hdr-in{max-width:1320px;margin:0 auto;padding:14px 28px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.vp-logo{text-decoration:none;display:flex;align-items:center;gap:10px}
.vp-logo svg{width:46px;height:46px;flex:none}
.vp-logo b{display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:800;font-size:28px;line-height:1;letter-spacing:.3px;color:#FF009C}
.vp-logo small{display:block;margin-top:3px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:700;font-size:10.6px;letter-spacing:.5px;color:#FF009C}
.vp-nav{display:flex;gap:6px;flex-wrap:wrap;font-weight:600;font-size:15px}
.vp-nav a{text-decoration:none;padding:10px 12px;border-radius:20px;color:#002B56;transition:background .2s,color .2s}
.vp-nav a:hover{background:#FFE5F3;color:#A3005F}
.vp-nav a.on{background:#002B56;color:#fff}
.vp-hdr-r{display:flex;gap:10px;align-items:center}
.vp-mbtn{display:none;width:48px;height:48px;border-radius:24px;border:1px solid #B9C3D1;background:#fff;align-items:center;justify-content:center;cursor:pointer;padding:0}
.vp-club{position:relative;overflow:hidden;text-decoration:none;background:#D10080;color:#fff!important;font-weight:700;padding:14px 22px;border-radius:28px;font-size:15px;transition:transform .2s}
.vp-club:hover{transform:scale(1.04)}
.vp-club::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:rgba(255,255,255,.35);transform:skewX(-20deg);animation:vp-shine 3.5s ease-in-out infinite}
@media (max-width:960px){.vp-nav{display:none}.vp-mbtn{display:inline-flex}}
@media (max-width:640px){.vp-hdr-in{padding:12px 16px;gap:10px}.vp-club{padding:12px 14px;font-size:14px}.vp-logo b{font-size:21px}.vp-logo small{display:none}.vp-logo svg{width:36px;height:36px}}
@media (max-width:380px){.vp-logo b{font-size:17px}.vp-logo svg{width:30px;height:30px}}
.vp-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:12px;box-sizing:border-box}
.vp-modal[hidden]{display:none}
.vp-modal-bg{position:absolute;inset:0;width:100%;height:100%;border:none;padding:0;margin:0;background:rgba(0,20,41,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer}
.vp-sheet{position:relative;width:100%;max-width:440px;max-height:calc(100dvh - 24px);overflow-y:auto;background:#fff;border-radius:28px;box-shadow:0 24px 60px rgba(0,20,41,.35);animation:vp-rise .3s cubic-bezier(.2,.8,.2,1) both;font-family:"Instrument Sans",system-ui,sans-serif}
.vp-sheet-h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 14px 6px 24px}
.vp-sheet-h span{font-family:"Bricolage Grotesque",Georgia,serif;font-weight:800;font-size:22px;color:#002B56}
.vp-sheet-h button{width:48px;height:48px;border-radius:24px;border:none;background:#F3F5F9;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.vp-sheet nav{display:flex;flex-direction:column;gap:2px;padding:4px 12px}
.vp-sheet nav a{display:flex;align-items:center;justify-content:space-between;gap:12px;text-decoration:none;padding:13px 14px;border-radius:18px;font-family:"Bricolage Grotesque",Georgia,serif;font-weight:700;font-size:23px;line-height:1.1;color:#002B56}
.vp-sheet nav a.on{color:#A3005F;background:#FFE5F3}
.vp-sheet nav a::after{content:"›";font-size:26px;line-height:1}
.vp-sheet-sec{display:flex;flex-wrap:wrap;gap:8px;padding:12px 24px 4px}
.vp-sheet-sec a{text-decoration:none;font-weight:600;font-size:15px;color:#002B56;background:#F3F5F9;padding:11px 16px;border-radius:20px}
.vp-sheet-cta{display:flex;flex-direction:column;gap:10px;padding:16px 16px 18px}
.vp-sheet-cta a{text-decoration:none;text-align:center;color:#fff;font-weight:700;font-size:16px;padding:16px;border-radius:28px}
.vp-sheet-cta small{text-align:center;font-size:13px;color:#4A5568}

/* En el editor de Elementor no se esconde nada */
.elementor-editor-active .vp-reveal{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.vp-track,.vp-float,.vp-spin,.vp-reveal,.vp-rise-seq > *,.vp-club::after,.vp-shine .elementor-button::after,.vp-phone *{animation:none!important;transition:none!important}.vp-reveal{opacity:1;transform:none}}

/* Cabecera en móviles estrechos: nada se parte en dos líneas */
.vp-logo{min-width:0;flex:0 1 auto}
.vp-logo b,.vp-logo small{white-space:nowrap}
.vp-hdr-r{flex:none}
.vp-club{white-space:nowrap;flex:none;line-height:1.1}
@media (max-width:420px){.vp-hdr-in{gap:8px;padding:12px 14px}.vp-logo{gap:8px}.vp-logo b{font-size:19px}.vp-logo svg{width:32px;height:32px}.vp-mbtn{width:44px;height:44px}.vp-club{padding:12px 14px;font-size:14px}}
@media (max-width:360px){.vp-logo b{font-size:16px}.vp-logo svg{width:28px;height:28px}.vp-club{padding:11px 12px;font-size:13px}.vp-hdr-r{gap:6px}}

/* Estado: dos líneas (tiendas + resto) */
.vp-status{align-items:flex-start;border-radius:20px;padding:10px 16px 10px 14px}
.vp-status i{margin-top:4px;flex:none}
.vp-status span{display:flex;flex-direction:column;gap:2px}
.vp-status b{font-weight:600;font-size:14px;color:#141B2B}
.vp-status small{font-weight:500;font-size:13px;color:#4A5568;line-height:1.35}
.vp-status small a{color:#002B56;font-weight:700;text-decoration:underline;text-underline-offset:2px}
.vp-status.late i{background:#FFB020;animation:none}
