/* CSS de shop.php.
   Estaba embebido: el navegador lo volvia a descargar en CADA carga aunque no cambie nunca.
   Como archivo aparte se descarga una vez y despues sale de la cache (navegador + Cloudflare). */

            /* Ocultar scrollbars en móviles y verticales para experiencia app-like y evitar parpadeos */
            @media (max-width: 1100px), (orientation: portrait) {
                html, body {
                    overflow-x: hidden;
                    scrollbar-width: none; /* Firefox */
                    -ms-overflow-style: none; /* IE/Edge */
                }
                html::-webkit-scrollbar, body::-webkit-scrollbar {
                    display: none; /* Chrome/Safari/Opera */
                }
                /* Ocultar barra de filtros en móvil, solo dejar resultados */
                #gc-main-filterbar > .fb-dd,
                #gc-main-filterbar > a.fb-btn {
                    display: none !important;
                }
                #gc-main-filterbar {
                    justify-content: flex-end;
                    margin: 4px 0 10px;
                }
                .gc-shop .page {
                    padding: 12px 20px 16px;
                }
                .gc-shop .breadcrumb-nav {
                    margin-bottom: 6px;
                    font-size: 12px;
                }
                .gc-shop .filterbar {
                    gap: 6px;
                    margin: 2px 0 10px;
                }
                .gc-shop .results {
                    font-size: 13px;
                }
                .gc-shop .grid {
                    gap: 12px;
                }
                /* Botón flotante siempre visible abajo-izquierda */
                #gc-float-filters-btn.gc-mobile-fab {
                    display: flex !important;
                    position: fixed !important;
                    bottom: 16px !important;
                    left: 16px !important;
                    right: auto !important;
                    z-index: 1040 !important;
                }
                /* Chat widget en la esquina abajo-derecha */
                #gc-chat{ bottom: 16px !important; }
                /* Panel de filtros z-index encima del botón */
                .gc-filters-panel { z-index: 1060 !important; }
            }

            /* Reafirmar estilos propios después de Tailwind para evitar conflictos */
            .gc-shop .page{max-width:1200px;padding:20px 30px 20px 0}
            @media(max-width:1100px){ .gc-shop .page{padding:12px 20px 16px} .gc-shop .grid{gap:12px} }
            @media(max-width:520px){ .gc-shop .page{padding:10px 16px 14px} }
            @media(max-width:420px){ .gc-shop .page{padding:8px 12px 12px} }
            body,html{background:#f1f5f9}
            .gc-shop .page, .gc-shop .grid{background:transparent}
            .gc-shop .layout{display:block}
            .gc-shop .filterbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 16px}
            .gc-shop .fb-btn{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:none;border-radius:10px;background:#fff;color:#0f172a;font-weight:600;cursor:pointer;position:relative}
            .gc-shop .fb-btn .ico{display:inline-flex;width:16px;height:16px;align-items:center;justify-content:center}
            .gc-shop .fb-dd{position:relative}
            .gc-shop .fb-dd[aria-expanded="true"] .arrow{transform:rotate(180deg)}
            .gc-shop .arrow{transition:transform .15s ease}
            .gc-shop .fb-menu{position:absolute;top:calc(100% + 6px);left:0;width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 24px rgba(15,23,42,.08);padding:16px;display:none;z-index:20;box-sizing:border-box}
            .gc-shop .fb-dd.open .fb-menu{display:block}
            .gc-shop .fb-item{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:8px;border-radius:8px;color:#0f172a;text-decoration:none}
            .gc-shop .fb-item:hover{background:#f8fafc}
            .gc-shop .fb-item.active{background:#f1f5f9;font-weight:700;color:#0f172a}
            .gc-shop .fb-scroll{max-height:260px;overflow-y:auto;padding-right:4px}
            .gc-shop .fb-scroll::-webkit-scrollbar{width:6px}
            .gc-shop .fb-scroll::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}
            .gc-shop .fb-scroll::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}
            .gc-shop .fb-scroll::-webkit-scrollbar-thumb:hover{background:#94a3b8}
            .gc-shop .fb-label{font-size:13px;color:#64748b;margin:0 0 8px 0;font-weight:600;text-align:center}
            .gc-shop .fb-menu form{width:100%}
            .gc-shop .fb-menu form .row{display:flex;gap:10px;padding:0 0 6px 25px;width:100%;box-sizing:border-box;justify-content:center;flex-wrap:nowrap}
            .gc-shop .fb-menu input.price-input{width:130px;min-width:0;border:1px solid #e5e7eb;border-radius:8px;padding:10px;font-size:14px;text-align:center;margin:0}
            .gc-shop .fb-actions{display:flex;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px solid #f1f5f9}
            .gc-shop .fb-actions .btn{padding:8px 10px;border-radius:8px;border:1px solid #e5e7eb;background:#fff;cursor:pointer;font-size:13px;font-weight:600}
            .gc-shop .fb-actions .btn[disabled]{opacity:0.5;cursor:default;background:#f3f4f6;color:#9ca3af;border-color:#e5e7eb}
            
            /* Checkbox circular */
            .gc-shop .chk-circle {
                appearance: none; -webkit-appearance: none;
                width: 18px; height: 18px; flex-shrink: 0;
                border: 1px solid #cbd5e1; border-radius: 50%;
                background: #fff; cursor: pointer;
                display: inline-flex; align-items: center; justify-content: center;
                transition: all .2s ease;
            }
            .gc-shop .chk-circle:checked {
                background: #0f172a; border-color: #0f172a;
            }
            .gc-shop .chk-circle:checked::after {
                content: ''; width: 9px; height: 5px;
                border-left: 2px solid #fff; border-bottom: 2px solid #fff;
                transform: rotate(-45deg); margin-bottom: 2px;
            }
            /* Grid de columnas/filas (alineadas) */
            .gc-shop .grid {
                display: grid;
                grid-template-columns: repeat(5, 1fr);
                gap: 12px;
                overflow-anchor: none;
            }
            /* Skeleton inicial al cargar la página */
            .gc-shop.gc-init-loading #gc-grid{ visibility:hidden; pointer-events:none }
            .gc-shop .gc-skeleton-logo-preload{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none;inset:-9999px}
            #gc-init-skeleton{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; }
            @media(max-width:1100px){ #gc-init-skeleton{ grid-template-columns:repeat(4,1fr); } }
            @media(max-width:820px){ #gc-init-skeleton{ grid-template-columns:repeat(2,1fr); gap:10px; } }
            @media(max-width:420px){ #gc-init-skeleton{ gap:8px; } }
                        /* Skeleton cards: compartido por carga inicial, búsqueda y carga incremental */
                        .gc-shop .card.skeleton{background:#fff;border:1px solid #eef2f7;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;pointer-events:none;height:auto}
                        .gc-shop .card.skeleton .sk-thumb{width:100%;aspect-ratio:1/1;background:transparent;border-radius:8px 8px 0 0;position:relative;display:flex;align-items:center;justify-content:center}
                        .gc-shop .card.skeleton .sk-thumb::before{content:'';position:absolute;inset:0;background:url("assets/logos/logo-maskable.png") center center / 92% no-repeat;opacity:.12;filter:grayscale(1);pointer-events:none}
                        .gc-shop .card.skeleton .sk-logo{position:absolute;width:92%;max-width:none;opacity:0;pointer-events:none}
                        .gc-shop .card.skeleton .sk-body{padding:10px 10px 8px;display:flex;flex-direction:column;gap:6px}
                        .gc-shop .card.skeleton .sk-line{height:10px;border-radius:4px;background:linear-gradient(90deg,#f1f5f9 0%,#e2e8f0 50%,#f1f5f9 100%);background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}
                        .gc-shop .card.skeleton .sk-line.sk-w70{width:70%}
                        .gc-shop .card.skeleton .sk-line.sk-w50{width:50%}
                        .gc-shop .card.skeleton .sk-line.sk-h16{height:16px}
                        @keyframes sk-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
                        @media(max-width:520px){
                            .gc-shop .card.skeleton .sk-body{padding:6px 8px;gap:5px}
                            .gc-shop .card.skeleton .sk-line{height:8px}
                            .gc-shop .card.skeleton .sk-line.sk-h16{height:13px}
                        }
            .gc-shop .card {
                width: 100%;
                margin-bottom: 0;
            }
            @media(max-width:1100px){ .gc-shop .grid{grid-template-columns: repeat(4, 1fr);} }
            @media(max-width:820px){ .gc-shop .grid{grid-template-columns: repeat(2, 1fr);} }
            @media(max-width:520px){ .gc-shop .grid{grid-template-columns: repeat(2, 1fr); gap: 10px;} }
            @media(max-width:420px){ .gc-shop .grid{gap: 8px;} }
            /* Móvil/portrait: layout masonry JS de 2 columnas para eliminar huecos verticales
               entre cards de distinta altura sin redistribuir items existentes en el infinite scroll. */
            @media(max-width:820px) and (orientation:portrait){
              .gc-shop .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:start}
              .gc-shop .grid>.card{margin-bottom:0;height:auto}
              /* (El modo masonry se define globalmente más abajo como CSS Grid denso.) */
            }
            @media(max-width:420px) and (orientation:portrait){
              .gc-shop .grid{gap:8px}
            }
            .gc-shop .grid.masonry{position:relative;display:block}
            .gc-shop .grid.masonry .card{position:absolute;top:0;left:0;margin:0;box-sizing:border-box}
            /* Masonry vía CSS Grid con empaquetado DENSO (grid-auto-flow:row dense): el navegador
               rellena los huecos que dejan las cards de distinta altura y las promos anchas SIN
               "robar" columnas (eso era lo que dejaba los bloques blancos). El JS solo mide el alto
               de cada card y le asigna grid-row: span (alto) — auto-rows de 1px → span en px. */
            .gc-shop .grid.gc-masonry{
                display:grid !important;
                grid-template-columns:repeat(var(--gc-cols,5),minmax(0,1fr));
                grid-auto-rows:1px;
                row-gap:0;
                column-gap:var(--gc-cgap,16px);
                grid-auto-flow:row dense;
                align-items:start;
                position:static;
                height:auto !important;
                padding:0;
            }
            .gc-shop .grid.gc-masonry > .card,
            .gc-shop .grid.gc-masonry > .promo-card{
                position:static !important;
                left:auto !important; top:auto !important;
                width:auto !important;
                height:auto !important;
                margin:0 !important;
                align-self:start;
                box-sizing:border-box;
            }
            .gc-shop .grid.gc-masonry > .card > .body{flex:0 0 auto}
                        .gc-shop .sold-below{color:#64748b;font-size:11px;font-weight:400;line-height:1.1;margin-top:1px}
                        .gc-shop .badges-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
                        @media(max-width:520px){
                            .gc-shop .body{padding:6px 8px}
                            .gc-shop .title-row{margin-top:0}
                            .gc-shop .price-block{margin-top:2px}
                        }
            .gc-shop .card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s ease, transform .08s ease;height:100%}
            .gc-shop .card:hover{box-shadow:0 10px 24px rgba(15,23,42,.08);transform:translateY(-1px)}
            .gc-shop .thumb{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:#f8fafc}
            @media(max-width:520px){ .gc-shop .thumb{height:auto;aspect-ratio:1/1} }
            .gc-shop .thumb-link{display:block}
            .gc-shop .body{padding:10px 10px 8px;display:flex;flex-direction:column;gap:0;flex:1}
            .gc-shop .name{font-weight:400;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;margin:0;line-height:1.1}
            .gc-title-popover{position:fixed;z-index:9999;max-width:min(320px,calc(100vw - 24px));padding:8px 10px;background:rgba(241,245,249,.9);border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 12px 30px rgba(15,23,42,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#334155;font-size:12px;line-height:1.35;white-space:normal;pointer-events:auto}
            .gc-title-popover.is-hidden{display:none}
            /* estrellas/percent propios del perfil NO se muestran en las cards de tienda */
            .gc-shop .price{font-size:20px;font-weight:800}
            .gc-shop .old{color:#94a3b8;text-decoration:line-through;font-size:14px;margin-left:4px}
            .gc-shop .price-block{display:flex;flex-direction:column;gap:0;margin-top:0;align-items:flex-start;text-align:left}
            .gc-shop .price-row{display:flex;justify-content:flex-start;align-items:center;width:100%;gap:0;flex-wrap:wrap;row-gap:2px}
            .gc-shop .price-row .sold-group{display:inline-flex;align-items:center;flex-shrink:0;min-width:0;margin-left:5px}
            .gc-shop .price{font-size:20px;font-weight:800}
            .gc-shop .price.hot{color:#e11d48}
            .gc-shop .disc-pct{color:#e11d48;font-size:13px;font-weight:400;margin-left:2px}
            .gc-shop .sold-right{color:#64748b;font-size:12px;font-weight:400}
            .gc-shop .rating-row{display:flex;justify-content:flex-start;align-items:center;gap:6px;margin-top:2px;font-size:12px;flex-wrap:wrap}
            .gc-shop .stars{display:inline-flex;align-items:center;gap:2px}
            .gc-shop .stars .star-icon{width:16px;height:16px;display:block}
            .gc-shop .stars .star-shell{position:relative;display:inline-block;line-height:0;flex:0 0 auto}
            .gc-shop .stars .star-fill{position:absolute;left:0;top:0;height:100%;overflow:hidden;display:block}
            .gc-shop .stars .star-base path{fill:none;stroke:#d1d5db;stroke-width:1.5;stroke-linejoin:round}
            .gc-shop .stars .star-top path{fill:#000;stroke:#000;stroke-width:1.5;stroke-linejoin:round}
            .gc-shop .stars .star-icon.filled path{fill:#000;stroke:#000}
            .gc-shop .stars .star-icon.empty path{fill:none;stroke:#d1d5db}
            .gc-shop .rating-val{color:#64748b;font-weight:500;font-size:12px;margin-left:2px;position:relative;top:1px}
            .gc-shop .rating-sep{color:#d1d5db;font-size:11px;position:relative;top:1px}
            .gc-shop .sold-inline{color:#64748b;font-size:12px;font-weight:500;white-space:nowrap;line-height:1}
            .gc-shop .rating-row .rating-word{color:#dc2626;font-size:12px;font-weight:500;margin-left:4px;position:relative;top:1px}
            .gc-shop .title-row{display:flex;align-items:center;gap:2px;margin:0}
            .gc-shop .title-row .name{flex:1}
            /* Etiqueta de oferta INLINE (solo texto, mayúscula condensada) a la izquierda del título */
            .gc-shop .gc-offer-tags{display:inline-flex;align-items:center;gap:3px;flex:0 0 auto;margin:0}
            .gc-shop .gc-offer-tag{display:inline-flex;align-items:center;border-radius:3px;padding:1px 3px;font-family:'Oswald','Arial Narrow',system-ui,sans-serif;font-weight:600;font-size:11px;line-height:1;letter-spacing:-.3px;text-transform:uppercase;white-space:nowrap;color:#fff}
            .gc-shop .gc-offer-tag--flash{background:linear-gradient(120deg,#ff2e74,#ec4899 55%,#a855f7)}
            .gc-shop .gc-offer-tag--liq{background:linear-gradient(120deg,#f97316,#ef4444 60%,#dc2626)}
            @media(max-width:768px),(orientation:portrait) and (max-width:900px){.gc-shop .gc-offer-tag{font-size:10px}}
            .gc-shop .free-badge{display:inline-flex;align-items:center;justify-content:center;background:#22c55e;color:#fff;border-radius:3px;padding:3px 8px;font-size:13px;font-weight:700;line-height:1.1;white-space:nowrap;letter-spacing:-0.5px}
            .gc-shop .free-badge-img{font-size:10px;padding:2px 6px;border-radius:3px}
            .gc-shop .card-media-badges{position:absolute;left:8px;bottom:8px;z-index:4;display:flex;flex-direction:column;align-items:flex-start;gap:4px;pointer-events:none;max-width:calc(100% - 58px)}
            .gc-shop .card-media-badges .free-badge-img,.gc-shop .card-media-badges .stock-badge{position:static;left:auto;right:auto;top:auto;bottom:auto;max-width:100%}
            .gc-shop .gc-flash-badge-pill{display:inline-flex;align-items:center;gap:3px;background:linear-gradient(120deg,#ff2e74,#ec4899 55%,#a855f7);color:#fff;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap;box-shadow:0 1px 5px rgba(168,85,247,.4)}
            .gc-shop .gc-flash-badge-pill svg{width:11px;height:11px;flex:0 0 auto}
            .gc-shop .gc-liq-badge-pill{display:inline-flex;align-items:center;gap:3px;background:linear-gradient(120deg,#f97316,#ef4444 60%,#dc2626);color:#fff;border-radius:5px;padding:2px 7px;font-size:10px;font-weight:800;line-height:1.15;white-space:nowrap;box-shadow:0 1px 5px rgba(220,38,38,.4)}
            .gc-shop .gc-liq-badge-pill svg{width:11px;height:11px;flex:0 0 auto}
            @media(max-width:768px),(orientation:portrait) and (max-width:900px){.gc-shop .gc-flash-badge-pill,.gc-shop .gc-liq-badge-pill{font-size:9px;padding:1px 5px}.gc-shop .gc-flash-badge-pill svg,.gc-shop .gc-liq-badge-pill svg{width:9px;height:9px}}
            @media(max-width:768px),(orientation:portrait) and (max-width:900px){.gc-shop .free-badge-img{font-size:9px;padding:2px 5px}.gc-shop .card-media-badges{left:6px;bottom:6px;gap:3px;max-width:calc(100% - 48px)}}
            .gc-shop .fire-icon-inline{display:inline-flex;align-items:center;flex-shrink:0;line-height:1}
            .gc-shop .fire-icon-inline svg{width:13px;height:13px;fill:#ef4444}
            .gc-shop .price-row .fire-icon-inline{margin-left:5px;margin-right:1px;position:relative;top:-1px}
            .gc-shop .price-row .price + .sold-inline{margin-left:6px}
            .cst-box{display:inline-flex;align-items:stretch;border:1px solid #ef4444;border-radius:4px;overflow:hidden;font-size:10px;line-height:1;margin-bottom:3px;max-width:100%}
            .cst-box .cst-left{background:#ef4444;color:#fff;padding:3px 6px;font-weight:700;display:flex;align-items:center;white-space:nowrap}
            .cst-box .cst-right{background:#fff;color:#ef4444;padding:3px 5px;display:flex;align-items:center;gap:3px;white-space:nowrap;flex:0 0 auto}
            .cst-box .cst-right svg{width:9px;height:9px;flex-shrink:0;display:block}
            .cst{display:block;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.02em}
            @media(max-width:520px){
                .cst-box{font-size:8px;border-radius:3px}
                .cst-box .cst-left{padding:2px 4px}
                .cst-box .cst-right{padding:2px 3px;gap:2px}
                .cst-box .cst-right svg{width:7px;height:7px}
            }
            @media(max-width:380px){
                .cst-box{font-size:7px}
                .cst-box .cst-left{padding:2px 3px}
                .cst-box .cst-right{padding:2px 3px;gap:1px}
                .cst-box .cst-right svg{width:6px;height:6px}
            }
            .gc-shop .marca-badge{display:inline-flex;align-items:center;gap:3px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:4px;padding:1px 4px;font-size:11px;color:#1e293b;font-weight:400;text-decoration:none;margin-top:6px;align-self:flex-start;max-width:calc(100% - 8px);overflow:hidden}
            .gc-shop .marca-badge:hover{background:#e2e8f0}
            .gc-shop .marca-badge .marca-label{color:#64748b;white-space:nowrap;flex-shrink:0}
            .gc-shop .marca-badge .marca-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
            .gc-shop .marca-badge svg{width:9px;height:9px;flex-shrink:0;stroke:#6b7280}
            .gc-shop .bestseller-row{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:nowrap;overflow:hidden}
            .gc-shop .bestseller-row.is-placeholder{visibility:hidden}
            .gc-shop .fire-circle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#dc2626;border-radius:50%;flex-shrink:0}
            .gc-shop .fire-circle svg{width:10px;height:10px;fill:#fff}
            .gc-shop .bestseller-row span:last-child{font-size:12px;font-weight:600;color:#dc2626;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:1.15}
            .gc-shop .quick-add{margin:0}
            .gc-shop .thumb-wrap{position:relative;overflow:hidden;border-radius:8px 8px 0 0}
            .gc-shop .quick-add.overlay{position:absolute;right:10px;bottom:10px;z-index:2}
            .gc-shop .btn-circle{width:52px;height:52px;border-radius:999px;border:none;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#333;box-shadow:0 3px 12px rgba(0,0,0,.18);cursor:pointer;transition:transform .15s,box-shadow .15s}
            .gc-shop .btn-circle svg{width:26px;height:26px}
            .gc-shop .btn-circle:hover{background:#fff;color:#000;transform:scale(1.08);box-shadow:0 4px 12px rgba(0,0,0,.2)}
            .gc-shop .btn-circle[disabled]{opacity:.5;cursor:not-allowed;background:#f3f4f6;color:#9ca3af;box-shadow:0 1px 4px rgba(0,0,0,.1)}
            .gc-shop .card{cursor:pointer}
            /* === Cart button: moved out of image, into bottom-right of the card === */
            .gc-shop .card{ position:relative; overflow:visible }
            .gc-shop .thumb-wrap{ position:relative; overflow:visible; border-radius:0 }
            .gc-shop .thumb{ display:block; border-radius:8px 8px 0 0 }
            .gc-shop .quick-add.overlay{ position:absolute; right:8px; bottom:8px; top:auto; z-index:5 }

            /* Stock badge en la imagen */
            .gc-shop .stock-badge{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.3px;line-height:1;z-index:4;pointer-events:none;text-transform:uppercase;box-shadow:0 1px 4px rgba(0,0,0,.12)}
            .gc-shop .stock-badge-icon{display:inline-flex;align-items:center;justify-content:center}
            .gc-shop .stock-badge-icon svg{width:11px;height:11px;fill:currentColor;display:block}
            .gc-shop .stock-badge--low{background:#fee2e2;color:#dc2626}
            .gc-shop .stock-badge--last{background:#dc2626;color:#fff}
            @media(max-width:520px){
              .gc-shop .stock-badge{font-size:9px;padding:2px 5px;gap:3px;left:6px;bottom:6px;border-radius:3px}
              .gc-shop .stock-badge-icon svg{width:9px;height:9px}
            }
            @media(max-width:380px){
              .gc-shop .stock-badge{font-size:8px;padding:2px 4px;gap:2px;left:5px;bottom:5px}
              .gc-shop .stock-badge-icon svg{width:8px;height:8px}
            }
            .gc-shop .btn-circle{ width:34px; height:34px; box-shadow:0 2px 8px rgba(0,0,0,.18); background:#fff }
            .gc-shop .btn-circle svg{ width:16px; height:16px }
            /* Botón carrito es absolute, no necesita reservar espacio en bestseller-row */
            .gc-shop .bestseller-row{ padding-right:0 }
            @media(max-width:520px){
              .gc-shop .btn-circle{ width:30px; height:30px }
              .gc-shop .btn-circle svg{ width:14px; height:14px }
              .gc-shop .quick-add.overlay{ right:6px; bottom:6px }
              .gc-shop .bestseller-row{ padding-right:0 }
            }
            @media(max-width:420px){
              .gc-shop .btn-circle{ width:28px; height:28px }
              .gc-shop .btn-circle svg{ width:13px; height:13px }
              .gc-shop .quick-add.overlay{ right:5px; bottom:5px }
              .gc-shop .bestseller-row{ padding-right:0 }
            }
            .gc-shop .badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;border:1px solid #a7f3d0;background:#ecfdf5;color:#047857;font-weight:700;font-size:12px}
            .gc-shop .badge.off{background:#fee2e2;border-color:#fecaca;color:#b91c1c}
            .gc-shop .muted{color:#64748b;font-size:12px}
            .gc-shop .actions{display:flex;gap:8px}
            .gc-shop .btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:10px;border:none;background:#fff;color:#0f172a;text-decoration:none;cursor:pointer;font-weight:700}
            .gc-shop .btn.primary{background:linear-gradient(135deg,#10b981,#14b8a6);color:#fff;border-color:transparent;box-shadow:0 6px 16px rgba(16,185,129,.22)}
            .gc-shop .pager{display:flex;gap:8px;justify-content:center;margin-top:18px}
            .gc-shop .pager a{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:none;background:#fff;border-radius:10px;text-decoration:none;color:#0f172a;font-weight:700}
            .gc-shop .pager a.active{background:#111827;color:#fff}
            
            /* Promo Cards - Modern Design con fondos decorativos */
            .gc-shop .promo-card{
                /* Fondo base con patrones decorativos superpuestos */
                background-color: var(--promo-bg);
                background-image: 
                    /* Cuadrícula más visible */
                    linear-gradient(rgba(255,255,255,0.08) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,0.08) 1px, transparent 1px),
                    /* Mesh gradients */
                    radial-gradient(at 85% 5%, rgba(255,255,255,0.35) 0px, transparent 45%), 
                    radial-gradient(at 5% 95%, rgba(0,0,0,0.25) 0px, transparent 45%),
                    radial-gradient(at 50% 50%, color-mix(in srgb, var(--promo-accent) 25%, transparent) 0%, transparent 55%),
                    linear-gradient(145deg, rgba(255,255,255,0.12) 0%, transparent 35%, rgba(0,0,0,0.15) 100%);
                background-size: 25px 25px, 25px 25px, 100% 100%, 100% 100%, 100% 100%, 100% 100%;
                
                color: var(--promo-text);
                position: relative;
                overflow: hidden;
                display: flex;
                flex-direction: column;
                border-radius: 20px;
                
                /* Borde glassy con brillo */
                border: 2px solid rgba(255,255,255,0.2);
                box-shadow: 
                    0 15px 35px -10px rgba(0,0,0,0.25), 
                    inset 0 1px 0 rgba(255,255,255,0.2),
                    inset 0 -1px 0 rgba(0,0,0,0.1);
                
                transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s ease, border-color 0.25s ease;
                will-change: transform, box-shadow;
                transform: translateZ(0);
                backface-visibility: hidden;
            }
            
            /* Estilo especial para Cupones: Borde "Ticket" discontinuo llamativo */
            .gc-shop .promo-card.promo-type-cupon {
                border: 2px dashed rgba(255,255,255,0.7);
                box-shadow: 0 10px 20px -5px rgba(0,0,0,0.15); /* Sin inset border para que se vea limpio */
            }

            /* Estado base estable: sin scale permanente para no desbordar la celda del grid */
            .gc-shop .promo-card{
                transform:none;
                z-index:1;
                border-color:rgba(255,255,255,0.45);
                box-shadow:
                    0 12px 24px -10px rgba(0,0,0,0.22),
                    0 0 0 1px rgba(255,255,255,0.08);
            }
            
            /* Hover especial para Cupones (Glow más contenido) */
            .gc-shop .promo-card.promo-type-cupon {
                border-color: rgba(255,255,255,0.7);
                box-shadow:
                    0 14px 24px -10px rgba(0,0,0,0.24),
                    0 0 12px color-mix(in srgb, var(--promo-accent) 70%, transparent);
            }
            /* ========== DECORATIVOS FLOTANTES DISPERSOS POR TIPO ========== */
            /* Ocultar el after base - usaremos elementos HTML adicionales */
            .gc-shop .promo-card-inner::after {
                content: none;
            }
            
            /* Ocultar emojis CSS por defecto cuando hay emojis personalizados */
            .gc-shop .promo-card.has-custom-emojis .promo-card-link::before,
            .gc-shop .promo-card.has-custom-emojis .promo-card-link::after,
            .gc-shop .promo-card.has-custom-emojis .promo-card-inner::before {
                content: none !important;
            }
            
            /* Elementos flotantes usando el link como contenedor */
            .gc-shop .promo-card-link::before,
            .gc-shop .promo-card-link::after,
            .gc-shop .promo-card-inner::before {
                position: absolute;
                pointer-events: none;
                z-index: 0;
                font-size: 28px;
                opacity: 0.6;
                filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
            }
            
            /* ===== PROMOCIÓN: Regalos y estrellas dispersos ===== */
            .gc-shop .promo-card.promo-type-promocion .promo-card-link::before {
                content: '🎁';
                top: 12%;
                left: 8%;
                font-size: 32px;
                animation: float-gift 6s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-promocion .promo-card-link::after {
                content: '⭐';
                bottom: 15%;
                right: 10%;
                font-size: 26px;
                animation: float-star 4s ease-in-out infinite 0.5s;
            }
            @keyframes float-gift {
                0%, 100% { transform: translateY(0) rotate(-5deg); }
                50% { transform: translateY(-12px) rotate(5deg); }
            }
            @keyframes float-star {
                0%, 100% { transform: translateY(0) rotate(0deg) scale(1); }
                50% { transform: translateY(-8px) rotate(15deg) scale(1.1); }
            }
            @keyframes twinkle {
                0%, 100% { opacity: 0.5; transform: scale(1); }
                50% { opacity: 1; transform: scale(1.2); }
            }
            
            /* ===== CUPÓN: Tijeras y tickets ===== */
            .gc-shop .promo-card.promo-type-cupon .promo-card-link::before {
                content: '✂️';
                top: 10%;
                right: 12%;
                font-size: 30px;
                animation: snip 1.5s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-cupon .promo-card-link::after {
                content: '🎟️';
                bottom: 12%;
                left: 10%;
                font-size: 28px;
                animation: ticket-float 5s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-cupon .promo-card-inner::before {
                content: '%';
                top: 15%;
                left: 15%;
                font-size: 42px;
                font-weight: 900;
                font-family: 'Poppins', sans-serif;
                color: rgba(255,255,255,0.4);
                text-shadow: 0 0 20px var(--promo-accent);
                animation: percent-pulse 3s ease-in-out infinite;
            }
            @keyframes snip {
                0%, 100% { transform: rotate(0deg); }
                25% { transform: rotate(-15deg); }
                75% { transform: rotate(15deg); }
            }
            @keyframes ticket-float {
                0%, 100% { transform: translateY(0) rotate(-3deg); }
                50% { transform: translateY(-10px) rotate(3deg); }
            }
            @keyframes percent-pulse {
                0%, 100% { transform: scale(1); opacity: 0.4; }
                50% { transform: scale(1.15); opacity: 0.6; }
            }
            
            /* ===== CATEGORÍA: Shopping bags ===== */
            .gc-shop .promo-card.promo-type-categoria .promo-card-link::before {
                content: '🛍️';
                top: 10%;
                left: 12%;
                font-size: 30px;
                animation: bag-swing 4s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-categoria .promo-card-link::after {
                content: '👗';
                bottom: 18%;
                right: 8%;
                font-size: 26px;
                animation: dress-float 5s ease-in-out infinite 0.3s;
            }
            .gc-shop .promo-card.promo-type-categoria .promo-card-inner::before {
                content: '👠';
                top: 20%;
                right: 18%;
                font-size: 24px;
                animation: shoe-tilt 3s ease-in-out infinite;
            }
            @keyframes bag-swing {
                0%, 100% { transform: rotate(-8deg); }
                50% { transform: rotate(8deg); }
            }
            @keyframes dress-float {
                0%, 100% { transform: translateY(0) translateX(0); }
                50% { transform: translateY(-8px) translateX(5px); }
            }
            @keyframes shoe-tilt {
                0%, 100% { transform: rotate(-5deg) scale(1); }
                50% { transform: rotate(10deg) scale(1.05); }
            }
            
            /* ===== REDES: Corazones y likes ===== */
            .gc-shop .promo-card.promo-type-redes .promo-card-link::before {
                content: '❤️';
                top: 8%;
                right: 15%;
                font-size: 32px;
                animation: heart-beat 1.2s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-redes .promo-card-link::after {
                content: '💬';
                bottom: 15%;
                left: 12%;
                font-size: 26px;
                animation: bubble-pop 3s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-redes .promo-card-inner::before {
                content: '🔔';
                top: 18%;
                left: 10%;
                font-size: 24px;
                animation: bell-ring 2s ease-in-out infinite;
            }
            @keyframes heart-beat {
                0%, 100% { transform: scale(1); }
                15% { transform: scale(1.25); }
                30% { transform: scale(1); }
                45% { transform: scale(1.15); }
            }
            @keyframes bubble-pop {
                0%, 100% { transform: scale(1) translateY(0); opacity: 0.6; }
                50% { transform: scale(1.1) translateY(-5px); opacity: 0.8; }
            }
            @keyframes bell-ring {
                0%, 100% { transform: rotate(0deg); }
                10% { transform: rotate(15deg); }
                20% { transform: rotate(-15deg); }
                30% { transform: rotate(10deg); }
                40% { transform: rotate(-10deg); }
                50% { transform: rotate(0deg); }
            }
            
            /* ===== NEWSLETTER: Sobres ===== */
            .gc-shop .promo-card.promo-type-newsletter .promo-card-link::before {
                content: '✉️';
                top: 12%;
                left: 10%;
                font-size: 30px;
                animation: envelope-fly 5s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-newsletter .promo-card-link::after {
                content: '💌';
                bottom: 12%;
                right: 12%;
                font-size: 28px;
                animation: letter-float 4s ease-in-out infinite 0.5s;
            }
            .gc-shop .promo-card.promo-type-newsletter .promo-card-inner::before {
                content: '@';
                top: 15%;
                right: 15%;
                font-size: 38px;
                font-weight: 700;
                color: rgba(255,255,255,0.35);
                animation: at-spin 8s linear infinite;
            }
            @keyframes envelope-fly {
                0%, 100% { transform: translateY(0) translateX(0) rotate(-5deg); }
                50% { transform: translateY(-15px) translateX(10px) rotate(5deg); }
            }
            @keyframes letter-float {
                0%, 100% { transform: translateY(0) rotate(0deg); }
                50% { transform: translateY(-10px) rotate(-8deg); }
            }
            @keyframes at-spin {
                0% { transform: rotate(0deg); }
                100% { transform: rotate(360deg); }
            }
            
            /* ===== BENEFICIO: Premium brillos ===== */
            .gc-shop .promo-card.promo-type-beneficio .promo-card-link::before {
                content: '👑';
                top: 8%;
                left: 50%;
                transform: translateX(-50%);
                font-size: 34px;
                animation: crown-glow 3s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-beneficio .promo-card-link::after {
                content: '💎';
                bottom: 15%;
                right: 12%;
                font-size: 28px;
                animation: diamond-sparkle 2s ease-in-out infinite;
            }
            .gc-shop .promo-card.promo-type-beneficio .promo-card-inner::before {
                content: '✨';
                top: 20%;
                left: 12%;
                font-size: 26px;
                animation: sparkle-burst 1.5s ease-in-out infinite;
            }
            @keyframes crown-glow {
                0%, 100% { filter: drop-shadow(0 0 8px rgba(255,215,0,0.6)); transform: translateX(-50%) translateY(0); }
                50% { filter: drop-shadow(0 0 20px rgba(255,215,0,0.9)); transform: translateX(-50%) translateY(-5px); }
            }
            @keyframes diamond-sparkle {
                0%, 100% { transform: scale(1) rotate(0deg); filter: brightness(1); }
                50% { transform: scale(1.15) rotate(10deg); filter: brightness(1.3); }
            }
            @keyframes sparkle-burst {
                0%, 100% { transform: scale(1); opacity: 0.5; }
                50% { transform: scale(1.4); opacity: 1; }
            }
            
            /* Orbes decorativos más visibles */
            /* Decorative pattern - Abstract Circle 1 (Orbe grande) */
            .gc-shop .promo-card::before{
                content: '';
                position: absolute;
                top: -20%;
                right: -20%;
                width: 90%;
                padding-bottom: 90%;
                background: 
                    radial-gradient(circle, rgba(255,255,255,0.18) 0%, transparent 55%),
                    radial-gradient(circle at 30% 30%, var(--promo-accent) 0%, transparent 45%);
                border-radius: 50%;
                pointer-events: none;
                opacity: 0.5;
                filter: blur(12px);
                transition: transform 0.6s ease;
                transform: translate(0,0);
            }
            /* Decorative pattern - Abstract Circle 2 (Glow de acento) */
            .gc-shop .promo-card::after{
                content: '';
                display: block;
                position: absolute;
                bottom: -15%;
                left: -15%;
                width: 80%;
                height: 80%;
                background: radial-gradient(circle, var(--promo-accent), transparent 60%);
                border-radius: 50%;
                opacity: 0.3;
                pointer-events: none;
                filter: blur(30px);
                transition: transform 0.6s ease, opacity 0.6s ease;
            }
            .gc-shop .promo-card::before{
                transform: translate(-10%, 10%) scale(1.15);
            }
            .gc-shop .promo-card::after{
                transform: translate(10%, -10%) scale(1.25);
                opacity: 0.35;
            }
            .gc-shop .promo-card-link{
                display: flex;
                flex-direction: column;
                height: 100%;
                text-decoration: none;
                color: inherit;
            }
            .gc-shop .promo-card-inner{
                display: flex;
                flex-direction: column;
                align-items: center;
                justify-content: center;
                text-align: center;
                padding: 40px 30px;
                flex: 1;
                gap: 20px;
                position: relative;
                z-index: 1;
                min-height: 0;
                backdrop-filter: blur(0px);
            }
            /* Icon 3D Bubble Style */
            .gc-shop .promo-card-icon{
                width: 100px;
                height: 100px;
                background: 
                    radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.6) 0%, transparent 50%),
                    radial-gradient(ellipse at 70% 80%, rgba(0,0,0,0.15) 0%, transparent 40%),
                    linear-gradient(145deg, 
                        color-mix(in srgb, var(--promo-accent) 100%, #fff 20%) 0%, 
                        var(--promo-accent) 50%, 
                        color-mix(in srgb, var(--promo-accent) 80%, #000) 100%);
                color: color-mix(in srgb, var(--promo-bg) 20%, #000);
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                position: relative;
                /* Sombra 3D profunda */
                box-shadow: 
                    0 12px 30px -5px rgba(0,0,0,0.35),
                    0 6px 12px -3px rgba(0,0,0,0.2),
                    inset 0 -4px 8px rgba(0,0,0,0.15),
                    inset 0 4px 8px rgba(255,255,255,0.3),
                    0 0 0 5px rgba(255,255,255,0.15);
                margin-bottom: 28px;
                transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
                animation: icon-float 4s ease-in-out infinite;
            }
            @keyframes icon-float {
                0%, 100% { transform: translateY(0) scale(1.08) rotate(5deg); }
                50% { transform: translateY(-6px) scale(1.1) rotate(3deg); }
            }
            /* Brillo superior del icono (efecto burbuja) */
            .gc-shop .promo-card-icon::before {
                content: '';
                position: absolute;
                top: 8%;
                left: 15%;
                width: 35%;
                height: 25%;
                background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 70%);
                border-radius: 50%;
                pointer-events: none;
            }
            .gc-shop .promo-card .promo-card-icon{
                transform: scale(1.08) rotate(5deg);
            }
            .gc-shop .promo-card-icon svg{
                width: 50px;
                height: 50px;
                filter: drop-shadow(0 3px 5px rgba(0,0,0,0.2));
                position: relative;
                z-index: 1;
            }
            .gc-shop .promo-card-title{
                font-family: 'Poppins', sans-serif;
                font-size: 32px;
                font-weight: 900;
                text-transform: uppercase;
                letter-spacing: 1px;
                line-height: 1.05;
                /* Gradiente de texto vibrante */
                background: linear-gradient(135deg, #fff 0%, var(--promo-accent) 50%, #fff 100%);
                background-size: 200% auto;
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                background-clip: text;
                /* Sombra detrás del texto */
                filter: drop-shadow(0 3px 6px rgba(0,0,0,0.25));
                margin: 0 0 12px 0;
                animation: title-shimmer 4s linear infinite;
            }
            @keyframes title-shimmer {
                0% { background-position: 200% center; }
                100% { background-position: -200% center; }
            }
            .gc-shop .promo-card-subtitle{
                font-family: 'Poppins', sans-serif;
                font-size: 17px;
                opacity: 1;
                font-weight: 600;
                line-height: 1.4;
                max-width: 90%;
                /* Colores alternos sutiles */
                background: linear-gradient(90deg, rgba(255,255,255,1) 0%, var(--promo-accent) 100%);
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                background-clip: text;
                filter: drop-shadow(0 1px 2px rgba(0,0,0,0.15));
            }
            .gc-shop .promo-card-code-wrap{
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 6px;
                margin-top: 10px;
                width: 100%;
            }
            .gc-shop .promo-card-code-label{
                font-size: 11px;
                text-transform: uppercase;
                letter-spacing: 1.5px;
                opacity: 0.9;
                font-weight: 700;
            }
            .gc-shop .promo-card-code{
                display: inline-flex;
                align-items: center;
                justify-content: center;
                padding: 12px 30px;
                
                /* Lados totalmente redondos (pill shape) */
                border-radius: 999px; 
                
                /* Borde de TIJERAS / CUPÓN (dashed más espaciado) */
                border: 2px dashed rgba(255,255,255,0.9);
                
                background: rgba(0,0,0,0.2); /* Fondo oscuro para resaltar */
                color: #fff;
                font-weight: 900;
                font-size: 18px;
                letter-spacing: 3px;
                text-transform: uppercase;
                font-family: monospace; /* Fuente mono para aspecto de código */
                box-shadow: 0 4px 10px rgba(0,0,0,0.1);
                
                position: relative;
                min-width: 140px;
            }
            /* Efecto "Cutout" en los extremos (simulado visualmente) */
            .gc-shop .promo-card-code::before,
            .gc-shop .promo-card-code::after {
                content: '✂';
                position: absolute;
                font-size: 12px;
                color: rgba(255,255,255,0.6);
                top: 50%;
                transform: translateY(-50%);
            }
            .gc-shop .promo-card-code::before { left: 6px; }
            .gc-shop .promo-card-code::after { right: 6px; transform: translateY(-50%) scaleX(-1); }
            
            /* Código: más brillante permanente */
            .gc-shop .promo-card .promo-card-code{
                background: rgba(255,255,255,0.15);
                border-color: #fff;
                box-shadow: 0 6px 15px rgba(0,0,0,0.2);
                transform: scale(1.05); /* Zoom sutil solo al código */
                transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
            }
            /* Modern Pill Button */
            .gc-shop .promo-card-btn{
                display: inline-flex;
                align-items: center;
                background: rgba(255,255,255,0.95);
                color: var(--promo-bg);
                padding: 14px 28px;
                border-radius: 99px;
                font-size: 14px;
                font-weight: 800;
                text-transform: uppercase;
                letter-spacing: 0.5px;
                margin-top: 24px;
                transition: all 0.2s ease;
                box-shadow: 0 4px 12px rgba(0,0,0,0.2);
            }
            .gc-shop .promo-card .promo-card-btn{
                transform: scale(1.05);
                box-shadow: 0 6px 15px rgba(0,0,0,0.3);
                background: #fff;
            }
            
            /* Animaciones continuas (CSS-only) para dar vida sin hover */
            @keyframes orb1-drift {
                0%   { transform: translate(-10%, 10%) scale(1.10); }
                50%  { transform: translate(-6%, 6%) scale(1.12); }
                100% { transform: translate(-12%, 12%) scale(1.08); }
            }
            @keyframes orb2-drift {
                0%   { transform: translate(10%, -10%) scale(1.20); opacity: 0.22; }
                50%  { transform: translate(14%, -6%)  scale(1.25); opacity: 0.28; }
                100% { transform: translate(8%,  -12%) scale(1.18); opacity: 0.20; }
            }
            @keyframes neonPulse {
                0%   { box-shadow: 0 20px 30px -8px rgba(0,0,0,0.3), 0 0 12px var(--promo-accent); }
                50%  { box-shadow: 0 22px 34px -8px rgba(0,0,0,0.35), 0 0 24px var(--promo-accent); }
                100% { box-shadow: 0 20px 30px -8px rgba(0,0,0,0.3), 0 0 12px var(--promo-accent); }
            }

            .gc-shop .promo-card::before{ animation: orb1-drift 14s ease-in-out infinite alternate; }
            .gc-shop .promo-card::after{ animation: orb2-drift 16s ease-in-out infinite alternate; }
            .gc-shop .promo-card.promo-type-cupon{ animation: neonPulse 6s ease-in-out infinite; }

            /* ========== PATRONES DE FONDO CONFIGURABLES ========== */
            /* Patrón: Cuadrícula (default) */
            .gc-shop .promo-card.promo-patron-grid {
                background-image: 
                    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px),
                    radial-gradient(at 88% 0%, rgba(255,255,255,0.25) 0px, transparent 50%), 
                    radial-gradient(at 0% 100%, rgba(0,0,0,0.2) 0px, transparent 50%),
                    radial-gradient(at 50% 50%, color-mix(in srgb, var(--promo-accent) 15%, transparent) 0%, transparent 60%);
                background-size: 20px 20px, 20px 20px, 100% 100%, 100% 100%, 100% 100%;
            }
            /* Patrón: Estrellas */
            .gc-shop .promo-card.promo-patron-stars .promo-card-inner::after {
                content: '✦ ★ ✧ ⋆ ✦ ★ ✧ ⋆ ✦ ★';
                font-size: 16px;
                letter-spacing: 25px;
                line-height: 50px;
                color: rgba(255,255,255,0.1);
                animation: stars-twinkle 3s ease-in-out infinite alternate;
            }
            @keyframes stars-twinkle {
                0% { opacity: 0.6; }
                100% { opacity: 1; }
            }
            /* Patrón: Confites */
            .gc-shop .promo-card.promo-patron-confetti .promo-card-inner::after {
                content: '🎊 ✨ 🎉 💫 ⭐ 🌟 ✨ 🎊 💫 🎉';
                font-size: 18px;
                letter-spacing: 20px;
                line-height: 45px;
                animation: confetti-fall 8s linear infinite;
            }
            @keyframes confetti-fall {
                0% { transform: translateY(-20%) rotate(0deg); }
                100% { transform: translateY(20%) rotate(10deg); }
            }
            /* Patrón: Puntos */
            .gc-shop .promo-card.promo-patron-dots {
                background-image: 
                    radial-gradient(circle at 10px 10px, rgba(255,255,255,0.08) 3px, transparent 3px),
                    radial-gradient(at 88% 0%, rgba(255,255,255,0.25) 0px, transparent 50%), 
                    radial-gradient(at 0% 100%, rgba(0,0,0,0.2) 0px, transparent 50%);
                background-size: 25px 25px, 100% 100%, 100% 100%;
            }
            /* Patrón: Sin patrón */
            .gc-shop .promo-card.promo-patron-none .promo-card-inner::after {
                content: none;
            }

            /* ========== ESTILOS DE TÍTULO CONFIGURABLES ========== */
            /* Estilo: Gradiente animado (default) */
            .gc-shop .promo-card.promo-title-gradient .promo-card-title {
                background: linear-gradient(135deg, #fff 0%, var(--promo-accent) 50%, #fff 100%);
                background-size: 200% auto;
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                animation: title-shimmer 4s linear infinite;
            }
            /* Estilo: Color sólido */
            .gc-shop .promo-card.promo-title-solid .promo-card-title {
                background: none;
                -webkit-text-fill-color: var(--promo-text);
                text-shadow: 0 3px 8px rgba(0,0,0,0.25);
            }
            /* Estilo: Arcoíris */
            .gc-shop .promo-card.promo-title-rainbow .promo-card-title {
                background: linear-gradient(90deg, #ff6b6b, #feca57, #48dbfb, #ff9ff3, #54a0ff, #5f27cd);
                background-size: 300% auto;
                -webkit-background-clip: text;
                -webkit-text-fill-color: transparent;
                animation: rainbow-flow 5s linear infinite;
            }
            @keyframes rainbow-flow {
                0% { background-position: 0% center; }
                100% { background-position: 300% center; }
            }
            /* Estilo: Neón brillante */
            .gc-shop .promo-card.promo-title-neon .promo-card-title {
                background: none;
                -webkit-text-fill-color: #fff;
                text-shadow: 
                    0 0 5px var(--promo-accent),
                    0 0 10px var(--promo-accent),
                    0 0 20px var(--promo-accent),
                    0 0 40px var(--promo-accent);
                animation: neon-glow 2s ease-in-out infinite alternate;
            }
            @keyframes neon-glow {
                0% { text-shadow: 0 0 5px var(--promo-accent), 0 0 10px var(--promo-accent), 0 0 20px var(--promo-accent); }
                100% { text-shadow: 0 0 10px var(--promo-accent), 0 0 20px var(--promo-accent), 0 0 40px var(--promo-accent), 0 0 60px var(--promo-accent); }
            }

            /* Neutralizar efectos de :hover genéricos en .card para promo-card */
            .gc-shop .promo-card:hover {
                transform: scale(1.03) !important;
                box-shadow: 
                    0 18px 28px -8px rgba(0,0,0,0.3),
                    0 0 0 3px var(--promo-accent) !important;
            }
            .gc-shop .promo-card.promo-type-cupon:hover {
                transform: scale(1.03) !important;
                box-shadow: 
                    0 20px 30px -8px rgba(0,0,0,0.3),
                    0 0 20px var(--promo-accent) !important;
                border-color: #fff !important;
            }
            
            /* Promo cards - Diferentes tamaños */
            /* xs = mini (solo icono) */
            .gc-shop .promo-card.promo-size-xs .promo-card-inner{padding:15px;gap:8px;min-height:0}
            .gc-shop .promo-card.promo-size-xs .promo-card-icon{width:48px;height:48px;margin-bottom:0}
            .gc-shop .promo-card.promo-size-xs .promo-card-icon svg{width:24px;height:24px}
            .gc-shop .promo-card.promo-size-xs .promo-card-title{font-size:14px;margin:0}
            .gc-shop .promo-card.promo-size-xs .promo-card-subtitle{font-size:11px}
            .gc-shop .promo-card.promo-size-xs .promo-card-btn{font-size:10px;padding:6px 12px;margin-top:8px}
            .gc-shop .promo-card.promo-size-xs .promo-card-inner::before{display:none}
            
            /* sm = pequeño */
            .gc-shop .promo-card.promo-size-sm .promo-card-inner{padding:20px 15px;gap:12px;min-height:0}
            .gc-shop .promo-card.promo-size-sm .promo-card-icon{width:56px;height:56px;margin-bottom:8px}
            .gc-shop .promo-card.promo-size-sm .promo-card-icon svg{width:28px;height:28px}
            .gc-shop .promo-card.promo-size-sm .promo-card-title{font-size:18px}
            .gc-shop .promo-card.promo-size-sm .promo-card-subtitle{font-size:13px}
            .gc-shop .promo-card.promo-size-sm .promo-card-btn{font-size:11px;padding:8px 16px;margin-top:12px}
            .gc-shop .promo-card.promo-size-sm .promo-card-inner::before{display:none}
            
            /* normal = estándar (hereda del base) */
            
            /* lg = grande */
            .gc-shop .promo-card.promo-size-lg .promo-card-inner{padding:50px 40px;gap:24px}
            .gc-shop .promo-card.promo-size-lg .promo-card-icon{width:110px;height:110px}
            .gc-shop .promo-card.promo-size-lg .promo-card-icon svg{width:55px;height:55px}
            .gc-shop .promo-card.promo-size-lg .promo-card-title{font-size:32px}
            .gc-shop .promo-card.promo-size-lg .promo-card-subtitle{font-size:18px}
            .gc-shop .promo-card.promo-size-lg .promo-card-btn{font-size:16px;padding:16px 36px}
            
            /* wide = 2 columnas */
            .gc-shop .promo-card.promo-size-wide{grid-column:span 2}
            .gc-shop .promo-card.promo-size-wide .promo-card-inner{flex-direction:row;text-align:left;padding:40px 50px;gap:30px}
            .gc-shop .promo-card.promo-size-wide .promo-card-icon{flex-shrink:0;margin-bottom:0}
            .gc-shop .promo-card.promo-size-wide .promo-card-title{font-size:28px}
            .gc-shop .promo-card.promo-size-wide .promo-card-subtitle{font-size:16px}
            .gc-shop .promo-card.promo-size-wide .promo-card-inner::before{display:none}
            
            /* tall = 2 filas (ahora ocupa 1 sola para no romper el grid) */
            .gc-shop .promo-card.promo-size-tall{grid-row:span 1}
            .gc-shop .promo-card.promo-size-tall .promo-card-inner{padding:24px 20px;gap:16px}
            .gc-shop .promo-card.promo-size-tall .promo-card-icon{width:120px;height:120px}
            .gc-shop .promo-card.promo-size-tall .promo-card-icon svg{width:60px;height:60px}
            .gc-shop .promo-card.promo-size-tall .promo-card-title{font-size:36px}
            .gc-shop .promo-card.promo-size-tall .promo-card-subtitle{font-size:18px;max-width:100%}
            .gc-shop .promo-card.promo-size-tall .promo-card-btn{font-size:16px;padding:18px 40px}
            
            /* xl = 2 columnas (antes 2x2, ahora ocupa solo 1 fila para encajar) */
            .gc-shop .promo-card.promo-size-xl{grid-column:span 2;grid-row:span 1}
            .gc-shop .promo-card.promo-size-xl .promo-card-inner{padding:24px 28px;gap:16px}
            .gc-shop .promo-card.promo-size-xl .promo-card-icon{width:80px;height:80px}
            .gc-shop .promo-card.promo-size-xl .promo-card-icon svg{width:40px;height:40px}
            .gc-shop .promo-card.promo-size-xl .promo-card-title{font-size:24px}
            .gc-shop .promo-card.promo-size-xl .promo-card-subtitle{font-size:14px}
            .gc-shop .promo-card.promo-size-xl .promo-card-btn{font-size:13px;padding:10px 22px}
            
            /* Formatos (aspect ratio) - promo-format-* */
            /* normal = 1:1 (cuadrado, por defecto) - no forzar aspect-ratio para flexibilidad */
            
            /* wide = 2:1 (horizontal, ancho) */
            .gc-shop .promo-card.promo-format-wide{grid-column:span 2}
            .gc-shop .promo-card.promo-format-wide .promo-card-inner{min-height:auto;flex-direction:row;text-align:left;padding:30px 40px;gap:24px;align-items:center}
            .gc-shop .promo-card.promo-format-wide .promo-card-icon{flex-shrink:0;margin-bottom:0}
            .gc-shop .promo-card.promo-format-wide .promo-card-btn{margin-top:auto}
            
            /* tall = 1:2 (vertical, alto) -> 1 fila para no romper el grid */
            .gc-shop .promo-card.promo-format-tall{grid-row:span 1}
            .gc-shop .promo-card.promo-format-tall .promo-card-inner{min-height:auto;padding:24px 20px;gap:16px;justify-content:center}

            /* En el listado, cada promo ocupa exactamente una celda.
               El algoritmo de inserción/fill cuenta 1 card por item y los spans rompen filas/columnas. */
            .gc-shop .promo-card{grid-column:span 1 !important;grid-row:span 1 !important;align-self:stretch}
            .gc-shop .promo-card-link{display:flex;height:100%}
            .gc-shop .promo-card-inner,
            .gc-shop .promo-card.promo-size-wide .promo-card-inner,
            .gc-shop .promo-card.promo-size-xl .promo-card-inner,
            .gc-shop .promo-card.promo-format-wide .promo-card-inner,
            .gc-shop .promo-card.promo-format-tall .promo-card-inner{
                min-height:0;
                height:100%;
                flex-direction:column;
                text-align:center;
                align-items:center;
                justify-content:center;
                padding:18px 16px;
                gap:10px;
            }
            .gc-shop .promo-card .promo-card-icon{width:56px;height:56px;margin-bottom:6px}
            .gc-shop .promo-card .promo-card-icon svg{width:28px;height:28px}
            .gc-shop .promo-card .promo-card-title{font-size:18px;line-height:1.08;margin:0}
            .gc-shop .promo-card .promo-card-subtitle{font-size:12px;line-height:1.3;max-width:100%}
            .gc-shop .promo-card .promo-card-code-wrap{gap:4px;margin-top:4px}
            .gc-shop .promo-card .promo-card-code-label{font-size:10px;letter-spacing:1px}
            .gc-shop .promo-card .promo-card-code{font-size:13px;padding:8px 16px;letter-spacing:1.2px;min-width:0}
            .gc-shop .promo-card .promo-card-btn{font-size:11px;padding:8px 16px;margin-top:8px}

            /* ===== Cards promocionales 100% imagen (rediseño) ===== */
            /* Quitar emojis/decorativos del sistema viejo sobre las cards de imagen */
            .gc-shop .promo-card.promo-card-image::before,
            .gc-shop .promo-card.promo-card-image::after,
            .gc-shop .promo-card.promo-card-image .promo-card-link::before,
            .gc-shop .promo-card.promo-card-image .promo-card-link::after{ content:none !important; display:none !important; }
            /* La forma de la card SIGUE al formato (1:1 / 16:9 / 3:4). La imagen, ajustada
               por IA a esa misma proporción, llena la card sin recorte (object-fit:cover). */
            .gc-shop .promo-card.promo-card-image{
                aspect-ratio:1/1;
                align-self:start;
                height:auto;
                position:relative;
                overflow:hidden;
                border:1px solid rgba(0,0,0,0.06);
                background:#0f172a;
                background-image:none;
                padding:0;
            }
            .gc-shop .promo-card.promo-card-image.promo-format-wide{ aspect-ratio:16/9; }
            .gc-shop .promo-card.promo-card-image.promo-format-tall{ aspect-ratio:11/16; }
            .gc-shop .promo-card.promo-card-image.promo-type-cupon{ border:1px solid rgba(0,0,0,0.06); box-shadow:none; }
            /* Empaquetado denso: rellena los huecos que dejan las promos que ocupan varias
               celdas (16:9 = 3 anchos, 1:1 = 2x2), reacomodando productos para que no queden blancos. */
            .gc-shop .grid:not(.gc-masonry){ grid-auto-flow:row dense; }
            /* 16:9 en desktop = banner de 3 cards de ancho a la altura de una fila de productos
               (no a pantalla completa). align-self:stretch lo iguala al alto de la fila. */
            .gc-shop .grid:not(.gc-masonry) .promo-card.promo-card-image.promo-format-wide{
                grid-column:span 3 !important;
                align-self:stretch;
                aspect-ratio:auto;
                height:auto;
            }
            @media(max-width:1100px){
                .gc-shop .grid:not(.gc-masonry) .promo-card.promo-card-image.promo-format-wide{ grid-column:span 2 !important; }
            }
            /* 1:1 en desktop = bloque grande de 6 cards (3 columnas x 2 filas) */
            .gc-shop .grid:not(.gc-masonry) .promo-card.promo-card-image.promo-format-normal{
                grid-column:span 3 !important;
                grid-row:span 2 !important;
                align-self:stretch;
                aspect-ratio:auto;
                height:auto;
            }
            @media(max-width:1100px){
                .gc-shop .grid:not(.gc-masonry) .promo-card.promo-card-image.promo-format-normal{ grid-column:span 2 !important; grid-row:span 2 !important; }
            }
            /* 3:4 en desktop = 1 card que se estira al alto de la fila (sin gap abajo).
               El aspect-ratio 3:4 solo aplica en masonry (móvil), donde la card define su alto. */
            .gc-shop .grid:not(.gc-masonry) .promo-card.promo-card-image.promo-format-tall{
                align-self:stretch;
                aspect-ratio:auto;
                height:auto;
            }
            .gc-shop .promo-card.promo-card-image .promo-card-link{ display:block; width:100%; height:100%; padding:0; }
            .gc-shop .promo-card.promo-card-image .promo-card-img{ width:100%; height:100%; object-fit:cover; display:block; }

            /* Combinaciones de tamaños pequeños con formatos */
            /* xs + wide */
            .gc-shop .promo-card.promo-size-xs.promo-format-wide .promo-card-inner{padding:12px 20px;gap:12px}
            .gc-shop .promo-card.promo-size-xs.promo-format-wide .promo-card-title{font-size:16px}
            .gc-shop .promo-card.promo-size-xs.promo-format-wide .promo-card-subtitle{font-size:12px}
            .gc-shop .promo-card.promo-size-xs.promo-format-wide .promo-card-btn{font-size:10px;padding:6px 14px}
            /* xs + tall */
            .gc-shop .promo-card.promo-size-xs.promo-format-tall .promo-card-inner{padding:20px 15px;gap:14px}
            .gc-shop .promo-card.promo-size-xs.promo-format-tall .promo-card-title{font-size:16px}
            .gc-shop .promo-card.promo-size-xs.promo-format-tall .promo-card-subtitle{font-size:12px}
            .gc-shop .promo-card.promo-size-xs.promo-format-tall .promo-card-btn{font-size:10px;padding:8px 16px}
            /* sm + wide */
            .gc-shop .promo-card.promo-size-sm.promo-format-wide .promo-card-inner{padding:16px 24px;gap:16px}
            .gc-shop .promo-card.promo-size-sm.promo-format-wide .promo-card-title{font-size:20px}
            .gc-shop .promo-card.promo-size-sm.promo-format-wide .promo-card-btn{font-size:11px;padding:8px 18px}
            /* sm + tall */
            .gc-shop .promo-card.promo-size-sm.promo-format-tall .promo-card-inner{padding:24px 18px;gap:16px}
            .gc-shop .promo-card.promo-size-sm.promo-format-tall .promo-card-title{font-size:20px}
            .gc-shop .promo-card.promo-size-sm.promo-format-tall .promo-card-btn{font-size:12px;padding:10px 20px}
            
            /* Responsive para formatos en móvil */
            @media (max-width: 820px) {
                .gc-shop .promo-card.promo-format-wide{grid-column:span 2}
                .gc-shop .promo-card.promo-format-wide .promo-card-inner{flex-direction:column;text-align:center;min-height:0;padding:18px 14px;gap:10px}
                .gc-shop .promo-card.promo-format-tall{grid-row:span 1}
                .gc-shop .promo-card.promo-format-tall .promo-card-inner{min-height:auto}
            }
            
            /* Responsive para tamaños especiales en móvil */
            @media (max-width: 820px) {
                /* Ajuste general para móvil: reducir un poco pero mantener grande */
                .gc-shop .promo-card-inner{min-height:0;padding:18px 14px;gap:10px}
                .gc-shop .promo-card-icon{width:70px;height:70px;margin-bottom:16px}
                .gc-shop .promo-card-icon svg{width:35px;height:35px}
                .gc-shop .promo-card-title{font-size:22px}
                .gc-shop .promo-card-subtitle{font-size:14px}
                .gc-shop .promo-card-btn{font-size:12px;padding:12px 24px;margin-top:16px}
                .gc-shop .promo-card-code-label{font-size:11px}
                .gc-shop .promo-card-code{font-size:14px;padding:8px 18px;letter-spacing:1.5px}
            }
            @media (max-width: 520px) {
                .gc-shop .promo-card-inner{min-height:0;padding:16px 12px;gap:8px}
                .gc-shop .promo-card-icon{width:64px;height:64px;margin-bottom:14px}
                .gc-shop .promo-card-icon svg{width:32px;height:32px}
                .gc-shop .promo-card-title{font-size:20px}
                .gc-shop .promo-card-subtitle{font-size:13px}
                .gc-shop .promo-card-btn{font-size:12px;padding:10px 20px;margin-top:14px}
                .gc-shop .promo-card-code-label{font-size:10px}
                .gc-shop .promo-card-code{font-size:13px;padding:8px 16px;letter-spacing:1.2px}
                
                .gc-shop .promo-card.promo-size-wide{grid-column:span 2}
                .gc-shop .promo-card.promo-size-wide .promo-card-inner{flex-direction:column;text-align:center;padding:24px;gap:14px}
                .gc-shop .promo-card.promo-size-tall{grid-row:span 1}
                .gc-shop .promo-card.promo-size-xl{grid-column:span 2;grid-row:span 1}
                .gc-shop .promo-card.promo-size-xl .promo-card-inner{padding:30px;gap:16px}
                .gc-shop .promo-card.promo-size-xl .promo-card-icon{width:80px;height:80px}
                .gc-shop .promo-card.promo-size-xl .promo-card-icon svg{width:40px;height:40px}
                .gc-shop .promo-card.promo-size-xl .promo-card-title{font-size:24px}
                .gc-shop .promo-card.promo-size-xl .promo-card-btn{font-size:13px;padding:12px 24px}
            }
            
            /* Desktop/Horizontal: tamaños proporcionales según ancho de pantalla */
            
            /* Monitores muy grandes (1400px+) */
            @media (min-width: 1400px) and (orientation: landscape) {
                .gc-shop .name{font-size:13px}
                .gc-shop .price{font-size:15px}
                .gc-shop .old{font-size:10px}
                .gc-shop .disc-pct{font-size:10px}
                .gc-shop .stars .star-icon{width:12px;height:12px}
                .gc-shop .rating-val{font-size:11px}
                .gc-shop .rating-sep{font-size:10px}
                .gc-shop .sold-inline{font-size:11px}
                .gc-shop .bestseller-row span:last-child{font-size:11px}
                .gc-shop .fire-circle{width:15px;height:15px}
                .gc-shop .fire-circle svg{width:9px;height:9px}
                .gc-shop .free-badge{font-size:11px;padding:2px 6px}
            }
            
            /* Monitores medianos (1200px - 1399px) */
            @media (min-width: 1200px) and (max-width: 1399px) and (orientation: landscape) {
                .gc-shop .name{font-size:12px}
                .gc-shop .price{font-size:14px}
                .gc-shop .old{font-size:9px}
                .gc-shop .disc-pct{font-size:9px}
                .gc-shop .stars .star-icon{width:11px;height:11px}
                .gc-shop .rating-val{font-size:10px}
                .gc-shop .rating-sep{font-size:9px}
                .gc-shop .sold-inline{font-size:10px}
                .gc-shop .bestseller-row span:last-child{font-size:10px}
                .gc-shop .fire-circle{width:14px;height:14px}
                .gc-shop .fire-circle svg{width:8px;height:8px}
                .gc-shop .free-badge{font-size:10px;padding:2px 5px}
            }
            
            /* Monitores pequeños / laptops (992px - 1199px) */
            @media (min-width: 992px) and (max-width: 1199px) and (orientation: landscape) {
                .gc-shop .name{font-size:11px}
                .gc-shop .price{font-size:13px}
                .gc-shop .old{font-size:9px}
                .gc-shop .disc-pct{font-size:9px}
                .gc-shop .stars .star-icon{width:10px;height:10px}
                .gc-shop .rating-val{font-size:9px}
                .gc-shop .rating-sep{font-size:8px}
                .gc-shop .sold-inline{font-size:9px}
                .gc-shop .bestseller-row span:last-child{font-size:9px}
                .gc-shop .fire-circle{width:13px;height:13px}
                .gc-shop .fire-circle svg{width:7px;height:7px}
                .gc-shop .free-badge{font-size:9px;padding:2px 5px}
            }
            
            /* Tablets horizontal (768px - 991px) */
            @media (min-width: 768px) and (max-width: 991px) and (orientation: landscape) {
                .gc-shop .name{font-size:10px}
                .gc-shop .price{font-size:12px}
                .gc-shop .old{font-size:8px}
                .gc-shop .disc-pct{font-size:8px}
                .gc-shop .stars .star-icon{width:9px;height:9px}
                .gc-shop .rating-val{font-size:8px}
                .gc-shop .rating-sep{font-size:7px}
                .gc-shop .sold-inline{font-size:8px}
                .gc-shop .bestseller-row span:last-child{font-size:8px}
                .gc-shop .fire-circle{width:12px;height:12px}
                .gc-shop .fire-circle svg{width:7px;height:7px}
                .gc-shop .free-badge{font-size:8px;padding:2px 4px}
                .gc-shop .fire-icon-inline svg{width:10px;height:10px}
            }
            
            /* Tablets horizontal pequeñas (601px - 767px) */
            @media (min-width: 601px) and (max-width: 767px) and (orientation: landscape) {
                .gc-shop .name{font-size:9px}
                .gc-shop .price{font-size:11px}
                .gc-shop .old{font-size:7px}
                .gc-shop .disc-pct{font-size:7px}
                .gc-shop .stars .star-icon{width:8px;height:8px}
                .gc-shop .rating-val{font-size:7px}
                .gc-shop .rating-sep{font-size:6px}
                .gc-shop .sold-inline{font-size:7px}
                .gc-shop .bestseller-row span:last-child{font-size:7px}
                .gc-shop .fire-circle{width:10px;height:10px}
                .gc-shop .fire-circle svg{width:6px;height:6px}
                .gc-shop .free-badge{font-size:7px;padding:1px 3px}
                .gc-shop .fire-icon-inline svg{width:9px;height:9px}
            }
            
            /* Mobile/Portrait: reorganizar cards */
            
            /* Móvil grande / tablet vertical (481px - 600px) */
            @media (max-width: 600px) and (min-width: 481px), (orientation: portrait) and (max-width: 900px) and (min-width: 601px) {
                /* Botón carrito */
                .gc-shop .btn-circle{width:32px;height:32px}
                .gc-shop .btn-circle svg{width:15px;height:15px}
                .gc-shop .quick-add.overlay{right:6px;bottom:6px}
                .gc-shop .grid{padding-bottom:88px}
                
                /* Bestseller row */
                .gc-shop .bestseller-row{margin-top:3px;flex-wrap:nowrap;overflow:hidden}
                .gc-shop .fire-circle{width:16px;height:16px}
                .gc-shop .fire-circle svg{width:9px;height:9px}
                .gc-shop .bestseller-row span:last-child{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
                
                /* Body del card - reservar espacio inferior para el botón del carrito */
                .gc-shop .body{padding:6px 10px 34px;gap:2px;display:flex;flex-direction:column}
                .gc-shop .price-block{order:1;gap:0}
                .gc-shop .title-row{order:2;flex-direction:row;align-items:center;gap:4px;margin-top:1px;flex-wrap:wrap}
                .gc-shop .actions{order:3}
                .gc-shop .marca-badge{order:4;margin-top:3px}
                
                /* SIN envío gratis: fuego a la izquierda del título (mismo nivel) */
                .gc-shop .title-row .name{order:2;flex:1}
                .gc-shop .title-row .fire-icon-inline{order:1}
                
                /* CON envío gratis: título arriba, fuego+badge abajo */
                .gc-shop .title-row.has-shipping .name{order:1;flex-basis:100%}
                .gc-shop .title-row.has-shipping .fire-icon-inline{order:2}
                .gc-shop .title-row.has-shipping .free-badge{order:3}
                
                /* Precio */
                .gc-shop .price{font-size:16px}
                .gc-shop .old{font-size:11px;margin-left:4px}
                .gc-shop .disc-pct{font-size:10px}
                
                /* Estrellas */
                .gc-shop .stars .star-icon{width:11px;height:11px}
                .gc-shop .rating-val{font-size:10px;margin-left:2px}
                .gc-shop .rating-sep{font-size:9px}
                .gc-shop .sold-inline{font-size:10px}
                .gc-shop .rating-row{gap:3px;margin-top:2px}
                
                /* Título: una sola línea con elipsis a la izquierda del botón del carrito */
                .gc-shop .name{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}
                .gc-shop .title-row{flex-wrap:nowrap}
                .gc-shop .title-row.has-shipping{flex-wrap:wrap}
                
                /* Badge envío gratis */
                .gc-shop .free-badge{font-size:10px;padding:2px 5px}
                
                /* Fire icon inline */
                .gc-shop .fire-icon-inline svg{width:12px;height:12px}
            }
            
            /* Móvil pequeño (hasta 480px) */
            @media (max-width: 480px) {
                /* Botón carrito más pequeño */
                .gc-shop .btn-circle{width:28px;height:28px}
                .gc-shop .btn-circle svg{width:13px;height:13px}
                .gc-shop .quick-add.overlay{right:5px;bottom:5px}
                .gc-shop .grid{padding-bottom:88px}
                
                /* Bestseller row más pequeño en mobile */
                .gc-shop .bestseller-row{margin-top:2px;gap:4px;flex-wrap:nowrap;overflow:hidden}
                .gc-shop .fire-circle{width:14px;height:14px}
                .gc-shop .fire-circle svg{width:8px;height:8px}
                .gc-shop .bestseller-row span:last-child{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

                /* Body del card - reservar espacio inferior para el botón del carrito */
                .gc-shop .body{padding:4px 7px 30px;gap:1px;display:flex;flex-direction:column}
                .gc-shop .price-block{order:1;gap:0}
                .gc-shop .title-row{order:2;flex-direction:row;align-items:center;gap:3px;margin-top:1px;flex-wrap:wrap}
                .gc-shop .actions{order:3}
                .gc-shop .marca-badge{order:4;margin-top:2px}
                
                /* SIN envío gratis: fuego a la izquierda del título (mismo nivel) */
                .gc-shop .title-row .name{order:2;flex:1}
                .gc-shop .title-row .fire-icon-inline{order:1}
                
                /* CON envío gratis: título arriba, fuego+badge abajo */
                .gc-shop .title-row.has-shipping .name{order:1;flex-basis:100%}
                .gc-shop .title-row.has-shipping .fire-icon-inline{order:2}
                .gc-shop .title-row.has-shipping .free-badge{order:3}
                
                /* Precio mucho más pequeño */
                .gc-shop .price{font-size:13px}
                .gc-shop .old{font-size:9px;margin-left:3px}
                .gc-shop .disc-pct{display:none}
                
                /* Estrellas muchísimo más pequeñas */
                .gc-shop .stars .star-icon{width:8px;height:8px}
                .gc-shop .rating-val{font-size:8px;margin-left:1px}
                .gc-shop .rating-sep{font-size:7px}
                .gc-shop .sold-inline{font-size:8px}
                .gc-shop .rating-row{gap:2px;margin-top:0}
                
                /* Título más pequeño: una sola línea con elipsis */
                .gc-shop .name{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;min-width:0}
                .gc-shop .title-row{flex-wrap:nowrap}
                .gc-shop .title-row.has-shipping{flex-wrap:wrap}
                
                /* Badge envío gratis más pequeño */
                .gc-shop .free-badge{font-size:8px;padding:2px 4px}
                
                /* Fire icon inline */
                .gc-shop .fire-icon-inline svg{width:10px;height:10px}
            }
            
            /* Móvil muy pequeño (hasta 360px) */
            @media (max-width: 360px) {
                .gc-shop .btn-circle{width:32px;height:32px}
                .gc-shop .btn-circle svg{width:14px;height:14px}
                .gc-shop .price{font-size:12px}
                .gc-shop .old{font-size:8px}
                .gc-shop .name{font-size:8px}
                .gc-shop .stars .star-icon{width:7px;height:7px}
                .gc-shop .rating-val{font-size:7px}
                .gc-shop .sold-inline{font-size:7px}
                .gc-shop .bestseller-row{gap:3px}
                .gc-shop .bestseller-row span:last-child{font-size:9px}
                .gc-shop .fire-circle{width:12px;height:12px}
                .gc-shop .fire-circle svg{width:7px;height:7px}
                .gc-shop .free-badge{font-size:7px;padding:1px 3px}
                .gc-shop .fire-icon-inline svg{width:9px;height:9px}
            }
            
            /* Flying cart animation */
            .gc-fly{
                position:fixed;
                z-index:9999;
                pointer-events:none;
                width:40px;
                height:40px;
                border-radius:50%;
                background:linear-gradient(135deg,#10b981,#14b8a6);
                box-shadow:0 4px 16px rgba(16,185,129,.4);
                display:flex;
                align-items:center;
                justify-content:center;
            }
            .gc-fly svg{
                width:20px;
                height:20px;
                color:#fff;
            }

            /* +1 verde flotante al agregar */
            .gc-plus-one{ position:fixed; z-index:9998; pointer-events:none; color:#10b981; font-weight:800; font-size:18px; text-shadow:0 2px 6px rgba(16,185,129,.35); animation:gcPlusOne .9s cubic-bezier(.22,.61,.36,1) forwards; will-change:transform,opacity }
            @keyframes gcPlusOne{ 0%{ transform:translate(-50%,0) scale(.6); opacity:0 } 20%{ transform:translate(-50%,-12px) scale(1.15); opacity:1 } 100%{ transform:translate(-50%,-44px) scale(1); opacity:0 } }
            .gc-shop .btn-circle.is-depleted{ opacity:.4; cursor:not-allowed; filter:grayscale(.4) }
            
            /* No Products State */
            .gc-no-products {
                grid-column: 1 / -1;
                width: 100%;
                display: flex;
                flex-direction: row;
                align-items: center;
                justify-content: center;
                gap: 40px;
                padding: 60px 40px;
                text-align: left;
                background: #f8fafc;
                border: 2px dashed #e2e8f0;
                border-radius: 24px;
                margin: 20px 0;
                min-height: 200px;
                box-sizing: border-box;
            }
            .gc-no-products .icon-box {
                flex-shrink: 0;
                width: 80px;
                height: 80px;
                background: #fff;
                border-radius: 50%;
                display: flex;
                align-items: center;
                justify-content: center;
                box-shadow: 0 4px 12px rgba(0,0,0,0.05);
                border: 1px solid #f1f5f9;
            }
            .gc-no-products .content-box {
                display: flex;
                flex-direction: column;
                align-items: flex-start;
                max-width: 600px;
            }
            .gc-no-products svg {
                width: 40px;
                height: 40px;
                color: #94a3b8;
            }
            .gc-no-products h4 {
                font-size: 1.5rem;
                font-weight: 700;
                color: #1e293b;
                margin: 0 0 8px 0;
            }
            .gc-no-products p {
                font-size: 1.05rem;
                color: #64748b;
                margin: 0 0 24px 0;
                max-width: 100%;
                line-height: 1.5;
            }
            .gc-no-products .btn-reset {
                display: inline-flex;
                align-items: center;
                justify-content: center;
                padding: 12px 28px;
                background: #111827;
                color: #fff;
                border-radius: 99px;
                font-weight: 600;
                text-decoration: none;
                transition: all 0.2s;
                box-shadow: 0 4px 12px rgba(17, 24, 39, 0.15);
            }
            .gc-no-products .btn-reset:hover {
                background: #000;
                transform: translateY(-2px);
                box-shadow: 0 6px 16px rgba(17, 24, 39, 0.2);
            }
            
            /* Mobile adjustments */
            @media(max-width: 768px){
                .gc-no-products {
                    flex-direction: column;
                    text-align: center;
                    padding: 28px 16px;
                    gap: 18px;
                    margin: 10px 0 6px;
                    min-height: 0;
                }
                .gc-no-products .icon-box {
                    width: 72px;
                    height: 72px;
                }
                .gc-no-products .content-box {
                    align-items: center;
                }
                .gc-no-products h4 {
                    font-size: 1.3rem;
                }
                .gc-no-products p {
                    font-size: 1rem;
                    margin-bottom: 18px;
                }
            }
            @media(max-width: 480px){
                .gc-no-products {
                    padding: 24px 14px;
                    gap: 16px;
                    margin: 8px 0 4px;
                }
                .gc-no-products h4 {
                    font-size: 1.18rem;
                }
                .gc-no-products p {
                    font-size: 0.95rem;
                }
            }
                    
        