    /* Classic override: crisp white card, accent price rail, solid accent CTA */
    .cls-shop {
      background: var(--paper-2);
      border: 1px solid var(--rule);
      border-radius: var(--radius, 12px);
      box-shadow: var(--shadow, 0 1px 3px rgba(0,0,0,.06));
      transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
      position: relative;
    }
    .cls-shop:hover {
      border-color: color-mix(in srgb, var(--theme-500, #3b82f6) 55%, var(--rule));
      box-shadow: var(--shadow-md, 0 8px 20px -6px rgba(0,0,0,.14));
      transform: translateY(-3px);
    }

    .cls-shop .cls-plate {
      position: relative; overflow: hidden;
      background: var(--paper-2);
      border-bottom: 1px solid var(--rule);
    }

    /* Accent discount tag */
    .cls-shop .cls-tag {
      position: absolute; top: 12px; right: 12px; z-index: 4;
      padding: 0.26rem 0.6rem;
      background: var(--theme-600, #2563eb);
      color: #fff; border-radius: 0.5rem;
      font-size: 11px; font-weight: 700; letter-spacing: 0.01em;
      box-shadow: 0 2px 8px rgba(0,0,0,.15);
    }

    /* Stock chip */
    .cls-shop .cls-stock {
      position: absolute; top: 12px; left: 12px; z-index: 4;
      display: inline-flex; align-items: center; gap: 5px;
      padding: 0.26rem 0.6rem; border-radius: 0.5rem;
      font-size: 10.5px; font-weight: 700; letter-spacing: 0.01em;
      box-shadow: 0 2px 6px rgba(0,0,0,.12);
      white-space: nowrap; color: #fff;
    }
    .cls-shop .cls-stock--low  { background: #dc2626; }
    .cls-shop .cls-stock--med  { background: #b45309; }
    .cls-shop .cls-stock--free { background: #047857; }

    .cls-shop .cls-veil {
      position: absolute; inset: 0; z-index: 5;
      display: flex; align-items: center; justify-content: center;
      background: rgba(15,23,42,0.35);
      pointer-events: none;
    }
    .cls-shop .cls-veil span {
      background: #0f172a; color: #fff;
      font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em;
      padding: 0.4rem 0.9rem; border-radius: 0.6rem;
    }

    .cls-shop .cls-price-now { color: var(--ink); }
    .cls-shop .cls-price-was { color: var(--ink-soft); text-decoration: line-through; font-size: 12px; }
    .cls-shop .cls-price-off { color: var(--px-good, #059669); font-size: 12px; font-weight: 700; }
    .cls-shop .cls-price-free { color: var(--px-good, #059669); }

    /* Flash-sale ring + accent tag */
    .cls-shop--flash {
      border-color: var(--theme-500, #3b82f6);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--theme-500, #3b82f6) 40%, transparent), var(--shadow, 0 1px 3px rgba(0,0,0,.06));
    }
    .cls-shop .cls-flash {
      position: absolute; top: 12px; left: 12px; z-index: 6;
      display: inline-flex; align-items: center; gap: 5px;
      padding: 0.26rem 0.6rem; border-radius: 0.5rem;
      font-size: 10.5px; font-weight: 700; letter-spacing: 0.01em; white-space: nowrap;
      background: var(--theme-600, #2563eb); color: #fff;
      box-shadow: 0 2px 8px rgba(0,0,0,.15);
    }
    /* When a flash tag is present, drop the stock chip below it */
    .cls-shop--flash .cls-stock { top: 3.05rem; }
