.zll-widget{--zll-cols:4;--zll-gap:16px;box-sizing:border-box;max-width:100%;}
.zll-widget *{box-sizing:border-box;}
.zll-widget-inner{position:relative;}
.zll-widget-title{margin:0 0 14px;padding:6px 4px;font-weight:700;}
.zll-widget-footer{text-align:center;margin-top:16px;}
.zll-btn{display:inline-block;padding:10px 22px;text-decoration:none;font-size:14px;font-weight:600;transition:opacity .2s;}
.zll-btn:hover{opacity:.85;}

/* ---- Carousel wrap (arrows + dots) ---- */
.zll-carousel-wrap{position:relative;}
.zll-gc-arrow{transition:opacity .2s;}
.zll-gc-arrow:disabled{opacity:.35;cursor:default;}
.zll-gc-dots button{display:inline-block;}

/* ---- Grid / Carousel base ---- */
.zll-grid{display:grid;grid-template-columns:repeat(var(--zll-cols),1fr);gap:var(--zll-gap);width:100%;}
.zll-grid.zll-carousel{display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;}
.zll-grid.zll-carousel::-webkit-scrollbar{display:none;}
.zll-grid.zll-carousel > *{scroll-snap-align:start;flex:0 0 calc((100% - (var(--zll-cols) - 1) * var(--zll-gap)) / var(--zll-cols));min-width:0;}

/* ---- Product card ---- */
.zll-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;min-width:0;}
.zll-card-img{position:relative;display:block;width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:10px;background:#f4f4f5;}
.zll-card-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.zll-card:hover .zll-card-img img{transform:scale(1.05);}
.zll-badge{position:absolute;top:8px;inset-inline-start:8px;background:#e53935;color:#fff;font-size:11px;line-height:1;font-weight:700;padding:4px 6px;border-radius:6px;z-index:2;}
.zll-card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em;font-size:14px;line-height:1.3;margin:10px 0 6px;}
.zll-card-price{margin-top:auto;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-size:14px;}
.zll-card-price del{color:#9a9a9a;font-size:12px;text-decoration:line-through;}
.zll-card-price ins{text-decoration:none;color:#e53935;font-weight:700;}

/* ---- Category (image) card ---- */
.zll-cat-card{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:inherit;min-width:0;}
.zll-cat-img{display:block;width:100%;aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:#f4f4f5;}
.zll-cat-img img{width:100%;height:100%;object-fit:cover;display:block;}
.zll-cat-title{margin-top:8px;font-size:13px;font-weight:600;}

/* ---- Banner slider ---- */
.zll-slider{position:relative;width:100%;overflow:hidden;border-radius:8px;}
.zll-slider-track{position:relative;width:100%;height:100%;}
.zll-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .5s ease;}
.zll-slide.active{opacity:1;visibility:visible;position:relative;}
.zll-slider[data-fade="0"] .zll-slide{transform:translateX(100%);transition:transform .45s ease;opacity:1;visibility:visible;position:absolute;}
.zll-slider[data-fade="0"] .zll-slide.active{transform:translateX(0);}
.zll-slider[data-fade="0"] .zll-slide.prev{transform:translateX(-100%);}
.zll-slide picture,.zll-slide img,.zll-slide a{display:block;width:100%;height:100%;}
.zll-slide img{object-fit:cover;}
.zll-slider-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.85);border:none;width:36px;height:36px;border-radius:50%;font-size:20px;cursor:pointer;z-index:3;}
.zll-slider-arrow.zll-prev{inset-inline-start:12px;}
.zll-slider-arrow.zll-next{inset-inline-end:12px;}
.zll-slider-dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;z-index:3;}
.zll-dot{width:8px;height:8px;border-radius:50%;border:none;background:rgba(255,255,255,.6);cursor:pointer;padding:0;}
.zll-dot.active{background:#fff;}
.zll-slide-btn{position:absolute;padding:10px 20px;background:#111;color:#fff;text-decoration:none;border-radius:6px;font-size:14px;font-weight:600;z-index:2;}
.zll-pos-bottom-center{bottom:24px;left:50%;transform:translateX(-50%);}
.zll-pos-bottom-right{bottom:24px;inset-inline-end:24px;}
.zll-pos-bottom-left{bottom:24px;inset-inline-start:24px;}
.zll-pos-center{top:50%;left:50%;transform:translate(-50%,-50%);}
.zll-pos-top-right{top:24px;inset-inline-end:24px;}
.zll-pos-top-left{top:24px;inset-inline-start:24px;}

@media (max-width:767px){
	.zll-widget-title{font-size:16px;}
}
