.tactcat-wrap{max-width:1100px;margin:0 auto;padding:12px;font-family:inherit}
.tactcat-wrap.is-rtl *{letter-spacing:normal}
.tactcat-toolbar{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
.tactcat-toprow{display:flex;gap:10px;align-items:center}
.tactcat-search{flex:1;width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:10px;font-size:16px}
.tactcat-lang{border:1px solid #ddd;background:#fff;border-radius:10px;padding:10px 12px;cursor:pointer;min-width:64px}
.tactcat-filters{display:flex;flex-wrap:wrap;gap:8px}
.tactcat-filter{border:1px solid #ddd;background:#fff;border-radius:999px;padding:7px 12px;cursor:pointer}
.tactcat-filter.is-active{border-color:#111}
.tactcat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.tactcat-card{border:1px solid #eee;border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column;position:relative}
.tactcat-img{aspect-ratio:1/1;background:#f6f6f6;display:flex;align-items:center;justify-content:center}
.tactcat-img img{width:100%;height:100%;object-fit:cover}
.tactcat-body{padding:10px;display:flex;flex-direction:column;gap:8px}
.tactcat-title{font-size:14px;font-weight:600;line-height:1.25;min-height:34px}
.tactcat-desc{font-size:12px;opacity:.85;line-height:1.4;min-height:34px}
.tactcat-price{font-size:13px}

/* Qty control */
.tactcat-qty{display:flex;align-items:center;gap:8px;border:1px solid #ddd;border-radius:12px;padding:8px 10px;justify-content:space-between}
.tactcat-plus,.tactcat-minus{width:36px;height:36px;border-radius:10px;border:1px solid #ddd;background:#fff;cursor:pointer;font-size:18px;line-height:1}
.tactcat-minus.is-disabled{opacity:.4;cursor:not-allowed}
.tactcat-qtynum{min-width:22px;text-align:center;font-weight:700}

/* Out of stock */
.tactcat-card.is-oos{opacity:.55}
.tactcat-card.is-oos .tactcat-plus,.tactcat-card.is-oos .tactcat-minus{cursor:not-allowed}
.tactcat-card.is-oos:after{content:attr(data-oos-label);position:absolute;inset:10px auto auto 10px;background:#000;color:#fff;padding:4px 8px;border-radius:999px;font-size:12px}
.tactcat-card{position:relative}

.tactcat-cartbar{position:sticky;bottom:10px;margin-top:16px;border:1px solid #ddd;background:#fff;border-radius:14px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:10px;box-shadow:0 8px 22px rgba(0,0,0,.08)}
.tactcat-cartactions{display:flex;gap:8px;align-items:center}
.tactcat-coupon{display:flex;gap:8px;align-items:center}
.tactcat-coupon-input{width:160px;max-width:40vw;padding:10px 12px;border:1px solid #ddd;border-radius:12px}
.tactcat-coupon-apply{border:1px solid #ddd;background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}
.tactcat-cartdiscount{font-size:12px;opacity:.85}
.tactcat-clear{border:1px solid #ddd;background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}
.tactcat-whatsapp{display:inline-block;text-decoration:none;border-radius:12px;padding:10px 12px;background:#25D366;color:#fff}
@media (max-width:520px){.tactcat-toprow{flex-direction:row}.tactcat-cartbar{flex-direction:column;align-items:stretch}.tactcat-cartactions{justify-content:space-between}}

/* Modal */
.tactcat-modal{position:fixed;inset:0;z-index:9999}
.tactcat-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.tactcat-modal-card{position:relative;background:#fff;max-width:420px;margin:10vh auto 0 auto;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.tactcat-modal-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid #eee}
.tactcat-modal-title{font-weight:700}
.tactcat-modal-close{border:0;background:transparent;font-size:22px;cursor:pointer}
.tactcat-modal-body{padding:14px;display:flex;flex-direction:column;gap:10px}
.tactcat-field{display:flex;flex-direction:column;gap:6px}
.tactcat-input{padding:10px 12px;border:1px solid #ddd;border-radius:12px}
.tactcat-modal-actions{display:flex;gap:10px;justify-content:flex-end;padding:12px 14px;border-top:1px solid #eee}
.tactcat-modal-cancel{border:1px solid #ddd;background:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}
.tactcat-modal-continue{border:1px solid #25D366;background:#25D366;color:#fff;border-radius:12px;padding:10px 12px;cursor:pointer}
.tactcat-modal-error{background:#ffe9e9;border:1px solid #ffb9b9;color:#7a1d1d;border-radius:12px;padding:10px 12px}

.tactcat-modal-continue.is-busy{opacity:.75;cursor:progress}


/* Discount display */
.tactcat-oldprice{ text-decoration: line-through; opacity: .65; margin-right: 8px; }
.tactcat-newprice{ font-weight: 700; }
