/* VanGal WooCommerce product system */
.vg-products-shell{position:relative;width:100%;--vg-products-fg:#111;--vg-products-muted:#707070}
.vg-products-grid{--vg-cols:4;display:grid;grid-template-columns:repeat(var(--vg-cols),minmax(0,1fr));column-gap:24px;row-gap:36px}
.vg-product-card{--vg-product-accent:#111;--vg-media-bg:#f4f4f2;--vg-media-bg-hover:var(--vg-media-bg);--vg-media-overlay:transparent;--vg-media-overlay-hover:transparent;--vg-image-hover-scale:1.04;--vg-card-lift:0px;--vg-transition:320ms;--vg-shape-color:#ffb000;--vg-shape-size:62%;--vg-shape-x:50%;--vg-shape-y:50%;--vg-shape-rotation:0deg;--vg-shape-opacity:1;position:relative;min-width:0;color:var(--vg-products-fg);transition:transform var(--vg-transition) cubic-bezier(.2,.7,.2,1),background-color var(--vg-transition),border-color var(--vg-transition),box-shadow var(--vg-transition);transform:translateY(0);isolation:isolate}
.vg-product-card:hover{transform:translateY(calc(var(--vg-card-lift) * -1))}
.vg-product-media{--vg-media-ratio:4/5;--vg-image-fit:cover;display:block;position:relative;overflow:hidden;aspect-ratio:var(--vg-media-ratio);background:var(--vg-media-bg);color:inherit;text-decoration:none;transition:background-color var(--vg-transition),border-radius var(--vg-transition)}
.vg-product-card:hover .vg-product-media{background:var(--vg-media-bg-hover)}
.vg-product-media-stage{position:absolute;inset:0;display:block;overflow:hidden}
.vg-product-gallery-stack{position:absolute;inset:0;z-index:2;display:block}
.vg-product-image{position:absolute;inset:0;width:100%!important;height:100%!important;max-width:none!important;display:block;object-fit:var(--vg-image-fit);opacity:0;transform:scale(1);transition:opacity 260ms ease,transform var(--vg-transition) cubic-bezier(.2,.7,.2,1);will-change:opacity,transform}
.vg-product-image.is-active{opacity:1}
.vg-hover-zoom:hover .vg-product-image.is-active,.vg-hover-second:hover .vg-product-image.is-active,.vg-hover-gallery-cycle:hover .vg-product-image.is-active,.vg-hover-gallery-cursor:hover .vg-product-image.is-active{transform:scale(var(--vg-image-hover-scale))}
.vg-product-hover-video{position:absolute;inset:0;z-index:3;width:100%;height:100%;object-fit:var(--vg-image-fit);opacity:0;transition:opacity 240ms ease;background:var(--vg-media-bg)}
.vg-hover-video:hover .vg-product-hover-video{opacity:1}
.vg-product-media-overlay{position:absolute;inset:0;z-index:4;background:var(--vg-media-overlay);pointer-events:none;transition:background var(--vg-transition)}
.vg-product-card:hover .vg-product-media-overlay{background:var(--vg-media-overlay-hover)}
.vg-product-shape{display:none;position:absolute;z-index:1;width:var(--vg-shape-size);aspect-ratio:1;left:var(--vg-shape-x);top:var(--vg-shape-y);transform:translate(-50%,-50%) rotate(var(--vg-shape-rotation));background:var(--vg-shape-color);opacity:var(--vg-shape-opacity);pointer-events:none;transition:transform var(--vg-transition),opacity var(--vg-transition)}
.vg-product-card.vg-has-shape .vg-product-shape,.vg-preset-shape-pop .vg-product-shape{display:block}
.vg-shape-circle .vg-product-shape{border-radius:50%}
.vg-shape-blob .vg-product-shape{border-radius:63% 37% 54% 46% / 41% 58% 42% 59%}
.vg-shape-arch .vg-product-shape{border-radius:50% 50% 8% 8% / 58% 58% 8% 8%}
.vg-shape-diamond .vg-product-shape{border-radius:10%;transform:translate(-50%,-50%) rotate(calc(45deg + var(--vg-shape-rotation)))}
.vg-shape-square .vg-product-shape{border-radius:22%}
.vg-product-card:hover .vg-product-shape{transform:translate(-50%,-50%) rotate(var(--vg-shape-rotation)) scale(1.05)}
.vg-shape-diamond:hover .vg-product-shape{transform:translate(-50%,-50%) rotate(calc(45deg + var(--vg-shape-rotation))) scale(1.05)}
.vg-product-badge{position:absolute;z-index:7;top:12px;left:12px;display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:5px 9px;border-radius:999px;background:var(--vg-product-accent);color:#fff;font-size:11px;font-weight:700;line-height:1;letter-spacing:.02em;text-transform:uppercase;pointer-events:none}
.vg-badge-new{left:auto;right:12px;background:#fff;color:#111;border:1px solid rgba(17,17,17,.14)}
.vg-product-thumbnails{display:flex;align-items:center;gap:6px;margin-top:8px;overflow:auto;scrollbar-width:none}
.vg-product-thumbnails::-webkit-scrollbar{display:none}
.vg-product-thumb{width:38px;height:38px;flex:0 0 auto;padding:0;border:1px solid transparent;background:#f5f5f5;overflow:hidden;cursor:pointer;transition:border-color .2s,opacity .2s}
.vg-product-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.vg-product-thumb.is-active{border-color:var(--vg-product-accent)}
.vg-product-body{--vg-content-gap:13px;--vg-item-gap:8px;position:relative;z-index:5;padding-top:var(--vg-content-gap);display:flex;flex-direction:column;gap:var(--vg-item-gap);min-width:0}

/* Internal card spacing is controlled by --vg-item-gap instead of hardcoded margins. */
.vg-product-body>.vg-product-category,.vg-product-body>.vg-product-price,.vg-product-body>.vg-product-excerpt,.vg-product-body>.vg-product-stock,.vg-product-body>.vg-product-swatches,.vg-product-body>.vg-product-button.button,.vg-product-body>.star-rating,.vg-product-body>.vg-product-elementor-block{margin-top:0!important;margin-bottom:0!important}
.vg-product-elementor-block{width:100%;min-width:0}
.vg-product-elementor-block>.elementor{width:100%}

.vg-product-category{font-size:11px;line-height:1.25;letter-spacing:.11em;text-transform:uppercase;color:var(--vg-products-muted);margin-bottom:6px}
.vg-product-title{display:block;color:inherit;text-decoration:none;font-weight:600;line-height:1.35;transition:color .2s}
.vg-product-price{margin-top:7px;line-height:1.25}
.vg-product-price del{opacity:.48;margin-right:.35em}
.vg-product-price ins{text-decoration:none;font-weight:700}
.vg-product-excerpt{font-size:13px;color:var(--vg-products-muted);line-height:1.5;margin-top:9px}
.vg-product-card .star-rating{font-size:12px;margin:8px 0 0}
.vg-product-stock{font-size:12px;margin-top:7px}
.vg-product-stock p{margin:0}
.vg-product-stock.is-in-stock{color:#347541}.vg-product-stock.is-out-stock{color:#a32929}
.vg-product-swatches{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:10px}
.vg-product-swatch{--vg-swatch:#ddd;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.15);border-radius:50%;background:#eee;font-size:9px;line-height:1;color:#444;box-shadow:inset 0 0 0 2px #fff}
.vg-product-swatch.has-color{background:var(--vg-swatch)}
.vg-product-button.button{display:inline-flex!important;align-items:center;justify-content:space-between;gap:18px;margin-top:13px;border:0!important;background:var(--vg-product-accent);color:#fff;padding:11px 15px;text-decoration:none;border-radius:8px;font-size:13px;font-weight:600;line-height:1.15;box-shadow:none!important;transition:background .2s,color .2s,transform .2s}
.vg-product-button.button:hover{transform:translateY(-1px)}
.vg-button-arrow{font-size:1.05em;line-height:1}
.vg-button-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;font-size:16px;line-height:1;color:currentColor}
.vg-button-icon svg,.vg-button-icon i{width:100%;height:100%;display:block;font-size:inherit;line-height:1}
.vg-button-content-icon_only{justify-content:center!important}
.vg-button-content-text_only{justify-content:center}

/* Content overlays */
.vg-content-overlay-bottom,.vg-content-overlay-reveal{overflow:hidden}
.vg-content-overlay-bottom .vg-product-body,.vg-content-overlay-reveal .vg-product-body{position:absolute;z-index:8;left:12px;right:12px;bottom:12px;padding:16px;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);border-radius:10px;box-shadow:0 14px 36px rgba(0,0,0,.10)}
.vg-content-overlay-reveal .vg-product-body{opacity:0;transform:translateY(14px);transition:opacity var(--vg-transition),transform var(--vg-transition)}
.vg-content-overlay-reveal:hover .vg-product-body{opacity:1;transform:translateY(0)}
.vg-content-overlay-bottom .vg-product-thumbnails,.vg-content-overlay-reveal .vg-product-thumbnails{position:absolute;left:14px;right:14px;bottom:14px;z-index:9}

/* Presets inspired by editorial / technical / marketplace commerce */
.vg-preset-minimal .vg-product-card{background:transparent}
.vg-preset-minimal .vg-product-media{background:#fafafa}
.vg-preset-minimal .vg-product-title{font-weight:500}
.vg-preset-minimal .vg-product-button{background:transparent!important;color:inherit!important;border-bottom:1px solid currentColor!important;border-radius:0!important;padding:7px 0!important}

.vg-preset-editorial-fashion .vg-product-card{background:transparent}
.vg-preset-editorial-fashion .vg-product-media{background:#eee}
.vg-preset-editorial-fashion .vg-product-title{font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.vg-preset-editorial-fashion .vg-product-price{font-weight:700;color:#d22626;text-align:center;font-size:14px}
.vg-preset-editorial-fashion .vg-product-body{text-align:center}
.vg-preset-editorial-fashion .vg-product-badge{border-radius:0;top:0;left:0;font-size:26px;font-weight:400;padding:14px 11px;background:linear-gradient(90deg,#e78b8b,#f0e4d1);color:#fff;text-transform:none;min-height:70px;min-width:84px;align-items:flex-start;justify-content:flex-start}
.vg-preset-editorial-fashion .vg-badge-new{display:none}

.vg-preset-boutique .vg-product-media{background:#fff}
.vg-preset-boutique .vg-product-title{font-size:14px;font-weight:500}
.vg-preset-boutique .vg-product-price{font-size:14px}
.vg-preset-boutique .vg-product-button{background:transparent!important;color:inherit!important;padding:7px 0!important;border-radius:0!important;border-bottom:1px solid currentColor!important}
.vg-preset-boutique .vg-product-badge{background:#111;color:#fff;border-radius:6px}

.vg-preset-shape-pop .vg-product-media{background:transparent}
.vg-preset-shape-pop .vg-product-image{object-fit:contain}
.vg-preset-shape-pop .vg-product-shape{--vg-shape-size:58%;--vg-shape-color:#ffae00}
.vg-preset-shape-pop .vg-product-title{font-family:Georgia,serif;font-size:16px;line-height:1.35;color:#18324c}
.vg-preset-shape-pop .vg-product-button{border-radius:999px}

.vg-preset-technical .vg-product-card{border:1px solid #e7e7e7;background:#fff;padding:12px;border-radius:6px}
.vg-preset-technical .vg-product-media{background:#f5f5f5}
.vg-preset-technical .vg-product-title{font-size:16px;font-weight:500}
.vg-preset-technical .vg-product-price{font-size:18px;color:#006c9e}
.vg-preset-technical .vg-product-button{width:100%;justify-content:center;border-radius:999px;background:#00739f}
.vg-preset-technical .vg-button-arrow{display:none}

.vg-preset-marketplace .vg-product-card{border:1px solid #e7e7e7;border-radius:7px;background:#fff;padding:10px}
.vg-preset-marketplace .vg-product-title{font-size:16px;line-height:1.18;font-weight:500}
.vg-preset-marketplace .vg-product-price{font-size:26px;color:#113b8f;margin-top:12px}
.vg-preset-marketplace .vg-product-button{margin-left:auto;width:48px;height:42px;padding:0;justify-content:center;background:#9b005c;border-radius:6px;font-size:0}
.vg-preset-marketplace .vg-button-arrow{display:none}

.vg-preset-gallery .vg-product-card{background:#fff}
.vg-preset-gallery .vg-product-media{background:#f3f4f6}
.vg-preset-gallery .vg-product-title{font-weight:700;font-size:16px}
.vg-preset-gallery .vg-product-thumbnails{margin-top:8px}
.vg-preset-gallery .vg-product-badge{border-radius:2px;background:#3f58e6}

.vg-preset-furniture .vg-product-card{background:#fff}
.vg-preset-furniture .vg-product-media{background:#f1efec}
.vg-preset-furniture .vg-product-title{font-size:15px;text-transform:uppercase}
.vg-preset-furniture .vg-product-category{font-size:12px;text-transform:none;letter-spacing:0}
.vg-preset-furniture .vg-product-badge{background:#0d0d0d;border-radius:8px}
.vg-preset-furniture .vg-product-price{font-size:16px;font-weight:700}

/* Legacy names retained */
.vg-preset-classic .vg-product-card{border:1px solid #e7e7e7;padding:12px}
.vg-preset-premium .vg-product-title{font-family:Georgia,serif;font-size:1.12em}
.vg-preset-premium .vg-product-media{background:#eee}
.vg-preset-editorial .vg-product-title{font-size:1.2em;letter-spacing:-.02em}
.vg-preset-compact .vg-product-card{display:grid;grid-template-columns:92px 1fr;gap:14px;align-items:start}
.vg-preset-compact .vg-product-media{aspect-ratio:1/1}
.vg-preset-compact .vg-product-body{padding:2px 0}
.vg-preset-card .vg-product-card{background:#fff;padding:12px;box-shadow:0 10px 35px rgba(0,0,0,.06)}

/* Horizontal loop */
.vg-products-loop-shell{position:relative}
.vg-products-loop-viewport{overflow:hidden}
.vg-products-loop{display:flex;gap:22px;overflow-x:auto;padding:3px 2px 18px;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.vg-products-loop::-webkit-scrollbar{display:none}
.vg-products-loop.vg-show-scrollbar{scrollbar-width:thin}
.vg-products-loop.vg-show-scrollbar::-webkit-scrollbar{display:block;height:5px}.vg-products-loop.vg-show-scrollbar::-webkit-scrollbar-thumb{background:#bbb;border-radius:999px}
.vg-products-loop .vg-product-card{flex:0 0 var(--vg-loop-width,320px);scroll-snap-align:start}
.vg-loop-nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-bottom:14px}
.vg-loop-arrow{width:46px;height:46px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e2e2;background:#fff;color:#111;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}
.vg-loop-arrow:hover{background:#111;color:#fff;transform:translateY(-1px)}
.vg-loop-arrow:disabled{opacity:.35;cursor:default;transform:none}
.vg-loop-arrow svg{width:19px;height:19px}
.vg-arrow-circle{border-radius:50%}.vg-arrow-square{border-radius:8px}.vg-arrow-minimal{border-color:transparent;background:transparent;border-radius:0}

@media(max-width:1024px){.vg-products-grid{--vg-cols:3}.vg-content-overlay-bottom .vg-product-body,.vg-content-overlay-reveal .vg-product-body{left:9px;right:9px;bottom:9px;padding:13px}}
@media(max-width:767px){.vg-products-grid{--vg-cols:2;column-gap:14px;row-gap:24px}.vg-product-body{--vg-content-gap:10px}.vg-product-badge{top:8px;left:8px}.vg-badge-new{left:auto;right:8px}.vg-preset-editorial-fashion .vg-product-badge{font-size:18px;min-height:52px;min-width:62px;padding:10px 8px}.vg-preset-compact .vg-product-card{grid-template-columns:72px 1fr}.vg-content-overlay-reveal .vg-product-body{opacity:1;transform:none}.vg-loop-nav{margin-bottom:10px}}
@media(hover:none){.vg-content-overlay-reveal .vg-product-body{opacity:1;transform:none}.vg-product-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.vg-product-card,.vg-product-image,.vg-product-hover-video,.vg-product-shape,.vg-product-button,.vg-products-loop{transition:none!important;scroll-behavior:auto!important}.vg-product-card:hover{transform:none!important}.vg-product-image{transform:none!important}}
.vg-product-card{--vg-shape-color-2:#ff6b6b}
.vg-product-card.vg-shape-gradient .vg-product-shape{background:linear-gradient(135deg,var(--vg-shape-color),var(--vg-shape-color-2))}
.vg-button-cart{display:none;width:23px;height:23px}.vg-button-cart svg{width:100%;height:100%;display:block}
.vg-preset-marketplace .vg-product-button .vg-button-label,.vg-preset-marketplace .vg-product-button .vg-button-arrow{display:none}
.vg-preset-marketplace .vg-product-button .vg-button-cart{display:block}

/* Button content/icon modes added in 2.10.7. Auto mode preserves old presets, manual modes stay editable. */
.vg-preset-marketplace .vg-product-button.vg-button-content-icon_only{margin-left:auto;width:48px;height:42px;padding:0;justify-content:center;font-size:0}
.vg-preset-marketplace .vg-product-button:not(.vg-button-content-icon_only){width:auto;height:auto;font-size:13px;margin-left:0;padding:11px 15px;justify-content:space-between}
.vg-preset-marketplace .vg-product-button:not(.vg-button-content-icon_only) .vg-button-label{display:inline}
.vg-preset-marketplace .vg-product-button .vg-button-icon{font-size:16px}


/* 2.11.0 — controlled Elementor Nested Elements inside Woo cards. */
.vg-product-elementor-nested{width:100%;min-width:0;position:relative}
.vg-product-elementor-nested>.elementor-element,.vg-product-elementor-nested>.e-con{width:100%;max-width:100%;min-width:0}
.vg-product-body>.vg-product-elementor-nested{margin-top:0;margin-bottom:0}
.vg-product-builder-editor-note{margin:0 0 14px;padding:10px 12px;border:1px dashed rgba(17,17,17,.28);border-radius:8px;background:rgba(250,250,250,.92);font-size:12px;line-height:1.45;color:#555}
.vg-products-has-nested .vg-product-nested-editor-slot{min-height:54px;border:1px dashed rgba(17,17,17,.22);border-radius:8px;padding:7px}
.vg-products-has-nested .vg-product-nested-editor-slot:empty:before{content:'Arrastra aquí widgets de Elementor';display:block;padding:12px;text-align:center;font-size:11px;color:#777}

/* 2.11.8 — Keep commerce CTAs aligned to the bottom of standard product cards. */
.vg-product-card.vg-content-below{height:100%;display:flex;flex-direction:column}
.vg-product-card.vg-content-below>.vg-product-body{flex:1 1 auto}
.vg-product-card.vg-content-below>.vg-product-body>.vg-product-button.button{margin-top:auto!important}
/* Compact cards intentionally keep their grid composition; body still fills its cell. */
.vg-preset-compact .vg-product-card.vg-content-below{display:grid}

/* 2.12.0 — Responsive commerce safety layer. Elementor device controls remain authoritative. */
.vg-product-card,.vg-product-body,.vg-product-media,.vg-product-title,.vg-product-price,.vg-product-excerpt,.vg-product-button{min-width:0;max-width:100%}
.vg-product-title,.vg-product-excerpt,.vg-product-category,.vg-product-price{overflow-wrap:break-word;word-break:normal}
.vg-product-button.button{max-width:100%;white-space:normal;text-align:center}
.vg-product-thumbnails,.vg-product-swatches{max-width:100%}
@media(max-width:767px){
  .vg-product-card{max-width:100%}
  .vg-product-body{width:100%}
  .vg-product-button.button{min-height:42px}
  .vg-product-badge{max-width:calc(100% - 16px);white-space:normal;text-align:center}
  .vg-preset-technical .vg-product-card,.vg-preset-marketplace .vg-product-card{padding:10px}
}

/* 2.12.3 — Product Loop explicit sizing + real nested editor target. */
.elementor-editor-active .vg-products-has-nested .vg-product-nested-editor-slot{
  min-height:72px;
  border:1px dashed rgba(87,78,255,.45);
  border-radius:10px;
  padding:8px;
  background:rgba(87,78,255,.025);
}
.elementor-editor-active .vg-products-has-nested .vg-product-nested-editor-slot > .e-con,
.elementor-editor-active .vg-products-has-nested .vg-product-nested-editor-slot > .elementor-element{
  min-height:54px;
  width:100%;
}
.elementor-editor-active .vg-products-has-nested .vg-product-nested-editor-slot:not(:empty)::before{
  display:none!important;
}

/* 2.12.6 — Product Grid pagination. */
.vg-products-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin-top:32px}
.vg-products-page-link{display:inline-flex;align-items:center;justify-content:center;min-width:42px;min-height:42px;padding:9px 13px;border:1px solid #dedede;border-radius:8px;background:#fff;color:#171717;text-decoration:none;line-height:1.1;transition:background-color .18s ease,color .18s ease,border-color .18s ease,transform .18s ease}
.vg-products-page-link:hover{background:#f3f3f3;color:#111;border-color:#c7c7c7;transform:translateY(-1px)}
.vg-products-page-link.is-current{background:#171717;color:#fff;border-color:#171717;cursor:default}
.vg-products-page-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:24px;color:#777}
@media(max-width:767px){.vg-products-pagination{gap:6px}.vg-products-page-link{min-width:40px;min-height:40px;padding:8px 10px}.vg-products-page-prev,.vg-products-page-next{flex:0 1 auto}}
@media(prefers-reduced-motion:reduce){.vg-products-page-link{transition:none}.vg-products-page-link:hover{transform:none}}


/* 2.24.8 — Fast AJAX pagination. Only the catalogue is refreshed; the URL stays untouched. */
.vg-products-grid-shell[data-vg-pagination-ajax="1"] .vg-products-grid{transition:opacity .16s ease,transform .16s ease}
.vg-products-grid-shell.vg-products-is-loading .vg-products-grid{opacity:.45;transform:translateY(2px);pointer-events:none}
.vg-products-grid-shell.vg-products-is-loading .vg-products-pagination{pointer-events:none;opacity:.65}
.vg-products-pagination-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.vg-products-grid-shell[data-vg-pagination-ajax="1"] .vg-products-grid{transition:none}.vg-products-grid-shell.vg-products-is-loading .vg-products-grid{transform:none}}

/* VanGal Product Grid / Loop · valoraciones */
.vg-product-rating{display:flex;align-items:center;gap:7px;margin:0;line-height:1;font-size:14px;min-height:1.2em}
.vg-rating-stars{position:relative;display:inline-block;line-height:1;letter-spacing:.06em;white-space:nowrap;font-size:1em}
.vg-rating-stars-base{color:#d8d8d8}
.vg-rating-stars-fill{position:absolute;inset:0 auto 0 0;overflow:hidden;color:#f6a800;white-space:nowrap}
.vg-rating-number{font-weight:700;color:#525252;font-size:.92em}
.vg-rating-count{color:#777;font-size:.86em}
