
    .sf-shop{max-width:1180px;margin:0 auto;}

    /* Category chips */
    .sf-chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none;cursor:grab;}
    .sf-chips::-webkit-scrollbar{display:none;}
    .sf-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:999px;background:var(--mk-white);border:1px solid var(--mk-slate-200);color:var(--mk-slate-700);font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .15s;}
    .sf-chip:hover{border-color:var(--mk-blue-300);color:var(--mk-blue-500-2);}
    .sf-chip.active{background:linear-gradient(135deg,var(--mk-blue-400),var(--mk-indigo-400));color:var(--mk-white);border-color:transparent;box-shadow:0 6px 16px rgba(99,102,241,.32);}

    /* Toolbar */
    .sf-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:2px 0 16px;flex-wrap:wrap;}
    .sf-title{font-size:20px;font-weight:800;color:var(--mk-blue-950);margin:0;line-height:1.2;}
    .sf-count{font-size:13px;color:var(--mk-slate-400);font-weight:600;white-space:nowrap;}

    /* Grid */
    .sf-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
    @media(min-width:640px){.sf-grid{grid-template-columns:repeat(3,1fr);gap:16px;}}
    @media(min-width:768px){.sf-grid{grid-template-columns:repeat(4,1fr);}}
    @media(min-width:1024px){.sf-grid{grid-template-columns:repeat(5,1fr);}}

    /* Card */
    .sf-card{background:var(--mk-white);border:1px solid var(--mk-blue-100);border-radius:18px;overflow:hidden;display:flex;flex-direction:column;position:relative;transition:transform .18s ease, box-shadow .18s ease;}
    .sf-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px rgba(15,23,42,.13);}
    .sf-imgwrap{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--mk-blue-50-3);cursor:pointer;}
    .sf-imgwrap img{width:100%;height:100%;object-fit:contain;padding:8px;box-sizing:border-box;transition:transform .35s ease;display:block;}
    .sf-card:hover .sf-imgwrap img{transform:scale(1.03);}
    .sf-noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:42px;color:var(--mk-slate-300-2);}
    /* a discount: a red ribbon across the top-left corner (owner, 2026-10-30) */
    .sf-disc{position:absolute;top:16px;left:-34px;z-index:3;width:130px;transform:rotate(-45deg);text-align:center;background:linear-gradient(180deg,#ef4444,#b91c1c);color:#fff;font-weight:800;font-size:12px;letter-spacing:.02em;padding:4px 0;box-shadow:0 3px 8px rgba(185,28,28,.45);pointer-events:none;}
    .sf-disc::before,.sf-disc::after{content:"";position:absolute;top:100%;border-top:4px solid #7f1d1d;border-left:4px solid transparent;border-right:4px solid transparent;}
    .sf-disc::before{left:0;} .sf-disc::after{right:0;}

    /* a running "buy this, get that" promotion: a straight red bar along the bottom of the
       picture, naming the free gift (owner, 2026-10-30) */
    .sf-gift{position:absolute;left:0;right:0;bottom:0;z-index:2;background:linear-gradient(180deg,#ef4444,#b91c1c);color:#fff;font-weight:800;font-size:12px;line-height:1.3;padding:6px 10px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 -2px 8px rgba(185,28,28,.25);}

    .sf-cbody{padding:11px 13px 13px;display:flex;flex-direction:column;flex:1;}
    .sf-name{font-size:13.5px;font-weight:600;color:var(--mk-blue-900);line-height:1.35;margin:0 0 7px;min-height:36px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer;}
    .sf-price{display:flex;align-items:baseline;justify-content:space-between;gap:7px;flex-wrap:wrap;margin-bottom:11px;}
    .sf-price-amt{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
    .sf-price .now{font-size:17px;font-weight:800;color:var(--mk-blue-500-2);}
    .sf-price .now.disc{color:var(--mk-rose-600);}
    .sf-price .was{font-size:12px;color:var(--mk-slate-400);text-decoration:line-through;}
    .sf-box{font-size:11px;color:var(--mk-slate-400);white-space:nowrap;}
    .sf-add{margin-top:auto;width:100%;border:none;cursor:pointer;background:var(--mk-blue-500-2);color:var(--mk-white);font-size:13px;font-weight:700;padding:9px 0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s, transform .1s;}
    .sf-add:hover{background:var(--mk-blue-600-2);}
    .sf-add:active{transform:scale(.97);}
    .sf-add.out{background:var(--mk-blue-200);color:var(--mk-slate-400);cursor:not-allowed;}

    /* Empty */
    .sf-empty{text-align:center;padding:60px 20px;background:var(--mk-white);border-radius:18px;border:1px solid var(--mk-blue-100);}

    /* Pager */
    .sf-pager{display:flex;justify-content:center;align-items:center;gap:12px;margin:24px 0 6px;}
    .sf-pg{padding:9px 18px;border-radius:999px;background:var(--mk-blue-500-2);color:var(--mk-white);font-weight:700;font-size:14px;text-decoration:none;transition:background .15s;}
    .sf-pg:hover{background:var(--mk-blue-600-2);}
    .sf-pg.disabled{background:var(--mk-blue-200);color:var(--mk-slate-400);}
    .sf-pg-info{font-size:14px;color:var(--mk-slate-700);font-weight:600;}
  