/* ════════════════════════════════════════════════════════════════
   Guasa — tienda pública v1.1.0
   Estructura tipo NetStore (cabecera blanca con buscador en píldora,
   fila de chips, banner con degradado, cuadrícula de tarjetas, ficha
   con panel flotante) con la paleta Guasa: naranja + carbón + turquesa.
   En computadora ocupa todo el ancho de la pantalla.
   ════════════════════════════════════════════════════════════════ */
:root {
  --gs-primary: #f26522; --gs-primary-2: #ff8a3d; --gs-primary-dark: #d4521a; --gs-primary-soft: #fff1ea; --gs-primary-ink: #b5431a;
  --gs-grad: linear-gradient(135deg, var(--gs-primary), var(--gs-primary-2));
  --gs-teal: #14b8a6; --gs-teal-soft: #ccfbf1;
  --gs-bg: #f0f2f5; --gs-card: #fff; --gs-card-2: #f8fafc; --gs-border: #e2e8f0; --gs-border-strong: #cbd5e1;
  --gs-text: #0f172a; --gs-muted: #475569; --gs-soft: #94a3b8; --gs-navy: #1a1410; --gs-navy-2: #5a2a10;
  --gs-success: #16a34a; --gs-success-soft: #dcfce7; --gs-warning: #d97706; --gs-warning-soft: #fef3c7;
  --gs-danger: #dc2626; --gs-danger-soft: #fee2e2; --gs-info: #2563eb; --gs-info-soft: #dbeafe;
  --gs-neutral: #475569; --gs-neutral-soft: #f1f5f9; --gs-wa: #25d366;
  --gs-radius: 16px; --gs-radius-sm: 10px; --gs-radius-lg: 20px;
  --gs-shadow: 0 2px 10px rgba(0,0,0,.04); --gs-shadow-lg: 0 16px 32px rgba(242,101,34,.12), 0 4px 12px rgba(0,0,0,.04);
  --gs-ring: 0 0 0 4px rgba(242,101,34,.14);
  --gs-ancho: 1800px;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.gs-body { margin: 0; background: var(--gs-bg); color: var(--gs-text); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; font-size: 14.5px; line-height: 1.5; -webkit-font-smoothing: antialiased; }
a { color: var(--gs-primary-ink); text-decoration: none; }
img { max-width: 100%; display: block; }
h1, h2, h3, h4 { margin: 0; line-height: 1.2; letter-spacing: -.4px; }
h1 { font-size: 26px; font-weight: 800; } h2 { font-size: 20px; font-weight: 800; } h3 { font-size: 17px; font-weight: 800; }
p { margin: 0 0 10px; }
button { font-family: inherit; }
.gs-muted { color: var(--gs-muted); font-size: 13px; }
.gs-error { color: var(--gs-danger); font-size: 13px; }
.gs-ok { color: var(--gs-success); font-weight: 600; display: flex; align-items: center; gap: 6px; }
.gs-centro { text-align: center; } .gs-der { text-align: right; }
.gs-ico { vertical-align: middle; flex-shrink: 0; }
.gs-contenedor { max-width: var(--gs-ancho); margin: 0 auto; padding: 24px 24px 48px; width: 100%; }
.gs-main { min-height: 60vh; }

/* ── Cabecera ────────────────────────────────────────────────────── */
.gs-top { background: #fff; box-shadow: 0 4px 20px rgba(0,0,0,.04); position: sticky; top: 0; z-index: 50; }
.gs-top-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 24px 8px; max-width: var(--gs-ancho); margin: 0 auto; width: 100%; }
.gs-logo-sec { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.gs-atras { width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: var(--gs-text); background: transparent; }
.gs-atras:hover { background: var(--gs-neutral-soft); }
.gs-logo { display: inline-flex; align-items: center; gap: 8px; font-size: 21px; font-weight: 800; color: var(--gs-text); letter-spacing: -.6px; }
.gs-logo-img { width: 34px; height: 34px; object-fit: contain; border-radius: 8px; }
.gs-logo-txt em { font-style: normal; color: var(--gs-primary); }
.gs-logo-g { width: 34px; height: 34px; border-radius: 9px; background: var(--gs-grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 20px; font-weight: 900; box-shadow: 0 4px 12px rgba(242,101,34,.35); flex-shrink: 0; }
.gs-logo-g-xs { width: 24px; height: 24px; font-size: 13px; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.gs-buscar { flex: 1; max-width: 680px; display: flex; align-items: center; background: #f1f5f9; border: 1px solid var(--gs-border); border-radius: 30px; overflow: hidden; height: 44px; padding-left: 14px; transition: all .2s; color: var(--gs-soft); }
.gs-buscar:focus-within { background: #fff; border-color: var(--gs-primary); box-shadow: var(--gs-ring); }
.gs-buscar input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 0 12px; font-size: 14px; color: var(--gs-text); height: 100%; background: transparent; font-family: inherit; }
.gs-buscar button { background: var(--gs-grad); color: #fff; border: 0; padding: 0 22px; height: calc(100% - 6px); margin: 3px; font-weight: 600; font-size: 13.5px; border-radius: 30px; cursor: pointer; transition: transform .15s, box-shadow .2s; }
.gs-buscar button:hover { box-shadow: 0 4px 12px rgba(242,101,34,.35); transform: scale(1.02); }
.gs-acciones { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.gs-circulo { position: relative; width: 42px; height: 42px; border-radius: 50%; background: #f1f5f9; display: inline-flex; align-items: center; justify-content: center; color: var(--gs-text); transition: all .2s; }
.gs-circulo:hover { background: var(--gs-border); transform: scale(1.05); }
.gs-circulo .gs-avatar { width: 42px; height: 42px; border-radius: 50%; }
/* v3.14.1 — avatares: iniciales / ilustrado / foto */
.gs-avatar { object-fit: cover; border-radius: 50%; }
.gs-avatar-ini { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: #fff; font-weight: 800; letter-spacing: .5px; line-height: 1; flex-shrink: 0; box-shadow: inset 0 -2px 0 rgba(0,0,0,.12); font-family: inherit; }
.gs-avatar-emoji { font-weight: 400; letter-spacing: 0; }
.gs-circulo .gs-avatar-ini { width: 42px !important; height: 42px !important; }
.gs-avatar-editor { display: flex; gap: 18px; align-items: flex-start; padding: 12px; border: 1px solid var(--gs-border); border-radius: 14px; margin-bottom: 14px; flex-wrap: wrap; }
.gs-avatar-actual { display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; width: 120px; } .gs-avatar-actual .gs-avatar { width: 88px; height: 88px; }
.gs-avatar-opciones { flex: 1; min-width: 240px; } .gs-avatar-opciones p { margin: 8px 0 6px; font-size: 13px; }
.gs-avatar-colores { display: flex; gap: 8px; flex-wrap: wrap; } .gs-avatar-color { width: 30px; height: 30px; border-radius: 50%; cursor: pointer; border: 3px solid transparent; box-shadow: 0 0 0 1px rgba(0,0,0,.1); } .gs-avatar-color input { display: none; } .gs-avatar-color.activo, .gs-avatar-color:has(input:checked) { border-color: #1a1410; }
.gs-avatar-emojis { display: flex; gap: 8px; flex-wrap: wrap; } .gs-avatar-op { width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 24px; cursor: pointer; border: 3px solid transparent; opacity: .85; } .gs-avatar-op input { display: none; } .gs-avatar-op.activo, .gs-avatar-op:has(input:checked) { border-color: #1a1410; opacity: 1; transform: scale(1.08); }
.gs-cart-n { position: absolute; top: -3px; right: -3px; background: var(--gs-grad); color: #fff; font-size: 11px; font-weight: 800; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 2px 6px rgba(242,101,34,.5); font-style: normal; }
.gs-cart-n[hidden] { display: none; }
.gs-btn-publicar { display: inline-flex; align-items: center; gap: 6px; padding: 0 18px; height: 42px; border-radius: 24px; background: linear-gradient(135deg, var(--gs-primary), var(--gs-teal)); color: #fff; font-weight: 700; font-size: 14px; box-shadow: 0 4px 14px rgba(242,101,34,.25); transition: transform .15s; }
.gs-btn-publicar:hover { transform: translateY(-1px); }
.gs-chips-nav { display: flex; align-items: center; gap: 10px; padding: 6px 24px 14px; max-width: var(--gs-ancho); margin: 0 auto; overflow-x: auto; white-space: nowrap; scrollbar-width: none; scroll-behavior: smooth; }
/* v3.13.1 — flechas y degradados del menú de categorías cuando no cabe completo */
.gs-chips-wrap { position: relative; max-width: var(--gs-ancho); margin: 0 auto; }
.gs-chips-btn { position: absolute; top: 50%; transform: translateY(-62%); z-index: 6; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--gs-border); background: #fff; color: var(--gs-text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 4px 14px rgba(0,0,0,.12); transition: background .15s, color .15s; }
.gs-chips-btn:hover { background: var(--gs-primary); color: #fff; border-color: var(--gs-primary); }
.gs-chips-btn.prev { left: 4px; } .gs-chips-btn.next { right: 4px; } .gs-chips-btn[hidden] { display: none; }
.gs-chips-wrap::before, .gs-chips-wrap::after { content: ''; position: absolute; top: 0; bottom: 8px; width: 56px; pointer-events: none; opacity: 0; transition: opacity .2s; z-index: 5; }
.gs-chips-wrap::before { left: 0; background: linear-gradient(90deg, #fff 30%, rgba(255,255,255,0)); } .gs-chips-wrap::after { right: 0; background: linear-gradient(270deg, #fff 30%, rgba(255,255,255,0)); }
.gs-chips-wrap.mas-izq::before, .gs-chips-wrap.mas-der::after { opacity: 1; }
.gs-chips-nav.arrastrando { cursor: grabbing; scroll-behavior: auto; } .gs-chips-nav.arrastrando .gs-chip { pointer-events: none; }
@media (max-width: 768px) { .gs-chips-btn { display: none !important; } .gs-chips-wrap::before, .gs-chips-wrap::after { width: 28px; } }
.gs-chips-nav::-webkit-scrollbar { display: none; }
.gs-chip { display: inline-flex; align-items: center; gap: 6px; background: #f1f5f9; border: 1px solid transparent; color: var(--gs-muted); font-size: 13.5px; font-weight: 600; padding: 8px 18px; border-radius: 24px; transition: all .2s; flex-shrink: 0; }
.gs-chip:hover { background: var(--gs-border); color: var(--gs-text); transform: translateY(-1px); }
.gs-chip.activo { background: var(--gs-grad); color: #fff; font-weight: 700; box-shadow: 0 4px 14px rgba(242,101,34,.35); }
.gs-chip-prox { color: var(--gs-soft); }
.gs-chip-prox i { font-style: normal; font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .4px; background: var(--gs-teal-soft); color: #0f766e; padding: 1px 6px; border-radius: 10px; margin-left: 2px; }
.gs-chip-sep { width: 1px; height: 22px; background: var(--gs-border); flex-shrink: 0; margin: 0 2px; }

/* ── Botones ─────────────────────────────────────────────────────── */
.gs-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border-radius: 12px; border: 1px solid var(--gs-border); background: #fff; color: var(--gs-text); font-size: 14px; font-weight: 700; cursor: pointer; line-height: 1.2; transition: all .15s; }
.gs-btn:hover { border-color: var(--gs-primary); color: var(--gs-primary); }
.gs-btn:focus-visible { outline: none; box-shadow: var(--gs-ring); }
.gs-btn:disabled { opacity: .5; cursor: not-allowed; }
.gs-btn-primario { background: var(--gs-grad); border-color: transparent; color: #fff; box-shadow: 0 6px 16px rgba(242,101,34,.3); }
.gs-btn-primario:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(242,101,34,.4); }
.gs-btn-oscuro { background: var(--gs-text); border-color: var(--gs-text); color: #fff; }
.gs-btn-oscuro:hover { background: #1e293b; color: #fff; }
.gs-btn-outline { border: 1.5px solid var(--gs-primary); color: var(--gs-primary); background: #fff; }
.gs-btn-wa { background: var(--gs-wa); border-color: var(--gs-wa); color: #fff; }
.gs-btn-wa:hover { background: #1fb457; color: #fff; }
.gs-btn-wa-soft { background: var(--gs-success-soft); border-color: transparent; color: #15803d; }
.gs-btn-wa-soft:hover { background: #bbf7d0; color: #15803d; }
.gs-btn-sm { padding: 7px 12px; font-size: 12.5px; border-radius: 9px; }
.gs-btn-lg { padding: 14px 20px; font-size: 14px; border-radius: 14px; letter-spacing: .3px; }
.gs-btn-block { width: 100%; margin-top: 8px; }
.gs-btn.cargando { opacity: .6; pointer-events: none; }
.gs-btn.hecho { background: var(--gs-success); border-color: var(--gs-success); color: #fff; }

/* ── Explorador: banner, filtros, cuadrícula ─────────────────────── */
.gs-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--gs-navy) 0%, var(--gs-navy-2) 45%, var(--gs-primary) 100%); background-size: cover; background-position: center; border-radius: var(--gs-radius-lg); padding: 36px 44px; color: #fff; margin-bottom: 28px; box-shadow: 0 8px 30px rgba(26,20,16,.25); }
.gs-hero::before { content: ''; position: absolute; top: -50%; right: -10%; width: 380px; height: 380px; background: radial-gradient(circle, rgba(20,184,166,.35) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }
.gs-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(26,20,16,.35), transparent 60%); pointer-events: none; }
.gs-hero-txt { position: relative; z-index: 2; }
.gs-hero h2 { font-size: 30px; font-weight: 800; margin: 0 0 8px; letter-spacing: -.5px; }
.gs-hero p { font-size: 16px; margin: 0; opacity: .88; }
.gs-hero-badges { position: relative; z-index: 2; display: flex; gap: 16px; flex-wrap: wrap; margin-top: 18px; font-size: 12.5px; }
.gs-hero-badges span { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.12); padding: 6px 12px; border-radius: 20px; backdrop-filter: blur(4px); }
.gs-hero-badges .gs-ico { color: #5eead4; }
.gs-ofertas { margin-bottom: 26px; }
.gs-ofertas-h { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.gs-ofertas-h h3 { display: flex; align-items: center; gap: 6px; color: var(--gs-primary-ink); }
.gs-ofertas-h a { font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; gap: 4px; }
.gs-resultados { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 22px; padding-bottom: 12px; border-bottom: 1px solid var(--gs-border); }
.gs-resultados-t { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.gs-resultados-t h3 { font-size: 22px; }
.gs-conteo { color: var(--gs-muted); font-size: 13.5px; font-weight: 600; }
.gs-filtros-fila { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0; }
.gs-pill { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1.5px solid var(--gs-border); border-radius: 20px; padding: 6px 14px; box-shadow: 0 2px 6px rgba(0,0,0,.03); font-size: 13.5px; font-weight: 700; color: #334155; transition: all .2s; cursor: pointer; }
.gs-pill:hover, .gs-pill:focus-within { border-color: var(--gs-primary); box-shadow: var(--gs-ring); }
.gs-pill select { border: 0; outline: 0; background: transparent; font: inherit; font-weight: 700; color: #334155; cursor: pointer; appearance: none; -webkit-appearance: none; padding-right: 2px; max-width: 180px; }
.gs-pill .gs-ico-pin { color: var(--gs-primary); } .gs-pill .gs-ico-camion { color: var(--gs-teal); }
.gs-pill-envio { cursor: default; font-weight: 600; color: var(--gs-muted); }
.gs-pill-envio strong { color: var(--gs-teal); font-weight: 800; }
.gs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 22px; }
.gs-grid-scroll { grid-auto-flow: column; grid-auto-columns: minmax(240px, 320px); grid-template-columns: none; overflow-x: auto; padding: 6px 2px 10px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.gs-grid-scroll .gs-card { scroll-snap-align: start; }
.gs-paginas { display: flex; gap: 6px; justify-content: center; margin-top: 26px; flex-wrap: wrap; }
.gs-paginas a { padding: 8px 14px; border-radius: 20px; border: 1.5px solid var(--gs-border); background: #fff; font-size: 14px; font-weight: 700; color: var(--gs-muted); }
.gs-paginas a.activa { background: var(--gs-grad); border-color: transparent; color: #fff; }
.gs-vacio-caja { background: #fff; border: 1px solid var(--gs-border); border-radius: var(--gs-radius-lg); padding: 60px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 10px; color: var(--gs-muted); }
.gs-vacio-caja .gs-ico { color: #cbd5e1; }
.gs-vacio-caja h1, .gs-vacio-caja h3 { color: var(--gs-text); }
.gs-vacio-caja p { max-width: 460px; }

/* ── Tarjeta ─────────────────────────────────────────────────────── */
.gs-card { background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--gs-shadow); border: 1px solid rgba(226,232,240,.8); display: flex; flex-direction: column; transition: transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s cubic-bezier(.16,1,.3,1), border-color .2s; position: relative; }
.gs-card:hover { transform: translateY(-6px); box-shadow: var(--gs-shadow-lg); border-color: rgba(242,101,34,.3); }
.gs-card.agotado .gs-card-img img { filter: grayscale(.6); opacity: .8; }
.gs-card-img { position: relative; width: 100%; aspect-ratio: 4 / 3; background: #f1f5f9; overflow: hidden; display: block; }
.gs-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s; }
.gs-card:hover .gs-card-img img { transform: scale(1.05); }
.gs-img-vacia { width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; color: #cbd5e1; background: #f8fafc; }
.gs-logo-gris { width: 34%; max-width: 120px; min-width: 22px; height: auto; aspect-ratio: 1; display: block; object-fit: contain; filter: grayscale(1) brightness(1.45) contrast(.7); opacity: .85; mix-blend-mode: multiply; } /* v3.6.5: icono real de la app en gris (filtro) para lo que no tiene foto */
.gs-logo-gris-propia { filter: none; opacity: 1; mix-blend-mode: normal; } /* v3.6.6: imagen genérica propia, tal cual se subió */
.gs-badge-cat { position: absolute; top: 10px; left: 10px; padding: 5px 10px; border-radius: 20px; font-size: 10px; font-weight: 800; color: #fff; text-transform: uppercase; letter-spacing: .4px; box-shadow: 0 2px 8px rgba(0,0,0,.2); backdrop-filter: blur(4px); background: var(--gs-grad); z-index: 2; }
.gs-badge-farmacia { background: linear-gradient(135deg, #16a34a, #22c55e); }
.gs-badge-tecnologia-productos, .gs-badge-tecnologia { background: linear-gradient(135deg, #2563eb, #3b82f6); }
.gs-badge-abarrotes { background: linear-gradient(135deg, #d97706, #f59e0b); }
.gs-badge-oferta { position: absolute; bottom: 10px; left: 10px; background: var(--gs-grad); color: #fff; font-size: 11px; font-weight: 800; padding: 4px 9px; border-radius: 20px; box-shadow: 0 2px 8px rgba(242,101,34,.4); }
.gs-badge-inline { position: static; margin-left: 8px; font-size: 12px; vertical-align: middle; }
.gs-badge-agotado { position: absolute; bottom: 10px; right: 10px; background: #334155; color: #fff; font-size: 10px; font-weight: 800; padding: 4px 9px; border-radius: 20px; text-transform: uppercase; }
.gs-fav { position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.92); backdrop-filter: blur(6px); border: 0; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,.12); cursor: pointer; transition: transform .18s; color: #0f172a; z-index: 2; }
.gs-fav:hover { transform: scale(1.12); } .gs-fav:active { transform: scale(.92); }
.gs-fav.activo, .gs-icono-btn.activo { color: var(--gs-danger); }
.gs-fav.activo svg, .gs-icono-btn.activo svg { fill: var(--gs-danger); }
.gs-card-body { padding: 16px; display: flex; flex-direction: column; flex: 1; }
.gs-card-title { margin: 0 0 6px; font-size: 15px; font-weight: 700; color: var(--gs-text); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.35; letter-spacing: -.2px; }
.gs-card-desc { font-size: 12.5px; color: var(--gs-muted); margin: 0 0 8px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.gs-mini-receta { display: inline-flex; align-items: center; gap: 2px; background: var(--gs-info-soft); color: #1d4ed8; font-size: 10.5px; font-weight: 700; padding: 1px 6px; border-radius: 10px; }
.gs-card-price { font-size: 20px; font-weight: 800; color: var(--gs-primary); margin: auto 0 6px; letter-spacing: -.4px; display: flex; align-items: baseline; gap: 6px; }
.gs-card-price sup { font-size: 11px; font-weight: 700; color: var(--gs-soft); margin-left: 2px; }
.gs-card-price s { font-size: 12.5px; color: var(--gs-soft); font-weight: 600; }
.gs-card-ubi { font-size: 11.5px; color: var(--gs-soft); display: flex; align-items: center; gap: 3px; margin: 2px 0 10px; }
.gs-card-seller { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 1px solid #f1f5f9; font-size: 12px; font-weight: 600; color: #64748b; }
.gs-card-seller .gs-ico-check { color: var(--gs-teal); }
.gs-card-acc { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.gs-act { height: 34px; border-radius: 9px; font-size: 12.5px; font-weight: 700; cursor: pointer; border: 0; display: inline-flex; align-items: center; justify-content: center; gap: 5px; transition: transform .15s, background .15s; }
.gs-act:active { transform: scale(.96); }
.gs-act-cart { width: 34px; flex-shrink: 0; background: #f0f2f5; color: var(--gs-text); }
.gs-act-cart:hover { background: #e4e6eb; }
.gs-act-cart.hecho { background: var(--gs-success); color: #fff; }
.gs-act-chat { flex: 1; background: var(--gs-success-soft); color: #15803d; padding: 0 10px; }
.gs-act-chat:hover { background: #bbf7d0; }
.gs-act-buy { width: 34px; flex-shrink: 0; background: var(--gs-grad); color: #fff; box-shadow: 0 3px 8px rgba(242,101,34,.3); }
.gs-act:disabled { opacity: .45; cursor: not-allowed; }

/* ── Ficha de producto ───────────────────────────────────────────── */
.gs-p-producto .gs-top .gs-atras { display: none; } /* la barra «Detalle del producto» ya trae su flecha */
.gs-det-bar { display: flex; align-items: center; gap: 10px; padding: 10px 24px; background: #fff; border-bottom: 1px solid var(--gs-border); max-width: none; }
.gs-det-bar strong { flex: 1; font-size: 15px; }
.gs-det-bar-acc { display: flex; gap: 6px; }
.gs-icono-btn { width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: var(--gs-text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.gs-icono-btn:hover { background: var(--gs-neutral-soft); }
.gs-det-hero { position: relative; background: #f1f5f9; padding: 24px 24px 20px; display: flex; flex-direction: column; align-items: center; }
.gs-det-hero .gs-badge-cat { top: 18px; left: 24px; }
.gs-fav-grande { top: 18px; right: 24px; width: 40px; height: 40px; }
.gs-det-img { width: min(100%, 560px); aspect-ratio: 1 / 1; background: #fff; border-radius: 16px; overflow: hidden; box-shadow: var(--gs-shadow); }
.gs-det-img img { width: 100%; height: 100%; object-fit: contain; }
.gs-det-thumbs { display: flex; gap: 8px; margin-top: 12px; overflow-x: auto; max-width: 100%; }
.gs-det-thumbs button { width: 64px; height: 64px; border-radius: 12px; border: 2px solid transparent; padding: 0; overflow: hidden; background: #fff; cursor: pointer; flex-shrink: 0; }
.gs-det-thumbs button.activo { border-color: var(--gs-primary); }
.gs-det-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.gs-det-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; margin-top: -28px; position: relative; z-index: 3; padding-top: 0; }
.gs-det-col > .gs-caja:first-child { box-shadow: 0 8px 24px rgba(0,0,0,.06); }
.gs-caja { background: #fff; border: 1px solid var(--gs-border); border-radius: 16px; padding: 18px 20px; margin-bottom: 12px; }
.gs-caja h2 { font-size: 17px; margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.gs-etq { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-soft); margin-bottom: 10px; }
.gs-det-panel h1 { font-size: 24px; margin-bottom: 6px; }
.gs-det-precio { font-size: 30px; font-weight: 800; color: var(--gs-primary); letter-spacing: -.6px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.gs-det-precio sup { font-size: 12px; color: var(--gs-soft); font-weight: 700; }
.gs-det-precio s { font-size: 15px; color: var(--gs-soft); font-weight: 600; }
.gs-det-meta { color: var(--gs-muted); font-size: 13.5px; margin-top: 4px; }
.gs-det-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px; }
.gs-chip-estado { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; padding: 5px 11px; border-radius: 20px; background: var(--gs-neutral-soft); color: var(--gs-muted); }
.gs-chip-estado.ok { background: var(--gs-success-soft); color: #15803d; }
.gs-chip-estado.warn { background: var(--gs-warning-soft); color: #b45309; }
.gs-chip-estado.no { background: var(--gs-danger-soft); color: #b91c1c; }
.gs-chip-estado.cat { background: var(--gs-primary-soft); color: var(--gs-primary-ink); }
.gs-chip-estado.receta { background: var(--gs-info-soft); color: #1d4ed8; }
.gs-aviso-receta { display: flex; gap: 8px; align-items: flex-start; background: var(--gs-info-soft); color: #1e40af; padding: 12px 14px; border-radius: 12px; font-size: 13px; margin-bottom: 12px; }
.gs-texto { font-size: 14.5px; color: #334155; }
.gs-ficha { display: grid; grid-template-columns: auto 1fr; gap: 6px 14px; font-size: 14px; margin: 0; }
.gs-ficha dt { color: var(--gs-muted); } .gs-ficha dd { margin: 0; font-weight: 600; }
.gs-vendedor { display: flex; align-items: center; gap: 12px; }
.gs-vendedor .gs-logo-g { width: 44px; height: 44px; border-radius: 50%; font-size: 22px; }
.gs-vendedor-info { flex: 1; display: flex; flex-direction: column; }
.gs-vendedor-info small { color: var(--gs-muted); font-size: 12.5px; }
.gs-verif { margin-top: 14px; background: var(--gs-card-2); border-radius: 12px; padding: 12px 14px; }
.gs-verif-h { display: flex; justify-content: space-between; font-size: 13px; font-weight: 700; color: #15803d; margin-bottom: 6px; }
.gs-verif-h strong { color: var(--gs-primary); font-size: 15px; }
.gs-verif-bar { height: 8px; border-radius: 8px; background: var(--gs-border); overflow: hidden; }
.gs-verif-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--gs-primary), var(--gs-teal)); border-radius: 8px; }
.gs-verif-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.gs-verif-tags span { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; font-weight: 700; background: var(--gs-success-soft); color: #15803d; padding: 3px 8px; border-radius: 10px; }
.gs-det-lateral { position: sticky; top: 130px; }
.gs-det-compra .gs-det-precio { font-size: 28px; }
.gs-cant-fila { display: flex; justify-content: space-between; align-items: center; margin: 12px 0 4px; font-weight: 600; color: var(--gs-muted); font-size: 13px; }
.gs-cant { display: inline-flex; align-items: center; border: 1.5px solid var(--gs-border); border-radius: 12px; overflow: hidden; background: #fff; }
.gs-cant button { width: 38px; height: 40px; border: 0; background: transparent; cursor: pointer; color: var(--gs-text); display: inline-flex; align-items: center; justify-content: center; }
.gs-cant button:hover { background: var(--gs-neutral-soft); }
.gs-cant input { width: 46px; height: 40px; border: 0; text-align: center; font-size: 15px; font-weight: 700; font-family: inherit; -moz-appearance: textfield; }
.gs-cant input::-webkit-outer-spin-button, .gs-cant input::-webkit-inner-spin-button { -webkit-appearance: none; }
.gs-garantias { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 6px; font-size: 13px; color: var(--gs-muted); }
.gs-garantias li { display: flex; align-items: center; gap: 8px; }
.gs-garantias .gs-ico { color: var(--gs-teal); }

/* ── Carrito, checkout, pedido, cuenta ───────────────────────────── */
.gs-seccion-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
.gs-seccion-h h1 small { font-size: 14px; font-weight: 600; color: var(--gs-soft); margin-left: 6px; }
.gs-carrito-grid { display: grid; grid-template-columns: 1fr 360px; gap: 20px; align-items: start; }
.gs-lineas { padding: 6px 20px; }
.gs-linea { display: grid; grid-template-columns: 76px 1fr auto auto auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--gs-border); }
.gs-linea:last-child { border-bottom: 0; }
.gs-linea.agotado { background: #fff7ed; }
.gs-linea-img { width: 76px; height: 76px; border-radius: 12px; overflow: hidden; background: #f1f5f9; display: block; }
.gs-linea-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-linea-info a { color: var(--gs-text); }
.gs-linea-info small { display: block; }
.gs-linea-precio { font-size: 13px; color: var(--gs-muted); margin-top: 2px; }
.gs-linea .gs-cant button { width: 32px; height: 36px; } .gs-linea .gs-cant input { width: 40px; height: 36px; }
.gs-linea-total { font-weight: 800; min-width: 80px; text-align: right; color: var(--gs-primary); }
.gs-linea-quitar { border: 0; background: transparent; color: var(--gs-soft); cursor: pointer; padding: 6px; border-radius: 8px; }
.gs-linea-quitar:hover { color: var(--gs-danger); background: var(--gs-danger-soft); }
.gs-resumen { position: sticky; top: 130px; }
.gs-cupon { display: flex; gap: 6px; margin-bottom: 10px; }
.gs-cupon input { flex: 1; min-width: 0; padding: 9px 12px; border: 1.5px solid var(--gs-border); border-radius: 20px; font-family: inherit; font-size: 14px; }
.gs-totales { display: grid; grid-template-columns: 1fr auto; gap: 8px 12px; margin: 12px 0; font-size: 14px; }
.gs-totales dt { color: var(--gs-muted); } .gs-totales dd { margin: 0; text-align: right; font-weight: 600; }
.gs-totales .gs-total { font-size: 18px; font-weight: 900; color: var(--gs-text); padding-top: 8px; border-top: 1px solid var(--gs-border); }
dd.gs-total { color: var(--gs-primary) !important; }
.gs-resumen-lineas { list-style: none; padding: 0; margin: 0 0 10px; display: grid; gap: 10px; }
.gs-resumen-lineas li { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; font-size: 13.5px; }
.gs-mini-img { width: 44px; height: 44px; border-radius: 10px; overflow: hidden; background: #f1f5f9; display: inline-flex; align-items: center; justify-content: center; color: #cbd5e1; flex-shrink: 0; }
.gs-mini-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-form label { display: block; font-size: 13px; font-weight: 600; color: var(--gs-muted); margin-bottom: 12px; }
.gs-form input[type=text], .gs-form input[type=email], .gs-form input[type=tel], .gs-form input[type=password], .gs-form input[type=number], .gs-form input[type=file], .gs-form select, .gs-form textarea {
  display: block; width: 100%; margin-top: 5px; padding: 11px 14px; border: 1.5px solid var(--gs-border); border-radius: 12px; font-size: 15px; font-family: inherit; background: #fff; color: var(--gs-text); }
.gs-form input:focus, .gs-form select:focus, .gs-form textarea:focus { outline: none; border-color: var(--gs-primary); box-shadow: var(--gs-ring); }
.gs-form input[disabled] { background: var(--gs-neutral-soft); color: var(--gs-soft); }
.gs-form .gs-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.gs-check { display: flex !important; align-items: center; gap: 8px; color: var(--gs-text) !important; font-weight: 500 !important; cursor: pointer; }
.gs-check input { margin: 0; width: 18px; height: 18px; accent-color: var(--gs-primary); }
.gs-alerta { padding: 12px 14px; border-radius: 12px; font-size: 14px; margin-bottom: 14px; border: 1px solid transparent; }
.gs-alerta-error { background: var(--gs-danger-soft); color: #b91c1c; border-color: #fecaca; }
.gs-alerta-ok { background: var(--gs-success-soft); color: #15803d; border-color: #bbf7d0; }
.gs-alerta-info { background: var(--gs-info-soft); color: #1e40af; border-color: #bfdbfe; }
.gs-banco { background: var(--gs-neutral-soft); padding: 12px 14px; border-radius: 12px; font-size: 14px; margin: 8px 0; }
.gs-instrucciones .gs-btn { margin: 6px 0; }
.gs-checkout-grid { display: grid; grid-template-columns: 1fr 380px; gap: 20px; align-items: start; }
.gs-paso { width: 26px; height: 26px; border-radius: 50%; background: var(--gs-grad); color: #fff; font-size: 13px; display: inline-flex; align-items: center; justify-content: center; }
.gs-opciones { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.gs-opciones-col { grid-template-columns: 1fr; }
.gs-opcion { display: flex !important; align-items: center; gap: 10px; padding: 12px 14px; border: 1.5px solid var(--gs-border); border-radius: 12px; cursor: pointer; margin: 0 !important; color: var(--gs-text) !important; font-weight: 500 !important; }
.gs-opcion:has(input:checked) { border-color: var(--gs-primary); background: var(--gs-primary-soft); }
.gs-opcion input { accent-color: var(--gs-primary); width: 18px; height: 18px; margin: 0; }
.gs-opcion span { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gs-opcion strong { font-size: 14px; } .gs-opcion small { display: block; width: 100%; color: var(--gs-muted); font-size: 12px; }
.gs-opcion .gs-ico { color: var(--gs-primary); }
.gs-envio-calc { display: flex; align-items: center; gap: 8px; background: var(--gs-teal-soft); color: #0f766e; padding: 10px 12px; border-radius: 12px; font-size: 13.5px; font-weight: 600; }
.gs-resumen-fijo { position: sticky; top: 130px; }
.gs-caja-receta { border-color: #bfdbfe; background: #f8fbff; }
.gs-gracias { text-align: center; padding: 26px 20px 10px; }
.gs-gracias-ico { width: 68px; height: 68px; border-radius: 50%; background: var(--gs-success-soft); color: var(--gs-success); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.gs-pedido-grid { display: grid; grid-template-columns: 1fr 340px; gap: 20px; align-items: start; }
.gs-linea-tiempo { list-style: none; padding: 0; margin: 6px 0 10px; display: flex; justify-content: space-between; position: relative; }
.gs-linea-tiempo::before { content: ''; position: absolute; left: 20px; right: 20px; top: 13px; height: 3px; background: var(--gs-border); }
.gs-linea-tiempo li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--gs-soft); flex: 1; text-align: center; }
.gs-linea-tiempo li span { width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 3px solid var(--gs-border); position: relative; z-index: 1; }
.gs-linea-tiempo li.hecho span { background: var(--gs-success); border-color: var(--gs-success); } .gs-linea-tiempo li.hecho { color: var(--gs-success); }
.gs-linea-tiempo li.actual span { background: var(--gs-primary); border-color: var(--gs-primary); box-shadow: 0 0 0 5px rgba(242,101,34,.2); } .gs-linea-tiempo li.actual { color: var(--gs-primary-ink); }
.gs-repartidor { display: flex; align-items: center; gap: 8px; background: var(--gs-primary-soft); padding: 10px 12px; border-radius: 12px; }
.gs-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 700; }
.gs-badge-success { background: var(--gs-success-soft); color: #15803d; } .gs-badge-warning { background: var(--gs-warning-soft); color: #b45309; }
.gs-badge-danger { background: var(--gs-danger-soft); color: #b91c1c; } .gs-badge-info { background: var(--gs-info-soft); color: #1d4ed8; }
.gs-badge-neutral { background: var(--gs-neutral-soft); color: var(--gs-neutral); } .gs-badge-primary { background: var(--gs-primary-soft); color: var(--gs-primary-ink); }
.gs-cuenta-grid { display: grid; grid-template-columns: 270px 1fr; gap: 20px; align-items: start; }
.gs-cuenta h1 { margin-bottom: 14px; }
.gs-cuenta-menu { padding: 12px; }
.gs-cuenta-user { display: flex; align-items: center; gap: 10px; padding: 8px 8px 14px; border-bottom: 1px solid var(--gs-border); margin-bottom: 8px; }
.gs-cuenta-user .gs-avatar { width: 56px; height: 56px; border-radius: 50%; }
.gs-cuenta-menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--gs-text); font-weight: 600; font-size: 14px; }
.gs-cuenta-menu a:hover { background: var(--gs-neutral-soft); }
.gs-cuenta-menu a.activo { background: var(--gs-primary-soft); color: var(--gs-primary-ink); }
.gs-cuenta-menu a.gs-salir { color: var(--gs-danger); }
.gs-pedido-fila { display: grid; grid-template-columns: 1fr auto auto; gap: 14px; align-items: center; color: var(--gs-text); }
.gs-pedido-fila:hover { border-color: var(--gs-primary); }
.gs-direcciones { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; margin-bottom: 4px; }
.gs-direccion p { margin: 6px 0 10px; font-size: 14px; }
.gs-direccion-acc { display: flex; gap: 8px; }
.gs-acceso { display: flex; justify-content: center; padding-top: 40px; }
.gs-acceso-caja { width: 100%; max-width: 440px; padding: 26px; }
.gs-logo-centro { justify-content: center; width: 100%; margin-bottom: 14px; }
.gs-tabs-acceso { display: flex; background: var(--gs-neutral-soft); border-radius: 24px; padding: 4px; margin-bottom: 18px; }
.gs-tabs-acceso a { flex: 1; text-align: center; padding: 9px; border-radius: 20px; font-weight: 700; color: var(--gs-muted); font-size: 14px; }
.gs-tabs-acceso a.activo { background: var(--gs-grad); color: #fff; box-shadow: 0 4px 12px rgba(242,101,34,.3); }
.gs-prox-caja { padding: 60px 24px; }
.gs-prox-ico { width: 84px; height: 84px; border-radius: 24px; display: inline-flex; align-items: center; justify-content: center; background: var(--gs-primary-soft); color: var(--gs-primary); }
.gs-prox-ico .gs-ico { color: inherit; }
.gs-tag-prox { display: inline-block; background: var(--gs-teal-soft); color: #0f766e; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; padding: 4px 10px; border-radius: 20px; margin-bottom: 8px; }
.gs-prox-acc { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 8px; }

/* ── Pie, FAB, toast ─────────────────────────────────────────────── */
.gs-pie { background: #fff; border-top: 1px solid var(--gs-border); margin-top: 20px; }
.gs-pie-inner { max-width: var(--gs-ancho); margin: 0 auto; padding: 36px 24px 20px; display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 28px; }
.gs-pie-col h4 { font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-muted); margin-bottom: 10px; }
.gs-pie-col a { display: block; color: var(--gs-text); font-size: 14px; padding: 3px 0; }
.gs-pie-marca p { color: var(--gs-muted); font-size: 14px; margin: 10px 0; max-width: 340px; }
.gs-pie-dir { display: flex; align-items: center; gap: 6px; }
.gs-eco { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.gs-eco span { font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 20px; background: var(--gs-neutral-soft); color: var(--gs-muted); }
.gs-eco span.activo { background: var(--gs-grad); color: #fff; }
.gs-pie-legal { text-align: center; font-size: 12.5px; color: var(--gs-soft); padding: 14px 20px 20px; border-top: 1px solid var(--gs-border); }
.gs-fab { display: none; position: fixed; right: 20px; bottom: 20px; width: 54px; height: 54px; border-radius: 50%; background: var(--gs-grad); color: #fff; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(242,101,34,.45); z-index: 60; }
.gs-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); background: var(--gs-text); color: #fff; padding: 11px 18px; border-radius: 30px; font-size: 14px; font-weight: 600; box-shadow: var(--gs-shadow-lg); z-index: 100; max-width: 90vw; text-align: center; }
.gs-toast.ok { background: #14532d; } .gs-toast.error { background: #7f1d1d; }
.gs-toast[hidden] { display: none; }

/* ── Responsive ──────────────────────────────────────────────────── */
@media (max-width: 1100px) {
  .gs-det-cuerpo, .gs-carrito-grid, .gs-checkout-grid, .gs-pedido-grid, .gs-cuenta-grid { grid-template-columns: 1fr; }
  .gs-det-lateral, .gs-resumen, .gs-resumen-fijo { position: static; }
  .gs-pie-inner { grid-template-columns: 1fr 1fr; }
  .gs-btn-publicar span { display: none; } .gs-btn-publicar { width: 42px; padding: 0; border-radius: 50%; }
}
@media (max-width: 768px) {
  body.gs-body { padding-bottom: 20px; }
  .gs-contenedor { padding: 14px 14px 40px; }
  .gs-top-bar { gap: 8px; padding: 8px 10px 6px; }
  .gs-logo { font-size: 17px; gap: 6px; } .gs-logo-g, .gs-logo-img { width: 30px; height: 30px; font-size: 17px; } .gs-logo-txt em { display: none; }
  .gs-atras { width: 34px; height: 34px; }
  .gs-buscar { height: 38px; padding-left: 10px; min-width: 0; }
  .gs-buscar button { display: none; }
  .gs-buscar input { padding: 0 8px; font-size: 13px; }
  .gs-acciones { gap: 6px; }
  .gs-acciones .gs-circulo:not(.gs-circulo-cart):not(.gs-circulo-user) { display: none; }
  .gs-circulo { width: 38px; height: 38px; } .gs-circulo .gs-avatar { width: 38px; height: 38px; }
  .gs-btn-publicar { display: none; }
  .gs-chips-nav { padding: 6px 10px 12px; gap: 8px; }
  .gs-chip { padding: 8px 14px; font-size: 13px; }
  .gs-hero { padding: 24px 22px; border-radius: 16px; margin-bottom: 20px; }
  .gs-hero h2 { font-size: 22px; } .gs-hero p { font-size: 14px; }
  .gs-hero-badges { gap: 8px; }
  .gs-resultados { margin-bottom: 16px; }
  .gs-resultados-t h3 { font-size: 20px; }
  .gs-pill { padding: 6px 12px; font-size: 13px; }
  .gs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gs-grid-scroll { grid-auto-columns: 70%; }
  .gs-card-body { padding: 12px; } .gs-card-title { font-size: 14px; } .gs-card-price { font-size: 18px; }
  .gs-card-ubi, .gs-card-seller { display: none; } .gs-card-acc { margin-top: 8px; }
  .gs-det-bar { padding: 8px 10px; }
  .gs-det-hero { padding: 14px 14px 12px; } .gs-det-hero .gs-badge-cat { top: 12px; left: 14px; } .gs-fav-grande { top: 12px; right: 14px; }
  .gs-det-cuerpo { margin-top: -16px; }
  .gs-det-panel h1 { font-size: 20px; } .gs-det-precio { font-size: 26px; }
  .gs-linea { grid-template-columns: 60px 1fr auto; }
  .gs-linea .gs-cant { grid-column: 2; } .gs-linea-total { grid-column: 3; grid-row: 1; } .gs-linea-quitar { grid-column: 3; grid-row: 2; justify-self: end; }
  .gs-opciones { grid-template-columns: 1fr; }
  .gs-form .gs-grid-2 { grid-template-columns: 1fr; }
  .gs-linea-tiempo li { font-size: 10px; }
  .gs-pie-inner { grid-template-columns: 1fr; gap: 18px; }
  .gs-pedido-fila { grid-template-columns: 1fr auto; } .gs-pedido-fila > div:nth-child(2) { grid-column: 1 / -1; }
  .gs-fab { display: flex; }
  .gs-toast { bottom: 90px; }
}
@media (max-width: 380px) { .gs-grid { grid-template-columns: minmax(0, 1fr); } }


/* ════════════════════════════════════════════════════════════════
   v2.0.0 — Marketplace, mensajes, Business, Ads y Envíos
   ════════════════════════════════════════════════════════════════ */
.gs-badge-t-producto { background: var(--gs-grad); }
.gs-badge-t-servicio { background: linear-gradient(135deg, #ec4899, #d946ef); }
.gs-badge-t-inmueble { background: linear-gradient(135deg, #10b981, #059669); }
.gs-badge-t-vehiculo { background: linear-gradient(135deg, #ef4444, #dc2626); }
.gs-badge-t-reserva  { background: linear-gradient(135deg, #e11d48, #be123c); }
.gs-badge-t-alquiler { background: linear-gradient(135deg, #f59e0b, #d97706); }
.gs-badge-t-empleo   { background: linear-gradient(135deg, #3b82f6, #2563eb); }
.gs-badge-t-suscripcion { background: linear-gradient(135deg, #0ea5e9, #0284c7); }
.gs-badge-t-donacion { background: linear-gradient(135deg, #059669, #10b981); }
.gs-badge-t-tecnologia { background: linear-gradient(135deg, #2563eb, #3b82f6); }
.gs-badge-t-contenido { background: linear-gradient(135deg, #0f766e, #14b8a6); }
.gs-badge-dest { position: absolute; bottom: 10px; left: 10px; display: inline-flex; align-items: center; gap: 3px; background: #fff; color: var(--gs-primary-ink); font-size: 10.5px; font-weight: 800; padding: 4px 9px; border-radius: 20px; box-shadow: 0 2px 8px rgba(0,0,0,.15); text-transform: uppercase; letter-spacing: .3px; }
.gs-card-pub.destacada { border-color: rgba(242,101,34,.45); box-shadow: 0 6px 20px rgba(242,101,34,.12); }
.gs-card-price-pub { font-size: 18px; }
.gs-cond { font-size: 11px; font-weight: 700; color: var(--gs-muted); background: var(--gs-neutral-soft); padding: 2px 8px; border-radius: 10px; }
.gs-card-seller { text-decoration: none; }
.gs-act-wa { width: 34px; flex-shrink: 0; background: var(--gs-success-soft); color: #15803d; }
.gs-act-chat-int { background: var(--gs-primary-soft); color: var(--gs-primary-ink); }
.gs-act-chat-int:hover { background: #ffe0cc; }
.gs-card-cta { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 8px; padding: 30px 20px; border: 2px dashed var(--gs-border-strong); background: var(--gs-card-2); color: var(--gs-text); text-decoration: none; }
.gs-card-cta:hover { border-color: var(--gs-primary); transform: none; box-shadow: none; }
.gs-cta-ico { width: 56px; height: 56px; border-radius: 50%; background: var(--gs-grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(242,101,34,.35); }
.gs-card-cta small { color: var(--gs-muted); }
.gs-hero-mkt { background: linear-gradient(135deg, #1e1b4b 0%, #312e81 40%, var(--gs-primary) 100%); }
.gs-hero-cta { position: relative; z-index: 2; margin-top: 16px; }
.gs-tipos-fila { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 14px; scrollbar-width: none; }
.gs-tipos-fila::-webkit-scrollbar { display: none; }
.gs-tipos-fila .gs-chip b { background: rgba(0,0,0,.08); border-radius: 10px; padding: 0 6px; font-size: 11px; margin-left: 2px; }
.gs-tipos-fila .gs-chip.activo b { background: rgba(255,255,255,.25); }
.gs-chip-mkt { border: 1px solid var(--gs-teal); color: #0f766e; background: var(--gs-teal-soft); }

/* Banners */
.gs-banners { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; margin-bottom: 24px; }
.gs-banner { position: relative; display: flex; align-items: flex-end; min-height: 140px; border-radius: 16px; overflow: hidden; background: var(--gs-navy) center/cover no-repeat; color: #fff; text-decoration: none; box-shadow: var(--gs-shadow); }
.gs-banner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.7)); }
.gs-banner-tag { position: absolute; top: 10px; right: 10px; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; background: rgba(255,255,255,.9); color: var(--gs-muted); padding: 3px 8px; border-radius: 10px; }
.gs-banner-txt { position: relative; padding: 14px 16px; display: flex; flex-direction: column; }
.gs-banner-txt strong { font-size: 16px; } .gs-banner-txt small { opacity: .9; font-size: 12.5px; }
.gs-banner-demo { min-height: 120px; background: linear-gradient(135deg, var(--gs-navy), var(--gs-primary)); }
.gs-mkt-strip { margin-top: 30px; }
.gs-ads-cta { display: flex; justify-content: space-between; align-items: center; gap: 16px; background: linear-gradient(90deg, var(--gs-primary-soft), #fff); border: 1px solid #fed7aa; border-radius: 16px; padding: 18px 22px; margin: 24px 0; flex-wrap: wrap; }
.gs-ads-cta small { display: block; color: var(--gs-muted); margin-top: 2px; }
.gs-plan-barra { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; background: #fff; border: 1px solid var(--gs-border); border-radius: 12px; padding: 10px 14px; margin-bottom: 14px; font-size: 13.5px; }
.gs-plan-barra a { font-weight: 700; }

/* Publicación (detalle) */
.gs-verif-tags span.no { background: var(--gs-neutral-soft); color: var(--gs-soft); }
.gs-resena { padding: 8px 0; border-bottom: 1px solid var(--gs-border); font-size: 14px; }
.gs-resena:last-of-type { border-bottom: 0; }
.gs-resena p { margin: 2px 0 0; color: var(--gs-muted); }
.gs-estrellas { color: #f59e0b; letter-spacing: 1px; margin: 0 6px; }
.gs-form-resena { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--gs-border); }
.gs-reportar { font-size: 13px; color: var(--gs-muted); margin: 0 0 12px; }
.gs-reportar summary { cursor: pointer; display: inline-flex; align-items: center; gap: 4px; }
.gs-reportar form { margin-top: 8px; background: #fff; border: 1px solid var(--gs-border); border-radius: 12px; padding: 12px 14px; }

/* Perfil de vendedor */
.gs-perfil-cab { border-radius: var(--gs-radius-lg); background: linear-gradient(135deg, var(--gs-navy), var(--gs-navy-2)) center/cover; padding: 60px 24px 0; margin-bottom: 20px; overflow: hidden; }
.gs-perfil-cab-in { display: flex; align-items: flex-end; gap: 18px; background: rgba(255,255,255,.96); margin: 0 -24px; padding: 16px 24px 18px; flex-wrap: wrap; }
.gs-perfil-foto .gs-avatar { width: 96px; height: 96px; border-radius: 50%; border: 4px solid #fff; box-shadow: var(--gs-shadow-lg); margin-top: -60px; object-fit: cover; }
.gs-perfil-info { flex: 1; min-width: 240px; }
.gs-perfil-info h1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 24px; }
.gs-perfil-stats { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; color: var(--gs-muted); margin-top: 6px; align-items: center; }
.gs-perfil-acc { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-perfil-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.gs-perfil-foto-edit { display: flex; align-items: center; gap: 12px; }
.gs-perfil-foto-edit .gs-avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; }

/* Publicar */
.gs-publicar-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 20px; align-items: start; }
.gs-tipo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.gs-tipo-op { position: relative; display: flex !important; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 14px 8px; border: 2px solid var(--gs-border); border-radius: 14px; cursor: pointer; margin: 0 !important; color: var(--gs-text) !important; font-weight: 500 !important; transition: all .15s; }
.gs-tipo-op input { position: absolute; opacity: 0; }
.gs-tipo-op:has(input:checked) { border-color: var(--c, var(--gs-primary)); background: color-mix(in srgb, var(--c, var(--gs-primary)) 8%, #fff); }
.gs-tipo-ico { width: 44px; height: 44px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: var(--c, var(--gs-primary)); background: color-mix(in srgb, var(--c, var(--gs-primary)) 14%, #fff); }
.gs-tipo-op strong { font-size: 13.5px; } .gs-tipo-op small { font-size: 11px; color: var(--gs-muted); }
.gs-subir { display: flex !important; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 2px dashed var(--gs-border-strong); border-radius: 14px; padding: 26px 14px; cursor: pointer; text-align: center; color: var(--gs-muted); background: var(--gs-card-2); position: relative; }
.gs-subir:hover { border-color: var(--gs-primary); color: var(--gs-primary); }
.gs-subir input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gs-subir span { font-weight: 700; color: var(--gs-text); }
.gs-fotos-prev, .gs-fotos-actuales { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.gs-fotos-prev img, .gs-foto-actual img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 10px; }
.gs-foto-actual { position: relative; margin: 0 !important; }
.gs-foto-actual span { position: absolute; left: 4px; bottom: 4px; background: rgba(255,255,255,.92); border-radius: 8px; padding: 2px 6px; font-size: 11px; font-weight: 700; display: inline-flex; gap: 4px; align-items: center; color: var(--gs-danger); }
.gs-publicar-res { position: sticky; top: 130px; }

/* Mis publicaciones */
.gs-mipub { display: grid; grid-template-columns: 90px 1fr auto; gap: 14px; align-items: center; }
.gs-mipub-img { width: 90px; height: 90px; border-radius: 12px; overflow: hidden; background: var(--gs-card-2); display: block; }
.gs-mipub-img img { width: 100%; height: 100%; object-fit: cover; }
.gs-mipub-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gs-mipub-info a { color: var(--gs-text); }
.gs-mipub-stats { display: flex; gap: 12px; font-size: 12px; color: var(--gs-soft); }
.gs-mipub-stats span { display: inline-flex; align-items: center; gap: 3px; }
.gs-mipub-acc { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.gs-inline { display: inline-flex; gap: 6px; flex-wrap: wrap; }
.gs-peligro { color: var(--gs-danger) !important; }
.gs-tabla-wrap { overflow-x: auto; padding: 0; }
.gs-tabla { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.gs-tabla th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; color: var(--gs-muted); padding: 10px 14px; background: var(--gs-card-2); border-bottom: 1px solid var(--gs-border); }
.gs-tabla td { padding: 10px 14px; border-bottom: 1px solid var(--gs-border); }

/* Mensajes */
.gs-chat-grid { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 16px; align-items: stretch; min-height: 70vh; }
.gs-chat-lista { padding: 14px; overflow-y: auto; max-height: 80vh; }
.gs-chat-lista h2 { margin-bottom: 10px; }
.gs-conv { display: grid; grid-template-columns: 44px 1fr auto; gap: 10px; align-items: center; padding: 10px; border-radius: 12px; color: var(--gs-text); text-decoration: none; }
.gs-conv:hover, .gs-conv.activa { background: var(--gs-primary-soft); }
.gs-conv .gs-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; }
.gs-conv-txt { display: flex; flex-direction: column; min-width: 0; }
.gs-conv-txt small { color: var(--gs-primary-ink); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-conv-txt em { font-style: normal; font-size: 12.5px; color: var(--gs-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gs-conv.nueva .gs-conv-txt em { color: var(--gs-text); font-weight: 600; }
.gs-conv-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; font-size: 11px; color: var(--gs-soft); }
.gs-conv-meta b { background: var(--gs-grad); color: #fff; border-radius: 10px; padding: 1px 7px; font-size: 11px; }
.gs-chat { display: flex; flex-direction: column; padding: 0; overflow: hidden; }
.gs-chat-vacio { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--gs-soft); gap: 8px; min-height: 300px; }
.gs-chat-cab { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--gs-border); }
.gs-chat-cab .gs-avatar { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; }
.gs-chat-cab > div { flex: 1; min-width: 0; }
.gs-chat-asunto-img img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; }
.gs-chat-msgs { flex: 1; overflow-y: auto; padding: 16px; display: flex; flex-direction: column; gap: 8px; background: var(--gs-bg); min-height: 320px; max-height: 60vh; }
.gs-msg { max-width: 75%; background: #fff; border: 1px solid var(--gs-border); border-radius: 14px 14px 14px 4px; padding: 8px 12px; font-size: 14px; align-self: flex-start; }
.gs-msg.mio { align-self: flex-end; background: var(--gs-grad); color: #fff; border: 0; border-radius: 14px 14px 4px 14px; }
.gs-msg p { margin: 0; word-break: break-word; }
.gs-msg time { display: block; font-size: 10.5px; opacity: .65; margin-top: 3px; text-align: right; }
.gs-chat-form { display: flex; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--gs-border); }
.gs-chat-form textarea { flex: 1; resize: none; border: 1.5px solid var(--gs-border); border-radius: 22px; padding: 10px 16px; font: inherit; max-height: 120px; }
.gs-chat-form textarea:focus { outline: 0; border-color: var(--gs-primary); }
.gs-chat-form .gs-btn { border-radius: 50%; width: 44px; height: 44px; padding: 0; }
.gs-chat-aviso { padding: 0 16px 10px; margin: 0; display: flex; gap: 4px; align-items: center; }
.gs-solo-movil { display: none; }
.gs-msg-n { background: var(--gs-teal); }

/* Notificaciones */
.gs-notif-lista { padding: 6px 10px; }
.gs-notif { display: grid; grid-template-columns: 40px 1fr auto; gap: 12px; align-items: center; padding: 12px 8px; border-bottom: 1px solid var(--gs-border); color: var(--gs-text); text-decoration: none; }
.gs-notif:last-child { border-bottom: 0; }
.gs-notif-ico { width: 40px; height: 40px; border-radius: 50%; background: var(--gs-primary-soft); color: var(--gs-primary); display: inline-flex; align-items: center; justify-content: center; }
.gs-notif small { display: block; }

/* Business */
.gs-planes { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; margin-top: 8px; }
.gs-plan { position: relative; background: #fff; border: 2px solid var(--gs-border); border-radius: 20px; padding: 24px 22px; display: flex; flex-direction: column; }
.gs-plan.popular { border-color: var(--gs-primary); box-shadow: var(--gs-shadow-lg); }
.gs-plan.actual { border-color: var(--gs-teal); }
.gs-plan-tag { position: absolute; top: -12px; left: 20px; background: var(--gs-grad); color: #fff; font-size: 11px; font-weight: 800; padding: 4px 12px; border-radius: 20px; text-transform: uppercase; letter-spacing: .4px; }
.gs-plan h3 { font-size: 20px; }
.gs-plan-precio { font-size: 32px; font-weight: 900; color: var(--gs-primary); letter-spacing: -.8px; margin: 10px 0; }
.gs-plan-precio small { font-size: 14px; color: var(--gs-soft); font-weight: 600; }
.gs-plan-ben { list-style: none; padding: 0; margin: 0 0 16px; display: grid; gap: 8px; font-size: 14px; flex: 1; }
.gs-plan-ben li { display: flex; gap: 8px; align-items: flex-start; }
.gs-plan-ben .gs-ico { color: var(--gs-success); margin-top: 3px; }

/* Envíos y repartidor */
.gs-bitacora { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.gs-bitacora li { display: flex; gap: 10px; align-items: flex-start; }
.gs-bit-punto { width: 12px; height: 12px; border-radius: 50%; background: var(--gs-primary); margin-top: 5px; flex-shrink: 0; box-shadow: 0 0 0 4px var(--gs-primary-soft); }
.gs-entrega { border-left: 4px solid var(--gs-primary); }
.gs-entrega-cab { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.gs-entrega-links { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 10px; }
.gs-entrega-form { display: grid; gap: 8px; }
.gs-entrega-form input[type=text] { margin: 0; }
.gs-entrega-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-entrega-btns .gs-btn { flex: 1; min-width: 120px; }

@media (max-width: 1100px) { .gs-publicar-grid, .gs-perfil-grid { grid-template-columns: 1fr; } .gs-publicar-res { position: static; } .gs-chat-grid { grid-template-columns: 1fr; } .gs-chat-grid.con-chat .gs-chat-lista { display: none; } .gs-solo-movil { display: inline-flex; } }
@media (max-width: 768px) { .gs-mipub { grid-template-columns: 70px 1fr; } .gs-mipub-img { width: 70px; height: 70px; } .gs-mipub-acc { grid-column: 1 / -1; justify-content: flex-start; } .gs-tipo-grid { grid-template-columns: repeat(2, 1fr); } .gs-fotos-prev, .gs-fotos-actuales { grid-template-columns: repeat(3, 1fr); } .gs-perfil-cab { padding-top: 40px; } .gs-perfil-foto .gs-avatar { width: 72px; height: 72px; margin-top: -44px; } .gs-msg { max-width: 88%; } .gs-banners { grid-template-columns: 1fr; } }

/* v2.1.0 — geolocalización */
.gs-geo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; background: var(--gs-teal-soft); border: 1px dashed var(--gs-teal); border-radius: 12px; padding: 10px 12px; margin-bottom: 12px; }
.gs-geo-txt { font-size: 13px; color: #0f766e; font-weight: 600; }
.gs-pin-wrap .gs-pin { transition: opacity .2s; } /* v3.7.1: pin sugerido atenuado hasta que el cliente lo mueve */
.gs-geo-map { font-size: 12.5px; font-weight: 700; color: var(--gs-primary-ink); display: inline-flex; align-items: center; gap: 3px; }
.gs-geo-map[hidden] { display: none; }

/* v2.2.0 — carruseles con flechas, banners por sección, mapa con pin */
.gs-seccion-slider { margin-bottom: 28px; }
.gs-vermas { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 700; background: var(--gs-neutral-soft); padding: 7px 12px; border-radius: 20px; color: var(--gs-text); }
.gs-vermas:hover { background: var(--gs-primary-soft); color: var(--gs-primary-ink); }
.gs-slider { position: relative; }
.gs-slider .gs-grid-scroll { scrollbar-width: none; padding-bottom: 6px; scroll-padding-left: 2px; }
.gs-slider .gs-grid-scroll::-webkit-scrollbar { display: none; }
.gs-slider-btn { position: absolute; top: 40%; z-index: 5; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--gs-border); background: rgba(255,255,255,.96); color: var(--gs-text); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: var(--gs-shadow-lg); transition: transform .15s, background .15s; }
.gs-slider-btn:hover { background: var(--gs-primary); color: #fff; border-color: var(--gs-primary); transform: scale(1.06); }
.gs-slider-btn.prev { left: -6px; } .gs-slider-btn.next { right: -6px; }
.gs-slider-btn[hidden] { display: none; }
.gs-slider.sin-scroll .gs-slider-btn { display: none; }
.gs-banners-sec { margin-bottom: 14px; }
.gs-banners.uno { grid-template-columns: 1fr; }
.gs-banners.uno .gs-banner { min-height: 160px; }
.gs-banners-sec .gs-banner { min-height: 120px; }
.gs-banner-cta { position: absolute; right: 16px; bottom: 16px; font-style: normal; font-size: 12.5px; font-weight: 800; background: var(--gs-grad); color: #fff; padding: 7px 14px; border-radius: 20px; box-shadow: 0 4px 12px rgba(242,101,34,.35); }
.gs-banner-txt { padding-right: 120px; }
.gs-mapa-wrap { width: 100%; }
.gs-mapa { height: 280px; border-radius: 12px; overflow: hidden; border: 1px solid var(--gs-border); background: #e5e7eb; }
.gs-mapa-ayuda { margin: 6px 0 0; font-size: 12.5px; color: var(--gs-muted); }
.gs-geo { display: block; }
.gs-geo-cab { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.gs-pin-wrap { background: transparent; border: 0; }
.gs-pin { display: block; width: 26px; height: 26px; border-radius: 50% 50% 50% 0; background: var(--gs-primary); border: 3px solid #fff; box-shadow: 0 3px 10px rgba(0,0,0,.3); transform: rotate(-45deg); margin: 4px 0 0 0; }
.gs-precio-vivo { background: var(--gs-primary-soft); border-radius: 12px; padding: 10px 14px; font-size: 14px; margin-bottom: 10px; }
.gs-precio-vivo strong { color: var(--gs-primary-ink); font-size: 16px; }
@media (max-width: 768px) { .gs-slider-btn { width: 36px; height: 36px; } .gs-slider-btn.prev { left: -6px; } .gs-slider-btn.next { right: -6px; } .gs-mapa { height: 240px; } .gs-banner-txt { padding-right: 100px; } .gs-banner-cta { right: 12px; bottom: 12px; padding: 6px 12px; } }

/* v2.3.0 — Guasa Club, puntos, cerca de mí */
.gs-hero-club { background: linear-gradient(135deg, #1a1410 0%, #3b1d0e 40%, #b5431a 100%); }
.gs-club-grid { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: 20px; align-items: start; }
.gs-tarjeta-club { background: linear-gradient(135deg, #1a1410 0%, #3b1d0e 55%, var(--gs-primary) 130%); color: #fff; border-radius: 22px; padding: 22px; box-shadow: var(--gs-shadow-lg); position: relative; overflow: hidden; }
.gs-tarjeta-club::after { content: ''; position: absolute; top: -60px; right: -60px; width: 220px; height: 220px; border-radius: 50%; background: radial-gradient(circle, rgba(20,184,166,.35), transparent 70%); }
.gs-tarjeta-club.vencida { filter: grayscale(.8); opacity: .8; }
.gs-tarjeta-vale { background: linear-gradient(135deg, #0f172a 0%, #0f766e 60%, #14b8a6 130%); }
.gs-tc-cab { display: flex; align-items: center; gap: 10px; position: relative; z-index: 1; }
.gs-tc-cab > div { flex: 1; } .gs-tc-cab small { display: block; opacity: .8; font-size: 12px; }
.gs-tc-cab .gs-avatar { width: 34px; height: 34px; border-radius: 9px; object-fit: cover; background: #fff; }
.gs-tc-estado { font-size: 10.5px; font-weight: 800; letter-spacing: .6px; background: rgba(255,255,255,.18); padding: 4px 9px; border-radius: 20px; }
.gs-tc-cuerpo { display: grid; grid-template-columns: 150px 1fr; gap: 16px; align-items: center; margin: 18px 0 14px; position: relative; z-index: 1; }
.gs-tc-qr { background: #fff; border-radius: 12px; padding: 6px; width: 162px; height: 162px; display: flex; align-items: center; justify-content: center; }
.gs-tc-qr img, .gs-tc-qr canvas { border-radius: 6px; }
.gs-tc-datos { display: flex; flex-direction: column; gap: 2px; }
.gs-tc-datos small { font-size: 10.5px; text-transform: uppercase; letter-spacing: .6px; opacity: .75; margin-top: 6px; }
.gs-tc-datos strong { font-size: 15px; }
.gs-tc-codigo { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: 1px; }
.gs-tc-valor { font-size: 26px !important; }
.gs-tc-barra { width: 100%; height: 46px; background: #fff; border-radius: 8px; padding: 4px 10px; box-sizing: border-box; position: relative; z-index: 1; }
.gs-tc-pie { font-size: 11.5px; opacity: .8; margin: 10px 0 0; position: relative; z-index: 1; }
.gs-precio-socio { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; background: var(--gs-primary-soft); color: var(--gs-primary-ink); font-size: 13px; padding: 8px 12px; border-radius: 10px; margin: 4px 0 8px; }
.gs-precio-socio .gs-ico { color: var(--gs-primary); }
.gs-verif-caja { background: #fff; border-radius: 22px; padding: 40px 24px; text-align: center; border: 3px solid var(--gs-success); max-width: 560px; margin: 20px auto; }
.gs-verif-caja.no { border-color: var(--gs-danger); }
.gs-verif-ico { width: 72px; height: 72px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--gs-success-soft); color: var(--gs-success); margin-bottom: 8px; }
.gs-verif-caja.no .gs-verif-ico { background: var(--gs-danger-soft); color: var(--gs-danger); }
.gs-verif-nombre { font-size: 20px; font-weight: 800; margin: 8px 0 2px; }
.gs-verif-caja .gs-plan-ben { text-align: left; max-width: 380px; margin: 14px auto 0; }
.gs-caja-cajero { border: 2px dashed var(--gs-teal); background: var(--gs-teal-soft); }
.gs-puntos-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.gs-puntos-saldo { background: linear-gradient(135deg, var(--gs-navy), var(--gs-navy-2)); color: #fff; border-radius: 20px; padding: 22px 24px; margin-bottom: 14px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.gs-puntos-saldo small { display: block; opacity: .8; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; }
.gs-puntos-saldo strong { font-size: 40px; font-weight: 900; line-height: 1; letter-spacing: -1px; display: block; margin: 4px 0; }
.gs-puntos-saldo span { font-size: 13px; opacity: .9; }
.gs-puntos-regla { background: rgba(255,255,255,.1); border-radius: 12px; padding: 10px 14px; font-size: 13px; display: flex; align-items: center; gap: 8px; max-width: 320px; }
.gs-puntos-regla .gs-ico { color: #5eead4; }
.gs-aliados { display: grid; gap: 12px; }
.gs-aliado { border: 1px solid var(--gs-border); border-radius: 14px; padding: 14px; }
.gs-aliado-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.gs-aliado-cab img { width: 44px; height: 44px; border-radius: 10px; object-fit: cover; }
.gs-aliado-cab small { display: block; color: var(--gs-muted); font-size: 12px; }
.gs-aliado .gs-form-inline input[type=number] { width: 130px; flex: none; }
.gs-canje-valor { font-weight: 800; color: var(--gs-primary-ink); }
.gs-caja-puntos { border-color: #fde68a; background: #fffbeb; }
.gs-puntos-usar { display: grid; grid-template-columns: 1fr auto; gap: 12px; align-items: center; }
.gs-puntos-usar input[type=range] { width: 100%; accent-color: var(--gs-primary); }
.gs-puntos-usar output { font-weight: 800; color: var(--gs-primary-ink); font-size: 14px; white-space: nowrap; }
.gs-socio-linea .gs-ico { color: var(--gs-primary); }
.gs-pill-cerca { border-color: var(--gs-teal); color: #0f766e; background: var(--gs-teal-soft); }
.gs-pill-cerca.activo { background: var(--gs-teal); color: #fff; }
.gs-pill-cerca.cargando { opacity: .6; }
.gs-pill-radio strong { color: var(--gs-teal); }
.gs-radio-slider { width: 90px; accent-color: var(--gs-teal); }
.gs-pill-mapa { background: var(--gs-text); color: #fff; border-color: var(--gs-text); }
.gs-geo-aviso .gs-ico { color: var(--gs-teal); }
.gs-mapa-resultados { height: 420px; border-radius: 16px; overflow: hidden; border: 1px solid var(--gs-border); margin-bottom: 18px; background: #e5e7eb; }
.gs-mapa-resultados[hidden] { display: none; }
.gs-mapa-mini { height: 220px; }
.gs-mapa-mini-pub { height: 240px; }
.gs-dist { color: var(--gs-teal); }
.gs-popup { display: block; width: 180px; color: var(--gs-text); text-decoration: none; }
.gs-popup img { width: 100%; height: 100px; object-fit: cover; border-radius: 8px; margin-bottom: 6px; }
.gs-popup strong { display: block; font-size: 13px; line-height: 1.3; } .gs-popup span { color: var(--gs-primary); font-weight: 800; } .gs-popup small { display: block; color: var(--gs-muted); }
@media (max-width: 1100px) { .gs-club-grid, .gs-puntos-grid { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .gs-tc-cuerpo { grid-template-columns: 1fr; justify-items: center; text-align: center; } .gs-puntos-usar { grid-template-columns: 1fr; } }

/* v2.4.0 — Cuponera Guasa */
.gs-hero-cupon { background: linear-gradient(135deg, #1a1410 0%, #7c2d12 45%, #f59e0b 100%); }
.gs-badge-t-cupon { background: linear-gradient(135deg, #f59e0b, #f26522); }
.gs-chip-cupon { border: 1px solid #fbbf24; background: #fffbeb; color: #b45309; }
.gs-chip-cupon.activo { background: linear-gradient(135deg, #f59e0b, #f26522); color: #fff; border-color: transparent; }
.gs-cupon-pct { position: absolute; bottom: 10px; left: 10px; background: var(--gs-text); color: #fff; font-weight: 900; font-size: 15px; padding: 5px 10px; border-radius: 10px; box-shadow: 0 3px 10px rgba(0,0,0,.25); }
.gs-cupon-pct-grande { top: 18px; left: auto; right: 24px; bottom: auto; font-size: 22px; padding: 8px 14px; z-index: 3; }
.gs-card-cupon.destacada { border-color: #fbbf24; box-shadow: 0 6px 20px rgba(245,158,11,.18); }
.gs-cupon-comercio { padding: 0 0 8px; border: 0 !important; margin-bottom: 4px; }
.gs-cupon-comercio .gs-avatar { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; }
.gs-cupon-comercio small { color: var(--gs-teal); font-weight: 700; }
.gs-cupon-precios { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; margin: 6px 0 4px; }
.gs-cupon-precios strong { font-size: 22px; font-weight: 900; color: var(--gs-primary); letter-spacing: -.4px; }
.gs-cupon-precios s { color: var(--gs-soft); font-size: 13px; }
.gs-cupon-precios small { background: var(--gs-success-soft); color: #15803d; font-weight: 700; font-size: 11px; padding: 2px 8px; border-radius: 10px; }
.gs-pasos-cupon { margin: 0; padding-left: 20px; font-size: 14px; line-height: 1.8; }
.gs-grid-cupones .gs-card { color: var(--gs-text); }
.gs-cupon-codigo { display: block; font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: 1px; background: var(--gs-neutral-soft); padding: 4px 8px; border-radius: 8px; font-size: 13px; margin-top: 6px; }
.gs-tarjeta-cupon { background: linear-gradient(135deg, #1a1410 0%, #7c2d12 55%, #f59e0b 130%); }
.gs-tc-img { width: 100%; height: 130px; object-fit: cover; border-radius: 12px; margin-top: 12px; position: relative; z-index: 1; }
.gs-tc-titulo { font-size: 17px; margin: 10px 0 0; position: relative; z-index: 1; }
.gs-kpis-front { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 16px; }
.gs-kpis-front .gs-kpi { background: #fff; border: 1px solid var(--gs-border); border-radius: 14px; padding: 12px 14px; display: flex; flex-direction: column; }
.gs-kpis-front .gs-kpi-l { font-size: 12px; color: var(--gs-muted); font-weight: 600; } .gs-kpis-front .gs-kpi-v { font-size: 22px; font-weight: 800; }

/* v2.5.0 — logo, ficha de producto en escritorio, banners altos, pie móvil */
.gs-logo-img { height: 48px; width: auto; max-width: 220px; object-fit: contain; border-radius: 0; }
.gs-pie .gs-logo-img { height: 44px; }

/* Ficha (producto, publicación, oferta): en escritorio galería a la izquierda y todo lo demás a la derecha */
@media (min-width: 1024px) {
  .gs-detalle { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 0 28px; max-width: var(--gs-ancho); margin: 0 auto; padding: 0 24px 40px; align-items: start; }
  .gs-detalle > .gs-det-bar { grid-column: 1 / -1; margin: 0 -24px; }
  .gs-detalle > .gs-alerta, .gs-detalle > .gs-contenedor[style] { grid-column: 1 / -1; }
  .gs-detalle > .gs-det-hero { grid-column: 1; align-self: stretch; position: static; margin-top: 22px; padding: 0; background: transparent; border: 0; display: block; }
  .gs-detalle > .gs-det-hero .gs-det-hero-in { position: sticky; top: 132px; padding: 18px; border-radius: 18px; background: #fff; border: 1px solid var(--gs-border); }
  .gs-detalle > .gs-det-hero .gs-badge-cat { top: 30px; left: 30px; } .gs-detalle > .gs-det-hero .gs-fav-grande, .gs-detalle > .gs-det-hero .gs-cupon-pct-grande { top: 30px; right: 30px; }
  .gs-detalle > .gs-det-hero .gs-det-img { width: min(100%, calc(100vh - 340px)); min-width: min(100%, 380px); box-shadow: none; border-radius: 12px; background: var(--gs-card-2); }
  .gs-detalle > .gs-contenedor.gs-det-cuerpo { grid-column: 2; display: flex; flex-direction: column; margin: 22px 0 0; padding: 0; z-index: auto; }
  .gs-det-cuerpo .gs-det-col { display: contents; }
  .gs-det-cuerpo > *, .gs-det-cuerpo .gs-det-col > * { order: 10; }
  .gs-det-cuerpo .gs-det-panel { order: 1; box-shadow: none !important; }
  .gs-det-cuerpo .gs-det-chips { order: 2; }
  .gs-det-cuerpo .gs-aviso-receta { order: 3; }
  .gs-det-cuerpo .gs-det-lateral { order: 4; position: static; margin-bottom: 12px; }
  .gs-det-cuerpo .gs-det-compra .gs-det-precio { display: none; }
  .gs-det-cuerpo .gs-det-compra > .gs-muted:first-of-type { margin-top: 0; }
  .gs-detalle > .gs-contenedor:not(.gs-det-cuerpo) { grid-column: 1 / -1; padding-left: 0; padding-right: 0; }
}

/* Banners más altos: dan más espacio al mensaje y se ven menos «alargados» */
.gs-banner { min-height: 230px; }
.gs-banners.uno .gs-banner { min-height: 260px; }
.gs-banners-sec .gs-banner { min-height: 180px; }
.gs-banner-txt { padding: 18px 20px; max-width: 70%; }
.gs-banner-txt strong { font-size: 20px; line-height: 1.2; } .gs-banner-txt small { font-size: 13.5px; }
@media (max-width: 768px) { .gs-banner { min-height: 190px; } .gs-banners.uno .gs-banner { min-height: 200px; } .gs-banners-sec .gs-banner { min-height: 150px; } .gs-banner-txt { max-width: 100%; padding-right: 110px; } .gs-banner-txt strong { font-size: 17px; } }

/* Pie: en escritorio completo; en el celular una barra compacta */
.gs-pie-movil { display: none; }
@media (max-width: 768px) {
  .gs-pie-inner { display: none; }
  .gs-pie-movil { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 16px 12px 6px; }
  .gs-pie-movil a { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; color: var(--gs-text); background: var(--gs-neutral-soft); padding: 8px 12px; border-radius: 20px; }
  .gs-pie-legal { border-top: 0; padding-top: 6px; }
  .gs-logo-img { height: 36px; max-width: 150px; }
}

/* v2.6.0 — envoltorio de galería, cabecera móvil en dos filas y menú lateral */
.gs-det-hero-in { position: relative; width: 100%; display: flex; flex-direction: column; align-items: center; }
.gs-menu-btn { display: none; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--gs-neutral-soft); color: var(--gs-text); align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.gs-menu { position: fixed; inset: 0; z-index: 1200; }
.gs-menu-fondo { position: absolute; inset: 0; background: rgba(26,20,16,.55); }
.gs-menu-panel { position: absolute; top: 0; left: 0; bottom: 0; width: min(320px, 86vw); background: #fff; overflow-y: auto; box-shadow: 0 0 40px rgba(0,0,0,.25); padding: 0 0 30px; animation: gs-menu-in .22s ease-out; }
@keyframes gs-menu-in { from { transform: translateX(-30px); opacity: 0; } to { transform: none; opacity: 1; } }
.gs-menu-top { display: flex; align-items: center; justify-content: space-between; padding: 12px 12px 12px 16px; border-bottom: 1px solid var(--gs-border); position: sticky; top: 0; background: #fff; }
.gs-menu-top .gs-logo-img { height: 34px; max-width: 150px; }
.gs-menu-sec { padding: 14px 16px 4px; }
.gs-menu-sec h4 { display: flex; align-items: center; gap: 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-primary); margin: 0 0 8px; }
.gs-menu-links { display: flex; flex-wrap: wrap; gap: 6px; }
.gs-menu-links a { font-size: 13.5px; font-weight: 600; color: var(--gs-text); background: var(--gs-neutral-soft); padding: 8px 12px; border-radius: 20px; text-decoration: none; }
.gs-menu-links a.gs-menu-oferta { background: var(--gs-primary-soft, #fff1e8); color: var(--gs-primary); }
.gs-menu-links a.gs-menu-prox { opacity: .55; }
body.gs-menu-abierto { overflow: hidden; }
@media (max-width: 768px) {
  .gs-menu-btn { display: inline-flex; }
  .gs-top-bar { flex-wrap: wrap; row-gap: 8px; padding: 8px 12px 4px; }
  .gs-logo-sec { order: 1; flex: 1; min-width: 0; gap: 8px; }
  .gs-acciones { order: 2; }
  .gs-buscar { order: 3; flex-basis: 100%; max-width: none; height: 40px; }
  .gs-buscar button { display: inline-block; padding: 0 16px; }
  .gs-logo-img { height: 36px; max-width: 140px; }
  .gs-atras { display: none; }
}

/* v2.7.1 — banner principal con tarjetas, proporcionado (editable en Ajustes → Banner principal) */
.gs-hero2 { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.35fr); gap: 28px; align-items: center; background: #fff; border: 1px solid var(--gs-border); border-radius: 22px; padding: 26px 34px; margin-bottom: 22px; box-shadow: var(--gs-shadow); background-size: cover; background-position: center; min-height: 300px; }
/* curva naranja: un gran círculo que asoma por la derecha */
.gs-hero2::before { content: ''; position: absolute; right: -22%; top: -45%; width: 62%; height: 190%; border-radius: 50%; background: linear-gradient(210deg, #ffb27a 0%, var(--gs-primary) 50%, #ff8a3d 100%); opacity: .95; pointer-events: none; }
.gs-hero2::after { content: ''; position: absolute; left: 22px; bottom: 16px; width: 110px; height: 80px; background-image: radial-gradient(circle, rgba(242,101,34,.2) 1.5px, transparent 2px); background-size: 11px 11px; pointer-events: none; }
.gs-hero2-imagen::before { display: none; } .gs-hero2-imagen > * { position: relative; z-index: 2; }
.gs-hero2-imagen::after { inset: 0; width: auto; height: auto; background: linear-gradient(90deg, rgba(255,255,255,.96) 35%, rgba(255,255,255,.82)); border-radius: 0; z-index: 1; }
.gs-hero2-naranja { background: linear-gradient(120deg, #d4521a 0%, var(--gs-primary) 55%, #ff8a3d 100%); border-color: transparent; }
.gs-hero2-naranja::before { background: rgba(255,255,255,.14); } .gs-hero2-naranja::after { background-image: radial-gradient(circle, rgba(255,255,255,.35) 1.5px, transparent 2px); }
.gs-hero2-naranja .gs-hero2-txt, .gs-hero2-naranja .gs-hero2-txt h2 em, .gs-hero2-naranja .gs-hero2-sello-ico { color: #fff; } .gs-hero2-naranja .gs-hero2-txt p { color: rgba(255,255,255,.88); }
.gs-hero2-naranja .gs-hero2-linea { background: #fff; } .gs-hero2-naranja .gs-hero2-sello-ico { background: rgba(255,255,255,.18); } .gs-hero2-naranja .gs-hero2-btn { background: #fff; color: var(--gs-primary); }
.gs-hero2-txt { position: relative; z-index: 2; color: var(--gs-text); }
.gs-hero2-logo { height: 40px; width: auto; max-width: 200px; object-fit: contain; margin-bottom: 14px; display: block; }
.gs-hero2-txt h2 { font-size: clamp(26px, 2.3vw, 34px); line-height: 1.1; font-weight: 800; letter-spacing: -.7px; margin: 0; }
.gs-hero2-txt h2 em { font-style: normal; color: var(--gs-primary); }
.gs-hero2-linea { display: block; width: 56px; height: 4px; border-radius: 4px; background: var(--gs-primary); margin: 12px 0; }
.gs-hero2-txt p { font-size: 14.5px; line-height: 1.5; color: var(--gs-muted); margin: 0; max-width: 460px; }
.gs-hero2-btn { margin-top: 14px; }
.gs-hero2-sellos { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 16px; }
.gs-hero2-sello { display: flex; align-items: center; gap: 8px; padding-right: 18px; border-right: 1px solid var(--gs-border); }
.gs-hero2-sello:last-child { border-right: 0; padding-right: 0; }
.gs-hero2-sello-ico { width: 36px; height: 36px; border-radius: 10px; background: var(--gs-primary-soft); color: var(--gs-primary); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gs-hero2-sello-ico .gs-ico, .gs-hero2-sello-ico svg { width: 18px; height: 18px; }
.gs-hero2-sello strong { display: block; font-size: 12.5px; line-height: 1.2; } .gs-hero2-sello small { display: block; font-size: 11.5px; color: var(--gs-muted); }
.gs-hero2-tarjetas { position: relative; z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.gs-hero2-n1 { grid-template-columns: minmax(0, 360px); justify-content: end; } .gs-hero2-n2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gs-hero2-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--gs-border); border-radius: 16px; padding: 16px 16px 20px; text-decoration: none; color: var(--gs-text); overflow: hidden; box-shadow: 0 8px 24px rgba(26,20,16,.08); transition: transform .2s, box-shadow .2s; }
.gs-hero2-card::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--c); }
.gs-hero2-card:hover { transform: translateY(-3px); box-shadow: 0 14px 32px rgba(26,20,16,.14); }
.gs-hero2-card-img { width: 120px; height: 120px; display: flex; align-items: center; justify-content: center; margin: 4px 0 12px; position: relative; }
.gs-hero2-card-img::before { content: ''; position: absolute; inset: 0; border-radius: 50%; background: radial-gradient(circle at 40% 35%, #fff, #f1f5f9 70%, #e2e8f0); box-shadow: inset 0 -8px 16px rgba(0,0,0,.04); }
.gs-hero2-card-img img { position: relative; width: 112%; height: 112%; max-width: none; object-fit: contain; filter: drop-shadow(0 10px 14px rgba(0,0,0,.14)); }
.gs-hero2-card-fallback { position: relative; width: 72px; height: 72px; border-radius: 50%; background: color-mix(in srgb, var(--c) 16%, #fff); color: var(--c); display: inline-flex; align-items: center; justify-content: center; }
.gs-hero2-card-fallback svg { width: 36px; height: 36px; }
.gs-hero2-card-ico { position: absolute; top: 14px; right: 14px; width: 38px; height: 38px; border-radius: 50%; background: var(--c); color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 6px 14px rgba(0,0,0,.15); }
.gs-hero2-card-ico svg { width: 18px; height: 18px; }
.gs-hero2-card h3 { font-size: 19px; font-weight: 800; letter-spacing: -.3px; margin: 0 0 5px; color: var(--c); }
.gs-hero2-card p { font-size: 13px; line-height: 1.45; color: var(--gs-text); margin: 0; }
.gs-hero2-solo { grid-template-columns: 1fr; } .gs-hero2-solo .gs-hero2-txt { max-width: 720px; }
@media (max-width: 1100px) { .gs-hero2 { grid-template-columns: 1fr; gap: 22px; padding: 26px 24px; } .gs-hero2::before { width: 80%; right: -35%; top: auto; bottom: -70%; height: 110%; } .gs-hero2-n1 { justify-content: start; } }
@media (max-width: 768px) {
  .gs-hero2 { padding: 20px 16px 16px; border-radius: 18px; gap: 16px; margin-bottom: 16px; min-height: 0; }
  .gs-hero2::before, .gs-hero2::after { display: none; }
  .gs-hero2-logo { height: 34px; margin-bottom: 10px; }
  .gs-hero2-txt h2 { font-size: 25px; } .gs-hero2-linea { margin: 10px 0; } .gs-hero2-txt p { font-size: 14px; }
  .gs-hero2-sellos { gap: 8px; margin-top: 14px; }
  .gs-hero2-sello { border-right: 0; padding: 6px 12px 6px 6px; background: var(--gs-neutral-soft); border-radius: 12px; gap: 8px; }
  .gs-hero2-sello-ico { width: 32px; height: 32px; border-radius: 9px; } .gs-hero2-sello strong { font-size: 12px; } .gs-hero2-sello small { font-size: 11px; }
  .gs-hero2-tarjetas, .gs-hero2-n2, .gs-hero2-n1 { grid-template-columns: 1fr; gap: 10px; }
  .gs-hero2-card { display: grid; grid-template-columns: 80px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 12px 48px 16px 12px; border-radius: 14px; }
  .gs-hero2-card-img { grid-row: 1 / 3; width: 80px; height: 80px; margin: 0; }
  .gs-hero2-card-fallback { width: 56px; height: 56px; } .gs-hero2-card-fallback svg { width: 28px; height: 28px; }
  .gs-hero2-card-ico { top: 12px; right: 10px; width: 32px; height: 32px; }
  .gs-hero2-card h3 { font-size: 17px; margin-bottom: 2px; align-self: end; } .gs-hero2-card p { font-size: 12.5px; align-self: start; }
}

/* v2.8.0 — portal del aliado */
.gs-aliado-portal .gs-seccion-h h1 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.gs-aliado-logo { width: 40px; height: 40px; border-radius: 10px; object-fit: cover; background: #fff; border: 1px solid var(--gs-border); }
.gs-aliado-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 1fr); gap: 18px; align-items: start; margin-bottom: 18px; }
.gs-aliado-buscar { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-aliado-buscar input { flex: 1; min-width: 180px; font-size: 20px; letter-spacing: 2px; text-transform: uppercase; font-weight: 700; padding: 12px 14px; }
.gs-escaner { margin-top: 12px; text-align: center; }
.gs-escaner #gs-escaner-video { max-width: 360px; margin: 0 auto 8px; border-radius: 14px; overflow: hidden; background: #000; }
.gs-vale-res { margin-top: 14px; border-left: 6px solid var(--gs-teal); }
.gs-vale-res.no { border-left-color: #cbd5e1; }
.gs-vale-res-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.gs-vale-valor { display: flex; flex-direction: column; align-items: center; text-align: center; background: linear-gradient(135deg, #0f766e, #14b8a6); color: #fff; border-radius: 16px; padding: 18px; margin: 14px 0; }
.gs-vale-valor small { text-transform: uppercase; letter-spacing: 1px; font-size: 11px; opacity: .9; } .gs-vale-valor strong { font-size: 40px; line-height: 1.1; } .gs-vale-valor span { font-size: 13px; opacity: .9; }
.gs-aliado-kpi { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; text-align: center; }
.gs-aliado-kpi div { background: var(--gs-card-2); border-radius: 12px; padding: 12px 6px; } .gs-aliado-kpi small { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-muted); } .gs-aliado-kpi strong { display: block; font-size: 24px; } .gs-aliado-kpi span { font-size: 12px; color: var(--gs-muted); }
.gs-pin-code { font-size: 22px; letter-spacing: 4px; font-weight: 800; background: var(--gs-primary-soft); color: var(--gs-primary-ink); padding: 4px 10px; border-radius: 8px; }
.gs-tabla-scroll { overflow-x: auto; }
@media (max-width: 900px) { .gs-aliado-grid { grid-template-columns: 1fr; } .gs-aliado-buscar input { font-size: 18px; } }

/* v2.8.1 — puntos sin desborde en el celular, aliados con distancia, tarjeta de planes */
.gs-puntos-saldo > div { min-width: 0; }
.gs-puntos-saldo strong { overflow-wrap: anywhere; }
.gs-puntos-regla { max-width: 100%; flex-wrap: wrap; line-height: 1.4; }
.gs-puntos-regla strong { font-size: inherit; display: inline; margin: 0; letter-spacing: 0; font-weight: 800; }
.gs-puntos-regla .gs-ico { flex-shrink: 0; }
.gs-puntos, .gs-puntos-grid > div { min-width: 0; }
.gs-aliados-filtros { margin: 10px 0 14px; }
.gs-puntos .gs-mapa-resultados { margin-bottom: 14px; }
.gs-dist { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 700; color: #0f766e; background: var(--gs-teal-soft); padding: 2px 8px; border-radius: 12px; vertical-align: middle; margin-left: 4px; }
.gs-club-cta { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; text-decoration: none; color: inherit; border: 1.5px solid var(--gs-primary); background: var(--gs-primary-soft); }
.gs-club-cta:hover { box-shadow: var(--gs-ring); }
.gs-club-cta-ico { width: 48px; height: 48px; border-radius: 14px; background: var(--gs-grad); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gs-club-cta-txt { flex: 1; min-width: 0; } .gs-club-cta-txt strong { display: block; font-size: 15.5px; line-height: 1.25; } .gs-club-cta-txt small { color: var(--gs-muted); display: block; margin-top: 2px; }
@media (max-width: 480px) { .gs-puntos-saldo { padding: 18px 16px; } .gs-puntos-saldo strong { font-size: 34px; } .gs-club-cta { flex-wrap: wrap; } .gs-club-cta .gs-btn { width: 100%; } }

/* v2.9.0 — centro de notificaciones, panel de la campana, preferencias */
.gs-circulo-notif { position: relative; border: 0; cursor: pointer; }
.gs-notif-panel { position: fixed; top: 64px; right: 24px; width: min(380px, calc(100vw - 24px)); background: #fff; border: 1px solid var(--gs-border); border-radius: 18px; box-shadow: 0 18px 48px rgba(26,20,16,.18); z-index: 1100; overflow: hidden; }
.gs-notif-panel-cab { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; border-bottom: 1px solid var(--gs-border); font-size: 15px; }
.gs-notif-panel-cab a { color: var(--gs-muted); display: inline-flex; }
.gs-notif-panel-lista { max-height: min(60vh, 460px); overflow-y: auto; padding: 4px 8px; }
.gs-notif-panel-pie { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--gs-border); background: var(--gs-card-2); }
.gs-notif-vacio { padding: 18px 10px; text-align: center; }
.gs-notif { text-decoration: none; color: var(--gs-text); border-radius: 12px; }
.gs-notif:hover { background: var(--gs-card-2); }
.gs-notif.nueva { background: var(--gs-primary-soft); }
.gs-notif.nueva .gs-notif-txt strong::after { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--gs-primary); margin-left: 6px; vertical-align: middle; }
.gs-notif-txt { min-width: 0; } .gs-notif-txt strong { display: block; font-size: 14px; line-height: 1.25; } .gs-notif-txt > span { display: block; font-size: 13px; color: var(--gs-muted); margin-top: 2px; line-height: 1.35; } .gs-notif-txt small { margin-top: 3px; font-size: 11.5px; }
.gs-notif-ico-envio { background: var(--gs-teal-soft); color: #0f766e; } .gs-notif-ico-puntos { background: #fef3c7; color: #b45309; } .gs-notif-ico-mensaje { background: #dbeafe; color: #1d4ed8; } .gs-notif-ico-cupon, .gs-notif-ico-oferta { background: var(--gs-success-soft); color: #15803d; } .gs-notif-ico-admin { background: #fee2e2; color: #b91c1c; }
.gs-notif-dia { font-size: 11.5px; text-transform: uppercase; letter-spacing: .6px; color: var(--gs-muted); margin: 12px 8px 4px; }
.gs-notif-filtros { padding: 0 0 12px; margin: 0 0 4px; box-shadow: none; background: transparent; }
.gs-notif-acciones { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-notif-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: 18px; align-items: start; }
.gs-push-estado { background: var(--gs-card-2); border-radius: 12px; padding: 12px 14px; font-weight: 600; margin: 10px 0; }
.gs-push-btns { display: flex; gap: 8px; flex-wrap: wrap; }
.gs-chips-prefs { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 16px; }
.gs-chip-check { cursor: pointer; } .gs-chip-check input { accent-color: var(--gs-primary); margin: 0 2px 0 0; }
.gs-chip-check:has(input:checked) { background: var(--gs-primary); color: #fff; border-color: var(--gs-primary); }
@media (max-width: 768px) {
  .gs-acciones .gs-circulo.gs-circulo-notif { display: inline-flex; }
  .gs-notif-panel { top: 58px; right: 8px; left: 8px; width: auto; }
  .gs-notif-grid { grid-template-columns: 1fr; }
}

/* v2.10.1 — banners tipo slider y selector de zona */
.gs-banners-wrap { margin-bottom: 24px; } .gs-banners-wrap-sec { margin-bottom: 14px; }
.gs-banners { display: flex; gap: 14px; margin-bottom: 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -ms-overflow-style: none; overscroll-behavior-x: contain; grid-template-columns: none; }
.gs-banners::-webkit-scrollbar { display: none; }
.gs-banners .gs-banner { flex: 0 0 calc((100% - 14px * (var(--gs-n, 3) - 1)) / var(--gs-n, 3)); scroll-snap-align: start; }
.gs-banners.uno { display: flex; } .gs-banners.uno .gs-banner { flex-basis: 100%; }
.gs-banners-dots { display: flex; justify-content: center; gap: 6px; margin-top: 8px; }
.gs-banners-dots button { width: 8px; height: 8px; border-radius: 50%; border: 0; padding: 0; background: #cbd5e1; cursor: pointer; transition: width .2s, background .2s; }
.gs-banners-dots button.activo { width: 22px; border-radius: 4px; background: var(--gs-primary); }
.gs-zona { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: -6px 0 12px; }
.gs-zona .gs-pill { padding: 5px 12px; font-size: 13px; } .gs-zona .gs-pill span { color: var(--gs-muted); font-weight: 600; }
.gs-zona small { font-size: 12px; }
@media (max-width: 768px) { .gs-banners .gs-banner { flex-basis: 100%; } .gs-zona small { display: none; } }

/* v2.10.2 — precio de socio visible en tarjetas, ficha y carrito */
.gs-badge-socio { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; font-weight: 800; letter-spacing: .2px; background: var(--gs-primary-soft); color: var(--gs-primary-ink); padding: 2px 7px; border-radius: 10px; vertical-align: middle; white-space: nowrap; }
.gs-badge-socio .gs-ico { color: var(--gs-primary); }
.gs-card-price.socio { flex-wrap: wrap; row-gap: 2px; }
.gs-card-socio { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--gs-primary-ink); margin: -2px 0 6px; }
.gs-card-socio .gs-ico { color: var(--gs-primary); } .gs-card-socio strong { font-weight: 800; }
.gs-det-precio.socio .gs-badge-socio { font-size: 12px; padding: 4px 10px; margin-left: 6px; }
.gs-linea-precio .gs-socio-txt { color: var(--gs-primary-ink); } .gs-linea-precio s { color: var(--gs-soft); font-weight: 500; }

/* v2.10.3 — con membresía: precio normal gris tachado y precio de socio resaltado; sin membresía, solo el precio normal */
.gs-card-price.socio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.gs-card-price.socio .gs-precio-normal, .gs-det-precio.socio .gs-precio-normal { flex-basis: 100%; order: -1; font-size: 13px; font-weight: 500; color: #9a8f88; text-decoration: line-through; letter-spacing: 0; }
.gs-card-price.socio .gs-precio-soc { color: var(--gs-primary); font-size: 21px; font-weight: 900; }
.gs-det-precio.socio { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.gs-det-precio.socio .gs-precio-normal { font-size: 16px; }
.gs-det-precio.socio .gs-precio-soc { color: var(--gs-primary); font-weight: 900; }
.gs-card-socio { display: none; }

/* v2.11.0 — pago con Fri */
.gs-fri-qr { display: inline-flex; flex-direction: column; align-items: center; gap: 6px; background: #fff; border: 1px solid var(--gs-border); border-radius: 14px; padding: 12px; margin: 8px 0; }
.gs-fri-qr img { width: 200px; height: 200px; object-fit: contain; }
.gs-fri-qr small { color: var(--gs-muted); }

/* v2.11.3 — logo centrado en la cabecera del celular */
@media (max-width: 768px) {
  .gs-top-bar { position: relative; }
  .gs-logo-sec .gs-logo { position: absolute; left: 50%; top: 8px; transform: translateX(-50%); height: 40px; display: flex; align-items: center; margin: 0; }
  .gs-logo-sec .gs-logo .gs-logo-img { height: 34px; max-width: 150px; }
}

/* v3.0.0 — marketplace de productos: solicitud, portal del vendedor, «vendido por» */
.gs-vender-grid { display: grid; grid-template-columns: 1fr; gap: 16px; max-width: 900px; margin: 0 auto; }
.gs-vender .gs-caja h2, .gs-negocio-portal .gs-caja h2 { font-size: 18px; margin: 0 0 10px; }
.gs-subir-doc { min-height: 96px; position: relative; } .gs-subir-doc small { font-size: 11.5px; }
.gs-doc-ok { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 700; color: #15803d; background: var(--gs-success-soft); padding: 3px 8px; border-radius: 10px; margin-top: 6px; }
.gs-terminos { background: var(--gs-card-2); border-radius: 12px; padding: 10px 14px; font-size: 13px; color: var(--gs-muted); max-height: 160px; overflow-y: auto; margin: 10px 0; }
.gs-negocio-nav { padding: 0 0 12px; margin: -4px 0 8px; box-shadow: none; background: transparent; }
.gs-acciones-fila { white-space: nowrap; } .gs-acciones-fila .gs-form-inline { display: inline-flex; gap: 4px; margin-left: 4px; }
.gs-galeria-actual { display: flex; flex-wrap: wrap; gap: 10px; margin: 8px 0; }
.gs-gal-item { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 11.5px; color: var(--gs-muted); } .gs-gal-item img { width: 84px; height: 84px; object-fit: cover; border-radius: 10px; border: 1px solid var(--gs-border); }
.gs-venta-items li { display: grid; grid-template-columns: 44px 1fr; gap: 10px; align-items: center; }
.gs-entrega-monto { margin-left: auto; font-weight: 800; color: var(--gs-primary); } .gs-entrega-monto small { font-weight: 600; color: var(--gs-muted); }
.gs-card-seller[href] { text-decoration: none; color: inherit; } .gs-card-seller .gs-avatar { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; }
.gs-ads-cta-vender { border: 1.5px solid var(--gs-primary); background: var(--gs-primary-soft); }
.gs-error { color: #b91c1c; }
@media (max-width: 768px) { .gs-acciones-fila { white-space: normal; } .gs-entrega-monto { margin-left: 0; flex-basis: 100%; } }
/* v3.0.1 */
.gs-chip-vender { border-color: var(--gs-primary); color: var(--gs-primary-ink); background: var(--gs-primary-soft); }
.gs-chip-vender .gs-ico { color: var(--gs-primary); }
/* v3.1.0 — panel del vendedor, inventario, paquetes, etiqueta de envío */
.gs-kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 14px 0; }
.gs-kpi-caja { background: var(--gs-surface, #fff); border: 1px solid var(--gs-border, #e5e7eb); border-radius: 12px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gs-kpi-caja small { color: var(--gs-muted, #6b7280); font-size: 12px; text-transform: uppercase; letter-spacing: .02em; }
.gs-kpi-caja strong { font-size: 22px; line-height: 1.15; color: var(--gs-ink, #111827); }
.gs-kpi-caja span { font-size: 12px; color: var(--gs-muted, #6b7280); }
.gs-panel-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 14px; }
.gs-barras { display: flex; align-items: flex-end; gap: 6px; height: 150px; padding-top: 8px; }
.gs-barra { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; min-width: 0; }
.gs-barra span { display: block; width: 100%; max-width: 30px; background: var(--gs-primary, #16a34a); border-radius: 6px 6px 2px 2px; min-height: 2px; transition: height .3s; }
.gs-barra small { font-size: 10px; color: var(--gs-muted, #6b7280); margin-top: 4px; }
.gs-top-lista li { display: flex; gap: 10px; align-items: center; }
.gs-alerta-link { display: flex; align-items: center; gap: 8px; text-decoration: none; }
.gs-caja-h { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.gs-caja-h h2 { margin: 0; }
.gs-tabla-inv td { vertical-align: middle; }
.gs-inv-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.gs-inv-form select, .gs-inv-form input { padding: 6px 8px; font-size: 13px; }
.gs-stock.sin { color: #b91c1c; } .gs-stock.bajo { color: #b45309; }
tr.gs-inv-sin td:first-child { box-shadow: inset 3px 0 0 #b91c1c; } tr.gs-inv-bajo td:first-child { box-shadow: inset 3px 0 0 #f59e0b; }
.gs-venta-items { margin: 8px 0; } .gs-venta-items li { display: flex; gap: 10px; align-items: center; }
.gs-bitacora { margin-top: 8px; font-size: 13px; } .gs-bitacora summary { cursor: pointer; color: var(--gs-muted, #6b7280); } .gs-bitacora ul { margin: 6px 0 0 16px; }
.gs-paquete-nuevo { box-shadow: inset 4px 0 0 var(--gs-primary, #16a34a); }
.gs-paquetes .gs-paquete { border: 1px solid var(--gs-border, #e5e7eb); border-radius: 10px; padding: 10px 12px; margin-top: 8px; }
.gs-paquete-cab { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 4px; }
.gs-paquete ul { margin: 0 0 4px 16px; font-size: 14px; }
.gs-radio-linea { display: flex; gap: 8px; align-items: center; padding: 6px 0; font-weight: 500; }
.gs-fieldset { border: 1px solid var(--gs-border, #e5e7eb); border-radius: 10px; padding: 10px 14px; margin: 10px 0; }
.gs-fieldset legend { font-weight: 600; padding: 0 6px; }
.gs-docs-lista { list-style: none; margin: 10px 0; padding: 0; text-align: left; display: inline-block; }
.gs-docs-lista li { padding: 3px 0; }
.gs-subir [data-gs-subir-nombre] { display: block; font-style: normal; font-size: 12px; color: var(--gs-primary-ink, #166534); margin-top: 4px; word-break: break-all; }
.gs-subir-listo { border-color: var(--gs-primary, #16a34a) !important; background: var(--gs-primary-soft, #f0fdf4) !important; }
.gs-rep-origen { background: #fffbeb; border: 1px dashed #f59e0b; border-radius: 8px; padding: 8px 10px; }
/* Etiqueta / orden de envío */
.gs-etiqueta { background: #fff; color: #111; border: 2px solid #111; border-radius: 8px; max-width: 560px; margin: 12px auto; padding: 14px 16px; font-size: 14px; }
.gs-et-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; border-bottom: 2px solid #111; padding-bottom: 8px; }
.gs-et-logo { max-height: 42px; max-width: 140px; } .gs-et-tit { text-align: right; display: flex; flex-direction: column; } .gs-et-tit strong { font-size: 20px; letter-spacing: .04em; } .gs-et-tit small { font-size: 11px; color: #444; }
.gs-et-barra { width: 100%; height: 64px; margin: 8px 0; }
.gs-et-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 8px 0; }
.gs-et-grid > div { display: flex; flex-direction: column; gap: 2px; } .gs-et-grid small { font-size: 10px; letter-spacing: .06em; color: #555; } .gs-et-grid strong { font-size: 16px; }
.gs-et-para { border: 2px solid #111; border-radius: 6px; padding: 8px 10px; }
.gs-et-items { width: 100%; border-collapse: collapse; margin: 8px 0; font-size: 13px; } .gs-et-items th, .gs-et-items td { border-bottom: 1px solid #999; padding: 4px 6px; text-align: left; }
.gs-et-pie { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; font-size: 13px; }
.gs-et-cobrar { background: #111; color: #fff; padding: 4px 8px; border-radius: 4px; }
.gs-et-qr { display: flex; flex-direction: column; align-items: center; margin-top: 10px; } .gs-et-qr img, .gs-et-qr canvas { width: 110px !important; height: 110px !important; } .gs-et-qr small { font-size: 10px; color: #555; }
@media print { body * { visibility: hidden; } .gs-etiqueta, .gs-etiqueta * { visibility: visible; } .gs-etiqueta { position: absolute; left: 0; top: 0; margin: 0; max-width: none; width: 100%; border-width: 1px; } .gs-no-imprimir { display: none !important; } }
@media (max-width: 768px) { .gs-panel-grid { grid-template-columns: 1fr; } .gs-kpi-caja strong { font-size: 19px; } .gs-et-grid { grid-template-columns: 1fr; } }
/* v3.1.1 — seguimiento por paquete */
.gs-tramo { border: 1px solid var(--gs-border, #e5e7eb); border-radius: 12px; padding: 12px 14px; margin-top: 10px; }
.gs-tramo-entregado { border-color: rgba(22,163,74,.35); background: #f7fdf9; }
.gs-tramo-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
.gs-tramo-items { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 13px; }
.gs-tramo-items li { display: flex; align-items: center; gap: 6px; } .gs-tramo-items .gs-mini-img { width: 28px; height: 28px; }
.gs-tramo-nota { margin: 8px 0 0; font-size: 13px; }
.gs-linea-fechas li small { font-weight: 400; font-size: 10px; color: var(--gs-muted, #6b7280); margin-top: -2px; }
.gs-tramo-mini { display: inline-flex; align-items: center; gap: 4px; margin-right: 8px; white-space: nowrap; }
@media (max-width: 768px) { .gs-tramo-cab { flex-direction: column; } .gs-linea-fechas li small { display: none; } }
/* v3.2.0 — soporte, reclamos y protección al comprador */
.gs-tickets { display: flex; flex-direction: column; gap: 8px; }
.gs-ticket-fila { display: flex; justify-content: space-between; align-items: center; gap: 12px; text-decoration: none; color: inherit; }
.gs-ticket-fila:hover { border-color: var(--gs-primary, #f26522); }
.gs-ticket-urgente { box-shadow: inset 4px 0 0 #b91c1c; }
.gs-ticket-chat .gs-chat-msgs { display: flex; flex-direction: column; gap: 8px; max-height: none; }
.gs-msg-autor { display: block; font-size: 11px; opacity: .7; margin-bottom: 2px; }
.gs-msg-sistema, .gs-msg-guasa { background: #fff7ed; border-color: #fed7aa; align-self: stretch; max-width: 100%; }
.gs-msg-sistema { font-style: italic; }
.gs-msg-fotos { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; } .gs-msg-fotos img { width: 72px; height: 72px; object-fit: cover; border-radius: 8px; border: 1px solid rgba(0,0,0,.1); }
.gs-chat-acciones { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 6px; }
.gs-subir-mini { padding: 6px 10px; flex-direction: row; gap: 6px; min-height: 0; font-size: 12px; }
.gs-propuestas { margin-bottom: 8px; }
.gs-garantia .gs-lista-check { list-style: none; padding: 0; margin: 8px 0 12px; } .gs-garantia .gs-lista-check li { padding: 4px 0 4px 22px; position: relative; font-size: 14px; } .gs-garantia .gs-lista-check li::before { content: '✔'; position: absolute; left: 0; color: var(--gs-success, #16a34a); }
.gs-tramo-acciones { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.gs-prueba { display: inline-flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.gs-kpi-alerta { border-color: #fecaca; background: #fff7f7; }
.gs-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@media (max-width: 768px) { .gs-grid-3 { grid-template-columns: 1fr; } .gs-ticket-fila { flex-direction: column; align-items: flex-start; } }
/* v3.2.1 — importación por lote del vendedor */
.gs-tabla-cols th { width: 190px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 12.5px; text-align: left; }
.gs-lista-errores { margin: 8px 0 0 18px; font-size: 13.5px; }
/* v3.3.0 — inmuebles: chips, filtros, portada */
.gs-card-chips { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 12px; font-weight: 600; color: #475569; margin: -4px 0 8px; }
.gs-card-chips span { display: inline-flex; align-items: center; gap: 3px; } .gs-card-chips .gs-ico { color: var(--gs-primary); }
.gs-op-fila { display: flex; gap: 8px; flex-wrap: wrap; margin: 0 0 12px; }
.gs-tiles { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; margin: 4px 0 18px; }
.gs-tile { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; padding: 14px 8px; background: #fff; border: 1.5px solid var(--gs-border); border-radius: 14px; text-decoration: none; color: inherit; transition: .15s; }
.gs-tile:hover { border-color: var(--gs-primary); transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.gs-tile-ico { width: 48px; height: 48px; border-radius: 12px; background: var(--gs-primary-soft, #fdeee4); color: var(--gs-primary); display: grid; place-items: center; }
.gs-tile strong { font-size: 13.5px; } .gs-tile small { font-size: 11px; color: var(--gs-muted); }
.gs-pill-filtros b { background: var(--gs-primary); color: #fff; border-radius: 10px; padding: 0 7px; font-size: 11px; } .gs-pill-filtros.activo { border-color: var(--gs-primary); }
/* v3.3.1 — filtros: columna fija a la izquierda en escritorio, cajón desde la izquierda en móvil/tableta */
.gs-mkt-cols { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; align-items: start; }
.gs-mkt-main { min-width: 0; }
.gs-filtros-panel { background: #fff; display: flex; flex-direction: column; }
.gs-filtros-panel[hidden], .gs-filtros-fondo[hidden] { display: none !important; }
.gs-filtros-fondo { position: fixed; inset: 0; background: rgba(15,23,42,.45); z-index: 60; }
.gs-filtros-n { background: var(--gs-primary); color: #fff; border-radius: 10px; padding: 0 7px; font-size: 11px; margin-left: 4px; vertical-align: middle; }
@media (max-width: 1023px) {
  .gs-filtros-panel { position: fixed; top: 0; left: 0; bottom: 0; width: min(400px, 100%); z-index: 61; box-shadow: 8px 0 30px rgba(0,0,0,.15); animation: gs-filtros-entra .22s ease-out; }
  @keyframes gs-filtros-entra { from { transform: translateX(-100%); } to { transform: none; } }
}
@media (min-width: 1024px) {
  .gs-mkt-cols.con-filtros { grid-template-columns: 290px minmax(0, 1fr); }
  .gs-mkt-cols.con-filtros .gs-filtros-panel { display: flex !important; position: sticky; top: 130px; max-height: calc(100vh - 146px); border: 1.5px solid var(--gs-border); border-radius: 16px; overflow: hidden; }
  .gs-mkt-cols.con-filtros .gs-filtros-cab { font-size: 16px; padding: 12px 16px; }
  .gs-mkt-cols.con-filtros .gs-filtros-cab [data-gs-filtros-cerrar], .gs-mkt-cols.con-filtros .gs-pill-filtros, .gs-mkt-cols.con-filtros .gs-filtros-fondo { display: none !important; }
  .gs-mkt-cols.con-filtros .gs-filtros-cuerpo { padding: 4px 16px 14px; }
  .gs-mkt-cols.con-filtros .gs-filtros-pie { padding: 10px 16px; border-radius: 0 0 16px 16px; }
  .gs-mkt-cols.con-filtros .gs-filtros-pie .gs-btn-lg { padding: 9px 14px; font-size: 14px; }
  .gs-mkt-cols.con-filtros .gs-grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 18px; }
  .gs-mkt-cols.con-filtros .gs-grid-scroll { grid-template-columns: none; grid-auto-columns: calc((100% - 3 * 18px) / 4); }
  .gs-mkt-cols.con-filtros .gs-filtros-hint { display: inline; }
}
/* v3.4.0 — página de inmuebles: zona detectada, chips de filtros activos, secciones con banners, vacío con sugerencias */
.gs-filtros-hint { display: none; font-size: 11.5px; font-weight: 500; color: var(--gs-muted); margin-left: auto; }
.gs-filtros-cab strong { display: inline-flex; align-items: center; gap: 6px; }
.gs-filtros-cargando .gs-filtros-cuerpo { opacity: .45; pointer-events: none; transition: opacity .2s; }
.gs-zona-nota { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13.5px; color: var(--gs-muted); margin: -8px 0 14px; }
.gs-zona-nota .gs-ico { color: var(--gs-primary); } .gs-zona-nota strong { color: var(--gs-text); } .gs-zona-nota a { font-weight: 700; color: var(--gs-primary-ink, #b8471a); text-decoration: underline; text-underline-offset: 2px; }
.gs-fchips { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: -6px 0 16px; font-size: 13px; }
.gs-fchips > span { color: var(--gs-muted); font-weight: 600; margin-right: 2px; }
.gs-fchip { display: inline-flex; align-items: center; gap: 5px; padding: 5px 10px; border-radius: 20px; background: var(--gs-primary-soft, #fdeee4); color: var(--gs-primary-ink, #b8471a); border: 1.5px solid var(--gs-primary); font-weight: 700; text-decoration: none; }
.gs-fchip b { font-size: 15px; line-height: 1; } .gs-fchip:hover { background: var(--gs-primary); color: #fff; }
.gs-fchip-limpiar { font-weight: 700; color: var(--gs-muted); text-decoration: underline; text-underline-offset: 2px; margin-left: 4px; }
.gs-todos-h { margin-top: 6px; padding-top: 18px; border-top: 1px solid var(--gs-border); align-items: baseline; gap: 10px; } .gs-todos-h .gs-conteo { font-size: 13px; color: var(--gs-muted); font-weight: 600; }
.gs-mkt-main .gs-seccion-slider { margin-bottom: 24px; }
.gs-mkt-main .gs-banners-wrap { margin: 2px 0 26px; } .gs-mkt-main .gs-banners .gs-banner { min-height: 150px; }
.gs-vacio-filtros { padding: 40px 24px; } .gs-vacio-btns { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; margin-top: 6px; }
@media (max-width: 768px) { .gs-mkt-main .gs-banners .gs-banner { min-height: 130px; } }
/* v3.5.0 — nota del tipo (p. ej. Alquileres → Inmuebles en alquiler) */
.gs-tipo-nota { display: flex; align-items: flex-start; gap: 8px; background: var(--gs-primary-soft, #fdeee4); border: 1px solid #f9c9ad; border-radius: 12px; padding: 10px 14px; font-size: 13.5px; color: var(--gs-text); margin: 0 0 12px; }
.gs-tipo-nota .gs-ico { color: var(--gs-primary); flex-shrink: 0; margin-top: 1px; } .gs-tipo-nota a { font-weight: 700; color: var(--gs-primary-ink, #b8471a); text-decoration: underline; text-underline-offset: 2px; }
.gs-modalidad { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 14px; }
.gs-modalidad-op { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: center; padding: 14px 16px; border: 2px solid var(--gs-border); border-radius: 16px; background: #fff; cursor: pointer; }
.gs-modalidad-op input { display: none; } .gs-modalidad-op > span { grid-row: span 2; width: 44px; height: 44px; border-radius: 12px; background: var(--gs-primary-soft, #fdeee4); color: var(--gs-primary); display: grid; place-items: center; }
.gs-modalidad-op strong { font-size: 15px; } .gs-modalidad-op small { color: var(--gs-muted); line-height: 1.4; }
.gs-modalidad-op.activo { border-color: var(--gs-primary); box-shadow: 0 0 0 3px rgba(242,101,34,.15); }
.gs-hero-sub { margin: 6px 0 0; opacity: .95; }
.gs-chip-emp { background: #ccfbf1; color: #0f766e; display: inline-flex; align-items: center; gap: 4px; }
.gs-emp-franja { border-radius: 12px; border: 1px solid #a5f3fc; margin-bottom: 14px; } .gs-emp-franja .gs-aviso-in { padding: 10px 14px; }
.gs-formalizar { margin-bottom: 18px; border: 1.5px dashed var(--gs-primary); } .gs-docs-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 8px 0; }
@media (max-width: 640px) { .gs-modalidad, .gs-docs-grid { grid-template-columns: 1fr; } }
/* v3.12.0 — estados de cuenta de la Cuponera en el portal del comercio */
.gs-cobros { margin-bottom: 18px; } .gs-cobro-pagar { display: flex; gap: 6px; align-items: center; } .gs-cobro-pagar select { padding: 6px 8px; border: 1.5px solid var(--gs-border); border-radius: 10px; font: inherit; font-size: 13px; }
/* v3.11.0 — comercio local */
.gs-chip-local { border: 1px solid #99f6e4; background: #f0fdfa; color: #0f766e; } .gs-chip-local.activo { background: var(--gs-grad); color: #fff; border-color: transparent; }
.gs-sello-local { font-style: normal; font-size: 10.5px; font-weight: 800; background: #ccfbf1; color: #0f766e; padding: 1px 6px; border-radius: 8px; margin-left: 4px; }
.gs-local-hero { background: linear-gradient(120deg, #0f766e, #14b8a6); color: #fff; border-radius: 20px; padding: 26px 28px; margin-bottom: 20px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; justify-content: space-between; }
.gs-local-hero h2 { margin: 0 0 6px; font-size: 26px; } .gs-local-hero p { margin: 0; opacity: .92; max-width: 640px; }
.gs-local-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; margin-bottom: 26px; }
.gs-local-card { background: #fff; border: 1.5px solid var(--gs-border); border-radius: 16px; padding: 14px; display: flex; gap: 12px; align-items: flex-start; text-decoration: none; color: inherit; transition: .15s; }
.gs-local-card:hover { border-color: #14b8a6; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,.06); }
.gs-local-card img, .gs-local-card .gs-vend-foto { width: 56px; height: 56px; border-radius: 14px; object-fit: cover; flex-shrink: 0; }
.gs-local-card strong { display: block; font-size: 15px; } .gs-local-card small { color: var(--gs-muted); display: block; margin-top: 2px; }
.gs-local-card .gs-local-n { margin-top: 6px; font-size: 12px; color: #0f766e; font-weight: 700; }
@media (max-width: 600px) { .gs-local-grid { grid-template-columns: minmax(0, 1fr); } .gs-local-hero { padding: 20px; } .gs-local-hero h2 { font-size: 21px; } }
/* v3.9.0 — facturación del vendedor */
.gs-fel-caja { border: 1px dashed var(--gs-primary); background: var(--gs-primary-soft, #fdeee4); border-radius: 12px; padding: 10px 12px; margin: 10px 0; font-size: 13.5px; }
.gs-fel-caja.ok { border-style: solid; border-color: #86efac; background: #f0fdf4; }
.gs-fel-datos { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 6px; } .gs-fel-datos b { color: var(--gs-text); }
.gs-fel-form { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; } .gs-fel-form input[type=text] { padding: 7px 10px; border: 1.5px solid var(--gs-border); border-radius: 10px; font: inherit; font-size: 13px; } .gs-fel-form small { flex-basis: 100%; }
.gs-fel-ok { margin: 0; color: #15803d; } .gs-fel-ok .gs-ico { color: #15803d; vertical-align: -2px; }
.gs-fel-nota { margin-bottom: 14px; }
/* v3.8.0 — franjas de aviso (feriados, mantenimiento) */
.gs-aviso-franja { font-size: 14px; border-bottom: 1px solid transparent; }
.gs-aviso-in { display: flex; align-items: center; gap: 10px; padding: 10px 0; flex-wrap: wrap; } .gs-aviso-in > div { flex: 1; min-width: 200px; } .gs-aviso-in small { color: inherit; opacity: .8; margin-left: 6px; }
.gs-aviso-info { background: #ecfeff; color: #155e75; border-color: #a5f3fc; } .gs-aviso-info .gs-ico { color: #0891b2; }
.gs-aviso-alerta { background: var(--gs-primary-soft, #fdeee4); color: #9a3412; border-color: #fdba74; } .gs-aviso-alerta .gs-ico { color: var(--gs-primary); }
.gs-aviso-mantenimiento { background: #fef9c3; color: #713f12; border-color: #fde68a; } .gs-aviso-mantenimiento .gs-ico { color: #ca8a04; }
.gs-negocio-nav + .gs-aviso-franja { border-radius: 12px; border: 1px solid; margin: 0 0 14px; } .gs-negocio-nav + .gs-aviso-franja .gs-aviso-in { padding: 10px 14px; }
/* v3.6.3 — acceso: logo de la tienda y botón «ver contraseña» */
.gs-acceso-caja .gs-logo-img-acceso { height: 46px; max-width: 220px; width: auto; }
.gs-pass-wrap { position: relative; display: block; }
.gs-pass-wrap input { width: 100%; padding-right: 44px; box-sizing: border-box; }
.gs-pass-ver { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border: 0; background: none; color: var(--gs-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; }
.gs-pass-ver:hover { color: var(--gs-primary); background: var(--gs-primary-soft, #fdeee4); }
/* v3.6.0 — filtros de la tienda: casillas y listas plegables */
.gs-fcheck { width: 100%; justify-content: flex-start; gap: 6px; }
.gs-fsec-plegable .gs-fpill-extra { display: none; } .gs-fsec-plegable.abierta .gs-fpill-extra { display: inline-flex; }
.gs-fver-mas { margin-top: 8px; border: 0; background: none; color: var(--gs-primary-ink, #b8471a); font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; padding: 0; text-decoration: underline; text-underline-offset: 2px; }
.gs-explorar .gs-card-chips { margin: -2px 0 6px; }
/* v3.4.1 — banners dentro de la cuadrícula de resultados */
.gs-grid-ad { grid-column: 1 / -1; min-width: 0; overflow: hidden; } .gs-grid-ad .gs-banners-wrap { margin: 0; } .gs-grid-ad .gs-banner { min-height: 150px; }
/* v3.11.0 — móvil: ningún bloque puede ensanchar la página (los banners entre resultados forzaban el ancho de la cuadrícula) */
.gs-grid > *, .gs-mkt-cols > *, .gs-mkt-main > * { min-width: 0; }
.gs-tiles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 900px) { .gs-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .gs-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 1023px) { html, body.gs-body { overflow-x: hidden; max-width: 100vw; } .gs-mkt-cols, .gs-mkt-main, .gs-contenedor { max-width: 100%; } }
.gs-filtros-panel form { display: flex; flex-direction: column; height: 100%; }
.gs-filtros-cab { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--gs-border); font-size: 17px; }
.gs-filtros-cuerpo { flex: 1; overflow-y: auto; padding: 6px 18px 18px; }
.gs-filtros-cuerpo section { padding: 12px 0; border-bottom: 1px solid var(--gs-border); } .gs-filtros-cuerpo h4 { margin: 0 0 8px; font-size: 14px; display: flex; align-items: center; gap: 6px; }
.gs-filtros-cuerpo input[type=search], .gs-frango input { width: 100%; border: 1.5px solid var(--gs-border); border-radius: 10px; padding: 8px 10px; font: inherit; }
.gs-frango { display: flex; align-items: center; gap: 8px; margin-top: 6px; } .gs-frango span { color: var(--gs-muted); }
.gs-filtros-pie { display: flex; justify-content: space-between; gap: 10px; padding: 12px 18px; border-top: 1px solid var(--gs-border); background: #fff; }
.gs-fpills { display: flex; flex-wrap: wrap; gap: 6px; } .gs-fpills-mini { margin-bottom: 4px; }
.gs-fpill { display: inline-flex; align-items: center; padding: 6px 12px; border: 1.5px solid var(--gs-border); border-radius: 20px; font-size: 13px; font-weight: 600; cursor: pointer; background: #fff; user-select: none; }
.gs-fpill input { position: absolute; opacity: 0; width: 0; height: 0; }
.gs-fpill.activo, .gs-fpill:has(input:checked) { border-color: var(--gs-primary); color: var(--gs-primary-ink, #b8471a); background: var(--gs-primary-soft, #fdeee4); }
.gs-checks { border: 1.5px solid var(--gs-border); border-radius: 12px; padding: 10px 12px; margin: 6px 0; display: flex; flex-wrap: wrap; gap: 6px; grid-column: 1 / -1; }
.gs-checks legend { font-weight: 600; font-size: 13.5px; padding: 0 6px; }
.gs-inm-franja { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; font-size: 13px; }
.gs-inm-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.gs-inm-chips span { display: flex; align-items: center; gap: 8px; background: var(--gs-neutral-soft, #f3f4f6); border-radius: 12px; padding: 8px 12px; min-width: 110px; }
.gs-inm-chips .gs-ico { color: var(--gs-primary); } .gs-inm-chips strong { font-size: 15px; } .gs-inm-chips small { display: block; font-size: 11px; color: var(--gs-muted); }
.gs-inm-chips span > strong { display: flex; flex-direction: column; }
.gs-extras { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px 14px; font-size: 14px; }
.gs-extras li { display: flex; align-items: center; gap: 6px; } .gs-extras .gs-ico { color: var(--gs-success); }
body.gs-filtros-abierto { overflow: hidden; }
@media (max-width: 900px) { .gs-tiles { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) { .gs-tiles { grid-template-columns: repeat(2, 1fr); } .gs-extras { grid-template-columns: 1fr; } .gs-inm-chips span { min-width: 0; flex: 1 1 40%; } }
