.gpv{display:flex;gap:var(--gpv-col-gap,12px);width:100%;align-items:stretch;box-sizing:border-box}
.gpv *{box-sizing:border-box}
.gpv button{font:inherit}

.gpv-thumbs{flex:0 0 var(--gpv-thumb);width:var(--gpv-thumb);position:relative;overflow:hidden;border-radius:var(--gpv-r-thumb)}
.gpv-track{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-snap-type:y mandatory;scrollbar-width:none;display:flex;flex-direction:column;gap:var(--gpv-gap);-webkit-overflow-scrolling:touch}
.gpv-track::-webkit-scrollbar{display:none}
.gpv-thumb{position:relative;flex:0 0 calc((100% - var(--gpv-gap) * (var(--gpv-vis,4) - 1)) / var(--gpv-vis,4));width:100%;aspect-ratio:auto;padding:0;margin:0;border:var(--gpv-bw,0) solid transparent;border-radius:var(--gpv-r-thumb);overflow:hidden;background:var(--gpv-bg);cursor:pointer;scroll-snap-align:start;opacity:.7;transition:opacity .2s,border-color .2s}
.gpv-thumb img{width:100%;height:100%;object-fit:cover;display:block;margin:0;border-radius:0}
.gpv-thumb.is-active,.gpv-thumb:hover{opacity:1}
.gpv-thumb.is-active{border-color:var(--gpv-active)}
.gpv-badge{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.35)}

.gpv-arrow{position:absolute;z-index:2;left:0;right:0;height:24px;padding:0;margin:0;border:0;border-radius:0;background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s}
.gpv-arrow svg{width:16px;height:16px}
.gpv-prev{top:0}.gpv-next{bottom:0}.gpv-next svg{transform:rotate(180deg)}
.gpv-arrow.is-off{opacity:0;pointer-events:none}

.gpv-stage{position:relative;flex:1;min-width:0;aspect-ratio:var(--gpv-ratio);border-radius:var(--gpv-r-main);overflow:hidden;background:var(--gpv-bg);touch-action:pan-y;user-select:none}
.gpv-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#000}
.gpv-main-img{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--gpv-fit);display:block;margin:0;transition:transform .15s ease-out;cursor:zoom-in;-webkit-user-drag:none}
.gpv-video[hidden],.gpv-main-img[hidden],.gpv-zoom[hidden],.gpv-controls[hidden]{display:none}

.gpv-zoom,.gpv-controls button{width:38px;height:38px;padding:0;margin:0;border:0;border-radius:50%;background:var(--gpv-btn-bg);color:var(--gpv-btn-color);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:.9;transition:opacity .2s}
.gpv-zoom:hover,.gpv-controls button:hover{opacity:1}
.gpv-zoom{position:absolute;top:12px;right:12px;z-index:3}
.gpv-controls{position:absolute;right:12px;bottom:12px;display:flex;gap:8px;z-index:3}
.gpv-mute.is-on{background:var(--gpv-btn-color);color:var(--gpv-btn-bg)}

.gpv--pos-bottom{flex-direction:column}
.gpv--pos-bottom .gpv-thumbs{flex:0 0 auto;width:100%;height:var(--gpv-thumb);order:2}
.gpv--pos-bottom .gpv-stage{order:1;flex:none;width:100%}
.gpv--pos-bottom .gpv-track{flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}
.gpv--pos-bottom .gpv-thumb{width:auto;height:100%}
.gpv--pos-bottom .gpv-arrow{top:0;bottom:0;height:auto;width:24px}
.gpv--pos-bottom .gpv-prev{right:auto}.gpv--pos-bottom .gpv-next{left:auto;right:0}
.gpv--pos-bottom .gpv-arrow svg{transform:rotate(-90deg)}
.gpv--pos-bottom .gpv-next svg{transform:rotate(90deg)}

