.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-carousel-row{position:relative;}
.zll-gc-arrow{border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 2px 8px rgba(0,0,0,.15);flex:0 0 auto;}
.zll-gc-arrow:disabled{opacity:.35;cursor:default;}

/* "inside": arrows float over the row edges, hidden until hover so they never visually crowd the cards */
.zll-arrows-inside .zll-gc-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:5;opacity:0;transition:opacity .2s;}
.zll-arrows-inside .zll-carousel-row:hover .zll-gc-arrow{opacity:1;}
.zll-arrows-inside .zll-gc-prev{inset-inline-start:8px;}
.zll-arrows-inside .zll-gc-next{inset-inline-end:8px;}
@media (hover:none){
	.zll-arrows-inside .zll-gc-arrow{opacity:1;}
}

/* "outside": arrows sit beside the row in dedicated flex space, cards keep clear of them entirely */
.zll-arrows-outside .zll-carousel-row{display:flex;align-items:center;gap:10px;}
.zll-arrows-outside .zll-carousel-row > .zll-grid{flex:1 1 0;min-width:0;}

.zll-gc-dots{display:flex;justify-content:center;gap:6px;margin-top:12px;}
.zll-gc-dot{border:1px solid rgba(0,0,0,.12);cursor:pointer;padding:0;}

/* ---- Title row + countdown ---- */
.zll-title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.zll-title-row .zll-widget-title{margin:0;}
.zll-countdown{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.zll-cd-label{font-size:13px;font-weight:600;}
.zll-cd-boxes{display:flex;gap:6px;}
.zll-cd-box{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;padding:4px 6px;line-height:1.1;}
.zll-cd-num{font-weight:700;}
.zll-cd-unit{font-size:10px;opacity:.85;margin-top:2px;}
.zll-countdown.zll-cd-expired{display:none;}

/* ---- 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:var(--surface);}
.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:var(--cta);color:var(--cta-ink);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:var(--muted);font-size:12px;text-decoration:line-through;}
.zll-card-price ins{text-decoration:none;color:var(--ink);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:var(--surface);}
.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-link{display:block;width:100%;height:100%;}
.zll-slide img{object-fit:contain;background:rgba(0,0,0,.03);}
.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;z-index:3;text-decoration:none;white-space:nowrap;}
.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;}
}
