/* Zudlux Category Pro — frontend */
.zcp-wrap,.zcp-wrap *,.zcp-wrap *::before,.zcp-wrap *::after{box-sizing:border-box}
.zcp-wrap{width:100%;min-width:0;max-width:var(--zcp-max,1320px);margin-inline:auto;background:var(--zcp-bg,#fff);font-family:var(--zcp-font,inherit);color:var(--ink);overflow-wrap:anywhere;overflow-x:clip}
.zcp-wrap>*{max-width:100%;min-width:0}
.zcp-wrap a{text-decoration:none;color:inherit;box-shadow:none}
.zcp-wrap ul{list-style:none;margin:0;padding:0}
.zcp-wrap img{max-width:100%;height:auto}
.zcp-wrap h1,.zcp-wrap h2,.zcp-wrap h3{margin:0}
.zcp-title{padding-block:14px 6px;font-size:var(--zcp-ttl-size);font-weight:var(--zcp-ttl-weight);color:var(--zcp-ttl-color);text-align:var(--zcp-ttl-align);line-height:1.6;overflow-wrap:anywhere}
.zcp-sec{padding-inline:12px}

/* banners */
.zcp-banner{margin:0 0 var(--zcp-banner-gap);border-radius:var(--zcp-banner-radius);overflow:hidden;line-height:0}
.zcp-banner--2{margin:var(--zcp-banner-gap) 0}
.zcp-banner a,.zcp-banner picture{display:block}
.zcp-banner img{display:block;width:100%;height:auto}

/* subcategories */
.zcp-subs{background:#fff;padding-block:14px 10px}
.zcp-subs__title{font-size:var(--zcp-sub-title-size);color:var(--zcp-sub-title-color);font-weight:700;margin:0 0 14px}
.zcp-subs__grid{display:grid;grid-template-columns:repeat(var(--zcp-subcols,3),minmax(0,1fr));column-gap:var(--zcp-sub-gx);row-gap:var(--zcp-sub-gy)}
.zcp-sub{min-width:0;margin:0;padding:0}
.zcp-sub a{display:block;min-width:0}
.zcp-sub__media{display:block;position:relative;aspect-ratio:1/1;border-radius:var(--zcp-sub-radius);overflow:hidden;background:#fff}
.zcp-sub__media img,.zcp-sub__media svg{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.zcp-sub__name{max-width:100%;white-space:normal;word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:8px;min-height:3em;text-align:center;line-height:1.5;font-size:var(--zcp-sub-name-size);font-weight:var(--zcp-sub-name-weight);color:var(--zcp-sub-name-color)}

/* shop: "view all" tile + hidden extra categories */
.zcp-sub--extra[hidden]{display:none}
.zcp-sub--all button{display:block;width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent}
.zcp-sub__media.zcp-sub__media--all{display:flex;align-items:center;justify-content:center;background:var(--surface)}
.zcp-sub__media.zcp-sub__media--all svg{position:static;width:38%;height:38%;color:var(--ink)}

/* sort tags */
.zcp-sort{background:var(--zcp-sort-bg);padding:8px 12px}
.zcp-sort:empty{display:none}
.zcp-sort.is-sticky{position:sticky;top:var(--zcp-top,0px);z-index:90;box-shadow:0 1px 0 rgba(0,0,0,.05)}
.zcp-sort{min-width:0;max-width:100%}
.zcp-sort__row{display:flex;flex-wrap:nowrap;gap:8px;width:0;min-width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 1px}
.zcp-sort__row::-webkit-scrollbar{display:none}
.zcp-tag{flex:none;display:inline-flex;align-items:center;gap:5px;margin:0;padding:6px 13px;border:1px solid var(--zcp-tag-border);background:var(--zcp-tag-bg);color:var(--zcp-tag-color);font:inherit;font-size:var(--zcp-sort-size);line-height:1.4;border-radius:var(--zcp-tag-radius);cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.zcp-tag.is-active{border-color:var(--zcp-tag-a-border);background:var(--zcp-tag-a-bg);color:var(--zcp-tag-a-color);font-weight:600;box-shadow:inset 0 0 0 1px var(--zcp-tag-a-border)}
.zcp-tag__n{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--zcp-tag-a-border);color:#fff;font-size:10px;font-weight:600;line-height:1}

/* product grid */
.zcp-grid{display:grid;grid-template-columns:repeat(var(--zcp-cols,2),minmax(0,1fr));gap:var(--zcp-grid-gap);padding:8px 12px 14px;transition:opacity .15s}
.zcp-grid.is-loading{opacity:.45;pointer-events:none}
.zcp-item{min-width:0;margin:0;padding:0}
.zcp-empty{grid-column:1/-1;padding:40px 0;text-align:center;color:var(--muted)}
.zcp-card{min-width:0;max-width:100%;height:100%;display:flex;flex-direction:column;background:var(--zcp-card-bg);border-radius:var(--zcp-card-radius);box-shadow:var(--zcp-card-shadow);overflow:hidden}
.zcp-card__link{min-width:0;max-width:100%;display:flex;flex-direction:var(--zcp-dir,column);flex:1;gap:var(--zcp-card-pad);padding:var(--zcp-card-pad);color:inherit}
.zcp-card__media{position:relative;flex:none;align-self:flex-start;width:var(--zcp-imgw,100%);aspect-ratio:1/1;border-radius:calc(var(--zcp-card-radius) - 4px);overflow:hidden;background:var(--surface)}
.zcp-card__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:var(--zcp-fit,contain);display:block}
.zcp-card__info{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.zcp-card__title{max-width:100%;white-space:normal;word-break:break-word;overflow-wrap:anywhere;max-height:calc(1.6em * var(--zcp-title-lines,2));display:-webkit-box;-webkit-line-clamp:var(--zcp-title-lines,2);-webkit-box-orient:vertical;overflow:hidden;min-height:calc(1.6em * var(--zcp-title-lines,2));margin:0;font-size:var(--zcp-title-size);font-weight:500;line-height:1.6;color:var(--zcp-title-color)}
.zcp-card__prices{margin-top:auto;display:flex;flex-direction:column;gap:3px}
.zcp-price{min-width:0;max-width:100%;overflow-wrap:anywhere;font-size:var(--zcp-price-size);font-weight:700;line-height:1.5;color:var(--zcp-price-color)}
.zcp-price *{color:inherit;font-weight:inherit;text-decoration:none;background:none}
.zcp-oldrow{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:22px}
.zcp-old{font-size:calc(var(--zcp-price-size) - 3px);line-height:1.4;color:var(--zcp-old-color);text-decoration:line-through}
.zcp-old *{color:inherit;text-decoration:inherit;background:none}
.zcp-badge{padding:1px 8px;border-radius:20px;background:var(--zcp-badge-bg);color:var(--zcp-badge-color);font-size:var(--zcp-badge-size);font-weight:700;line-height:1.7}
.zcp-outtxt{font-size:var(--zcp-price-size);font-weight:600;color:var(--zcp-old-color)}
.zcp-card.is-out .zcp-card__media img{opacity:.4;filter:grayscale(1)}
.zcp-card__foot{min-width:0;max-width:100%;white-space:normal;word-break:break-word;overflow-wrap:anywhere;min-height:var(--zcp-foot-min,0);padding:7px var(--zcp-card-pad);border-top:1px solid var(--line);font-size:var(--zcp-inst-size);line-height:1.6;color:var(--zcp-inst-color);text-align:center}

/* infinite scroll */
.zcp-more{display:flex;align-items:center;justify-content:center;min-height:56px;padding:6px 12px 18px}
.zcp-more:empty{display:none}
.zcp-more .zcp-spin{margin:0;visibility:hidden}
.zcp-more.is-loading .zcp-spin{visibility:visible}
.zcp-loadmore{padding:8px 22px;border:1px solid var(--zcp-tag-border,var(--line-strong));border-radius:var(--zcp-tag-radius,10px);background:var(--zcp-tag-bg,var(--surface));color:var(--zcp-tag-color,var(--text-2));font:inherit;font-size:var(--zcp-sort-size,12px);cursor:pointer}
.zcp-loadmore[hidden]{display:none}
.zcp-wrap .zcp-pager--seo{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}

/* pagination */
.zcp-pager{padding:6px 12px 18px}
.zcp-pager:empty{display:none}
.zcp-pager ul{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.zcp-pager li{margin:0;padding:0}
.zcp-pager .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:var(--zcp-pag-size);height:var(--zcp-pag-size);padding:0 6px;border:1px solid var(--zcp-pag-border);border-radius:999px;background:var(--zcp-pag-bg);color:var(--zcp-pag-color);font-size:var(--zcp-pag-font);line-height:1;box-shadow:none}
.zcp-pager .page-numbers.current{background:var(--zcp-pag-a-bg);border-color:var(--zcp-pag-a-bg);color:var(--zcp-pag-a-color);font-weight:600}
.zcp-pager .page-numbers.dots{border-color:transparent;background:transparent;min-width:auto}
.zcp-pager .zcp-chev{display:block}
html[dir="rtl"] .zcp-pager .zcp-prev,html:not([dir="rtl"]) .zcp-pager .zcp-next{display:inline-flex;transform:scaleX(-1)}
.zcp-pager .zcp-prev,.zcp-pager .zcp-next{display:inline-flex}

/* breadcrumb / count */
.zcp-bc{padding-block:6px}
.zcp-bc .woocommerce-breadcrumb{max-width:100%;overflow-wrap:anywhere;margin:0;font-size:var(--zcp-bc-size);color:var(--zcp-bc-color);line-height:1.8}
.zcp-bc .woocommerce-breadcrumb a{color:inherit}
.zcp-count{max-width:100%;overflow-wrap:anywhere;padding-block:4px 10px;text-align:var(--zcp-count-align,center);font-size:var(--zcp-count-size);color:var(--zcp-count-color)}
.zcp-count:empty{display:none}

/* description */
.zcp-desc{padding-block:10px 24px;font-size:var(--zcp-desc-size);line-height:var(--zcp-desc-line);color:var(--zcp-desc-color)}
.zcp-desc__body{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}
.zcp-desc__body *{max-width:100%}
.zcp-desc__body [style*="width"]{max-width:100%!important}
.zcp-desc__body img,.zcp-desc__body video,.zcp-desc__body canvas,.zcp-desc__body svg{max-width:100%;height:auto}
.zcp-desc__body iframe,.zcp-desc__body embed,.zcp-desc__body object{max-width:100%}
.zcp-desc__body figure{margin-inline:0}
.zcp-desc__body pre{max-width:100%;overflow-x:auto;white-space:pre-wrap}
.zcp-desc__body ul{list-style:disc;padding-inline-start:1.5em}
.zcp-desc__body ol{list-style:decimal;padding-inline-start:1.5em}
.zcp-tablewrap{width:0;min-width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-block:1em}
.zcp-tablewrap table{margin:0;border-collapse:collapse}
.zcp-tablewrap td,.zcp-tablewrap th{padding:6px 10px;border:1px solid var(--line);overflow-wrap:normal;word-break:normal}
.zcp-desc__body>*:first-child{margin-top:0}
.zcp-desc__body>*:last-child{margin-bottom:0}
.zcp-desc.is-collapsible:not(.is-open) .zcp-desc__body{position:relative;max-height:var(--zcp-desc-h);overflow:hidden}
.zcp-desc.is-collapsible:not(.is-open) .zcp-desc__body::after{content:"";position:absolute;inset-inline:0;bottom:0;height:64px;background:linear-gradient(rgba(255,255,255,0),var(--zcp-bg,#fff))}
.zcp-desc__btn{display:block;margin:10px auto 0;padding:6px 18px;border:1px solid var(--zcp-tag-border,var(--line-strong));border-radius:20px;background:#fff;color:inherit;font:inherit;font-size:12px;cursor:pointer}
.zcp-desc__btn[hidden]{display:none}

/* filter drawer */
html.zcp-lock{overflow:hidden}
.zcp-drawer{position:fixed;inset:0;z-index:1100;display:none}
.zcp-drawer.is-open{display:block}
.zcp-drawer__ov{position:absolute;inset:0;background:rgba(0,0,0,.42)}
.zcp-drawer__panel{position:absolute;inset-inline:0;bottom:0;display:flex;flex-direction:column;max-height:88vh;background:#fff;border-radius:18px 18px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.15)}
.zcp-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);font-size:15px}
.zcp-x{border:0;background:none;font-size:26px;line-height:1;cursor:pointer;color:var(--text-2);padding:0 4px}
.zcp-drawer__panel{min-width:0;max-width:100%}
.zcp-drawer__head strong{min-width:0;overflow-wrap:anywhere}
.zcp-drawer__body{flex:1;min-width:0;overflow-x:hidden;overflow-y:auto;padding:6px 16px 14px;-webkit-overflow-scrolling:touch}
.zcp-drawer__foot{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line)}
.zcp-btn{flex:1;padding:11px 14px;border:1px solid var(--zcp-accent);border-radius:12px;background:var(--zcp-accent);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.zcp-btn--ghost{background:#fff;color:var(--zcp-accent)}
.zcp-spin{width:28px;height:28px;margin:30px auto;border:3px solid var(--line);border-top-color:var(--zcp-accent);border-radius:50%;animation:zcpspin .8s linear infinite}
@keyframes zcpspin{to{transform:rotate(360deg)}}
.zcp-fgroup{min-width:0;max-width:100%;margin:0;padding:14px 0;border:0;border-bottom:1px solid var(--surface)}
.zcp-fgroup legend{padding:0;margin-bottom:10px;font-size:13px;font-weight:600;color:var(--ink)}
.zcp-chips{display:flex;flex-wrap:wrap;gap:8px}
.zcp-chip{position:relative;min-width:0;max-width:100%;margin:0}
.zcp-chip input{position:absolute;opacity:0;pointer-events:none}
.zcp-chip span{max-width:100%;overflow-wrap:anywhere;display:inline-block;padding:6px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);font-size:12px;color:var(--text-2);cursor:pointer}
.zcp-chip input:checked+span{border-color:var(--zcp-accent);box-shadow:inset 0 0 0 1px var(--zcp-accent);background:#fff;color:var(--ink);font-weight:600}
.zcp-chip input:focus-visible+span{outline:2px solid var(--zcp-accent);outline-offset:2px}
.zcp-price-in{display:flex;gap:10px}
.zcp-price-in input{flex:1;min-width:0;padding:9px 10px;border:1px solid var(--line-strong);border-radius:10px;font:inherit;font-size:13px;direction:ltr;text-align:center}
.zcp-switch{display:flex;align-items:center;gap:8px;padding:14px 0 4px;font-size:13px;cursor:pointer}
.zcp-switch input{width:18px;height:18px;accent-color:var(--zcp-accent)}

@media(min-width:768px){
	.zcp-sec{padding-inline:16px}
	.zcp-sort,.zcp-grid,.zcp-pager{padding-inline:16px}
}
@media(min-width:1024px){
	.zcp-drawer__panel{inset-inline:auto 0;top:0;width:420px;max-height:none;border-radius:0}
	html[dir="rtl"] .zcp-drawer__panel{inset-inline:0 auto}
	.zcp-tag:hover:not(.is-active){border-color:var(--muted)}
	.zcp-card{transition:box-shadow .2s}
	.zcp-card:hover{box-shadow:0 0 0 1px rgba(0,0,0,.05),0 4px 10px rgba(0,0,0,.06),0 14px 30px rgba(0,0,0,.09)}
	.zcp-pager .page-numbers:not(.current):not(.dots):hover{border-color:var(--muted)}
}

/* bottom bar */
body.zcp-has-bar{padding-bottom:calc(var(--zcp-bar-h,60px) + env(safe-area-inset-bottom,0px))}
.zcp-bar{position:fixed;inset-inline:0;bottom:0;z-index:999;display:flex;align-items:stretch;justify-content:space-around;height:calc(var(--zcp-bar-h,60px) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--zcp-bar-bg,#fff);border-top:1px solid var(--zcp-bar-border,var(--line))}
.zcp-bar__item{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--zcp-bar-color,var(--muted));text-decoration:none;box-shadow:none;-webkit-tap-highlight-color:transparent}
.zcp-bar__item.is-active{color:var(--zcp-bar-active,var(--ink))}
.zcp-bar__ico{position:relative;display:inline-flex;line-height:0}
.zcp-bar__ico svg,.zcp-bar__ico img{width:var(--zcp-bar-ico,24px);height:var(--zcp-bar-ico,24px);object-fit:contain}
.zcp-bar__lbl{max-width:100%;padding-inline:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--zcp-bar-lbl,10px);line-height:1.2}
.zcp-cart-count{position:absolute;top:-6px;inset-inline-end:-9px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--zcp-bar-badge-bg,var(--sale));color:var(--zcp-bar-badge-color,#fff);font-size:10px;font-weight:600;line-height:16px;text-align:center}
.zcp-cart-count:empty{display:none}

@media(prefers-reduced-motion:reduce){.zcp-grid,.zcp-card,.zcp-spin{transition:none;animation-duration:2s}}

/* safety net: nothing inside the layout may widen the page */
@supports (overflow:clip){
	body.zcp-active{overflow-x:clip}
}
.zcp-n{opacity:.55;font-size:10px;margin-right:3px}