@media (max-width:768px){
	.gpv{flex-direction:column}
	.gpv-thumbs{flex:0 0 auto;width:100%;height:calc(var(--gpv-thumb) * .8);order:2}
	.gpv-stage{order:1;flex:none;width:100%}
	.gpv-track{flex-direction:row;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}
	.gpv-thumb{width:auto;height:100%}
}

.gpv-lb{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center}
.gpv-lb img{max-width:92vw;max-height:90vh;object-fit:contain;border-radius:6px}
.gpv-lb button{position:absolute;border:0;background:rgba(255,255,255,.15);color:#fff;width:46px;height:46px;border-radius:50%;font-size:30px;line-height:1;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
.gpv-lb button:hover{background:rgba(255,255,255,.3)}
.gpv-lb-close{top:16px;right:16px}.gpv-lb-prev{left:16px}.gpv-lb-next{right:16px}

/* Video embebido (YouTube / Vimeo) */
.gpv-embed{position:absolute;inset:0;overflow:hidden;background:#000 center/cover no-repeat}
.gpv-embed iframe{position:absolute;top:50%;left:50%;height:100%;aspect-ratio:16/9;min-width:100%;transform:translate(-50%,-50%);border:0;pointer-events:none}

/* Evita que el tema o Elementor encojan la galería */
.elementor-widget-gpv_gallery{--container-widget-width:100%;--container-widget-flex-grow:1;width:100%;max-width:100%}
.elementor-widget-gpv_gallery .gpv,.gpv{float:none;width:100%;max-width:100%}
.woocommerce div.product div.images.gpv{float:left;width:48%}
@media (max-width:768px){.woocommerce div.product div.images.gpv{float:none;width:100%}}

/* Anula los estilos de botón del tema (rosado, bordes y relleno en hover/foco) */
.gpv .gpv-thumb,.gpv .gpv-thumb:hover,.gpv .gpv-thumb:focus,.gpv .gpv-thumb:active{padding:0!important;margin:0!important;border:var(--gpv-bw,0) solid transparent!important;background:var(--gpv-bg)!important;color:#fff!important;box-shadow:none!important;outline:none!important;min-height:0!important;line-height:0!important;border-radius:var(--gpv-r-thumb)!important;text-transform:none!important}
.gpv .gpv-thumb.is-active,.gpv .gpv-thumb.is-active:hover,.gpv .gpv-thumb.is-active:focus{border-color:var(--gpv-active)!important}
.gpv .gpv-thumb:focus-visible{outline:2px solid var(--gpv-active)!important;outline-offset:-2px}
.gpv .gpv-thumb img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.gpv .gpv-arrow,.gpv .gpv-arrow:hover,.gpv .gpv-arrow:focus{background:rgba(0,0,0,.5)!important;color:#fff!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;outline:none!important;min-height:0!important;border-radius:0!important}
.gpv .gpv-zoom,.gpv .gpv-zoom:hover,.gpv .gpv-zoom:focus,.gpv .gpv-controls button,.gpv .gpv-controls button:hover,.gpv .gpv-controls button:focus{background:var(--gpv-btn-bg)!important;color:var(--gpv-btn-color)!important;border:0!important;padding:0!important;margin:0!important;box-shadow:none!important;outline:none!important;min-height:0!important;border-radius:50%!important}
.gpv .gpv-controls .gpv-mute.is-on{background:var(--gpv-btn-color)!important;color:var(--gpv-btn-bg)!important}
.gpv-lb button,.gpv-lb button:hover,.gpv-lb button:focus{background:rgba(255,255,255,.18)!important;color:#fff!important;border:0!important;box-shadow:none!important;outline:none!important}
.gpv .gpv-thumb video{display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}

/* Celular: flechas horizontales en las miniaturas */
@media (max-width:768px){
	.gpv .gpv-arrow{display:flex;top:0;bottom:0;height:auto;width:26px}
	.gpv .gpv-prev{left:0;right:auto}
	.gpv .gpv-next{right:0;left:auto}
	.gpv .gpv-prev svg{transform:rotate(-90deg)}
	.gpv .gpv-next svg{transform:rotate(90deg)}
}
