/* Catalog reference: category chips, native filters/order, horizontal product cards. */
.tiup-ux-catalog-page #main { background:var(--porto-gray-8,#f1f1f1); }
.tiup-ux-catalog-page .page-top { margin-bottom:0; padding:28px 0; background:var(--tiup-paper); }
.tiup-ux-catalog-page .page-top .page-title { font-size:clamp(27px,3vw,46px); line-height:1.2; font-weight:600; letter-spacing:-.03em; }
.tiup-ux-catalog-page .page-top .page-title-wrap { padding:0; margin-bottom:14px; }
.tiup-ux-catalog-page .page-top .breadcrumb { font-size:12px; line-height:1.7; }
.tiup-ux-catalog-page .main-content-wrap { margin-inline:0; }
.tiup-ux-catalog-page .main-content { padding-right:0; padding-left:24px; padding-top:24px; min-width:0; }
.tiup-ux-catalog-page .sidebar { padding-top:24px; padding-left:0; }
.tiup-ux-catalog-page .sidebar-content { background:#fff; padding:20px; border:1px solid var(--tiup-line); border-radius:6px; }
.tiup-ux-catalog-page .sidebar .widget-title { font-size:17px; color:var(--tiup-ink); }
.tiup-ux-catalog-page .sidebar .product-categories a { display:inline-flex; align-items:center; min-height:36px; color:var(--tiup-ink); line-height:1.45; }
.tiup-ux-catalog-page .tiup-ux-category-links { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:8px; padding:0 0 12px; margin-bottom:12px; scrollbar-width:thin; }
.tiup-ux-catalog-page .tiup-ux-category-links a { white-space:nowrap; min-height:44px; border:0; border-radius:30px; background:var(--tiup-ink); color:#fff; padding:10px 18px; flex:none; }
.tiup-ux-catalog-page .tiup-ux-category-links a:is(.tiup-ux-category-all,[aria-current=page]) { background:var(--tiup-gold); color:var(--tiup-ink); }
.tiup-ux-catalog-page .shop-loop-before { display:flex; flex-wrap:wrap; align-items:center; gap:12px 16px; padding:18px 20px; margin-bottom:24px; background:#fff; border:1px solid var(--tiup-line); border-radius:6px; }
.tiup-ux-catalog-page .shop-loop-before:not(:has(.tiup-ux-filter-panel, .tiup-ux-filter-open)) { display:none !important; }
.tiup-ux-catalog-page .shop-loop-before :is(.woocommerce-ordering, .woocommerce-result-count, .woocommerce-pagination, .woocommerce-viewing, .gridlist-toggle) { display:none !important; }
.tiup-ux-catalog-page .shop-loop-before select { min-height:42px; max-width:100%; border:1px solid var(--tiup-line); border-radius:4px; color:var(--tiup-ink); font-size:13px; text-transform:none; font-weight:400; }
.tiup-ux-catalog-page .archive-products ul.products { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:0; }
.tiup-ux-catalog-page .archive-products ul.products::before,.tiup-ux-catalog-page .archive-products ul.products::after { display:none; }
/* The saved mobile CSS forces widths with !important; contain this correction to catalog cards. */
.tiup-ux-catalog-page .archive-products ul.products > li.product { width:100% !important; max-width:none; padding:0; margin:0; float:none; min-width:0; }
.tiup-ux-catalog-page .archive-products .product-inner { display:grid; grid-template-columns:32% minmax(0,1fr); align-items:start; gap:20px; padding:22px; height:100%; background:#fff; border:1px solid var(--tiup-line); border-radius:9px; box-shadow:none; text-align:left; }
.tiup-ux-catalog-page .archive-products .product-image { width:100%; min-width:0; margin:0; border:1px solid var(--tiup-line); border-radius:5px; overflow:hidden; }
.tiup-ux-catalog-page .archive-products .product-image .inner { aspect-ratio:1; display:flex; align-items:center; justify-content:center; padding:5px; }
.tiup-ux-catalog-page .archive-products .product-image img { width:100% !important; height:100%; aspect-ratio:1; object-fit:contain; }
.tiup-ux-catalog-page .archive-products .product-content { min-width:0; padding:0; text-align:left; }
.tiup-ux-catalog-page .archive-products .category-list { display:block; margin:0 0 10px; font-size:10px; line-height:1.45; }
.tiup-ux-catalog-page .archive-products .category-list a:not(:hover) { color:var(--tiup-muted) !important; }
.tiup-ux-catalog-page .archive-products .woocommerce-loop-product__title { font-size:18px; line-height:1.35; font-weight:650; letter-spacing:-.015em; margin:0 0 12px; color:var(--tiup-ink); }
.tiup-ux-catalog-page .archive-products .rating-wrap { display:none; }
.tiup-ux-catalog-page .tiup-ux-loop-specs { margin:0 0 14px; font-size:12px; line-height:1.5; }
.tiup-ux-catalog-page .tiup-ux-loop-specs div { display:flex; flex-wrap:wrap; gap:0 5px; margin-bottom:3px; }
.tiup-ux-catalog-page .tiup-ux-loop-specs dt { font-weight:400; color:var(--tiup-muted); }
.tiup-ux-catalog-page .tiup-ux-loop-specs dt::after { content:':'; }
.tiup-ux-catalog-page .tiup-ux-loop-specs dd { margin:0; color:var(--tiup-ink); overflow-wrap:anywhere; }
.tiup-ux-catalog-page .archive-products .price { font-size:23px; line-height:1.35; color:var(--tiup-ink); margin:12px 0; font-weight:700; }
.tiup-ux-catalog-page .archive-products .price del { display:block; font-size:16px; color:#777; font-weight:400; }
.tiup-ux-catalog-page .archive-products .price ins { font-weight:700; }
.tiup-ux-catalog-page .archive-products .price .woocommerce-price-suffix { font-size:11px; line-height:1.4; font-weight:400; }
.tiup-ux-catalog-page .tiup-ux-loop-stock { display:table; border-radius:20px; margin:12px 0 18px; padding:5px 10px; background:var(--tiup-stock-bg); color:var(--tiup-stock-ink); font-size:12px; line-height:1.5; }
.tiup-ux-catalog-page .tiup-ux-loop-stock:is(.out-of-stock,.available-on-backorder) { background:var(--tiup-tint); color:var(--tiup-ink); }
.tiup-ux-catalog-page .archive-products .add-links-wrap { margin:0; }
.tiup-ux-catalog-page .archive-products .add-links { display:flex; align-items:flex-start; flex-wrap:wrap; gap:8px; padding:0; margin:0; }
.tiup-ux-catalog-page .archive-products .add-links .button { width:auto; flex:1 1 120px; display:flex; align-items:center; justify-content:center; min-height:46px; height:auto; margin:0; padding:10px 12px; white-space:normal; line-height:1.4; font-size:12px; background:var(--tiup-gold) !important; color:var(--tiup-ink) !important; border:1px solid var(--tiup-gold); border-radius:4px; text-align:center; }
.tiup-ux-catalog-page .archive-products .add-links .button::before { display:none; }
.tiup-ux-catalog-page .archive-products .quickview { display:none; }
.tiup-ux-catalog-page .archive-products .yith-wcwl-add-to-wishlist { position:static; opacity:1; visibility:visible; margin:0; }
.tiup-ux-catalog-page .archive-products .yith-wcwl-add-to-wishlist a { display:flex; align-items:center; justify-content:center; height:46px; min-width:44px; margin:0; border:1px solid var(--tiup-gold); border-radius:4px; color:var(--tiup-ink); }
.tiup-ux-catalog-page .archive-products .yith-wcwl-add-to-wishlist a span { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
.tiup-ux-catalog-page .archive-products .yith-wcwl-add-to-wishlist svg { width:23px; height:23px; margin:0; }
.tiup-ux-catalog-page .tiup-ux-filter-open { display:none; }
.tiup-ux-filter-dialog { width:min(430px,100%); max-width:100%; height:100dvh; max-height:100dvh; margin:0 auto 0 0; padding:20px; border:0; overflow:auto; }
.tiup-ux-filter-dialog::backdrop { background:#000000a6; }
.tiup-ux-filter-dialog .tiup-ux-filter-head { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:20px; }
.tiup-ux-filter-dialog .tiup-ux-filter-head h2 { font-size:23px; margin:0; }
.tiup-ux-filter-dialog .tiup-ux-filter-head button { width:44px; height:44px; border:1px solid var(--tiup-line); background:var(--tiup-paper); font-size:26px; }
.tiup-ux-catalog-page .tiup-ux-filter-dialog .sidebar { display:block; width:100%; max-width:none; padding:0; margin:0; position:static; transform:none; visibility:visible; opacity:1; }
.tiup-ux-catalog-page .tiup-ux-filter-dialog .sidebar-content { border:0; padding:0; }
.tiup-ux-catalog-page .tiup-ux-filter-dialog .sidebar a { min-height:44px; }
@media(min-width:992px) { .tiup-ux-catalog-page .main-content { width:calc(100% - 260px); max-width:calc(100% - 260px); flex:0 0 calc(100% - 260px); } .tiup-ux-catalog-page .sidebar { width:260px; max-width:260px; flex:0 0 260px; } }
@media(min-width:1900px) { .tiup-ux-catalog-page .archive-products ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1199px) { .tiup-ux-catalog-page .archive-products ul.products { grid-template-columns:1fr; } }
@media(max-width:991px) {
 .tiup-ux-catalog-page .main-content { padding-inline:0; }
 .tiup-ux-catalog-page .tiup-ux-filter-open { display:flex; align-items:center; justify-content:center; gap:8px; min-height:48px; border:0; background:#fff; color:var(--tiup-ink); font-size:16px; }
 .tiup-ux-catalog-page.tiup-ux-filters-ready .main-content-wrap > .sidebar { display:none; }
 .tiup-ux-catalog-page .shop-loop-before { flex-wrap:nowrap; padding:10px 14px; gap:12px; }
 .tiup-ux-catalog-page .shop-loop-before .woocommerce-pagination { display:none; }
 .tiup-ux-catalog-page .shop-loop-before .woocommerce-ordering { display:none !important; }
 .tiup-ux-catalog-page .shop-loop-before .tiup-ux-filter-panel { display:none; }
 .tiup-ux-catalog-page .shop-loop-before .woocommerce-result-count { font-size:12px; margin:0; order:2; }
}
@media(max-width:575px) {
 .tiup-ux-catalog-page .page-top { padding:20px 0; }
 .tiup-ux-catalog-page .page-top .breadcrumb { font-size:10px; }
 .tiup-ux-catalog-page .archive-products .product-inner { grid-template-columns:32% minmax(0,1fr); gap:12px; padding:14px; }
 .tiup-ux-catalog-page .archive-products .woocommerce-loop-product__title { font-size:16px; line-height:1.4; }
 .tiup-ux-catalog-page .archive-products .category-list { font-size:9px; }
 .tiup-ux-catalog-page .tiup-ux-loop-specs { font-size:11px; }
 .tiup-ux-catalog-page .archive-products .price { font-size:22px; }
 .tiup-ux-catalog-page .archive-products .add-links .button { font-size:11px; }
 .tiup-ux-catalog-page .shop-loop-before .woocommerce-ordering label { display:none; }
 .tiup-ux-catalog-page .tiup-ux-filter-open { padding:8px; font-size:14px; }
}
/* Contextual native WooCommerce filters: toolbar on desktop, dialog drawer on mobile. */
.tiup-ux .tiup-ux-filter-panel { min-width:0; margin:0; width:100%; flex:1 1 100%; padding-top:0; border-top:0; }
.tiup-ux .tiup-ux-filter-panel .widget-title { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--tiup-ink); margin:0 0 12px; }
.tiup-ux .tiup-ux-filter-help { display:none; }
.tiup-ux .tiup-ux-facets-row { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px 14px; width:100%; }
.tiup-ux .tiup-ux-facet { flex:1 1 155px; min-width:140px; max-width:240px; margin:0; }
.tiup-ux .tiup-ux-facet label { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.02em; color:var(--tiup-muted); margin-bottom:5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tiup-ux .tiup-ux-facet select { width:100%; max-width:100%; height:42px; min-height:42px; padding:6px 12px; font-size:13px; line-height:1.3; text-transform:none; border:1px solid var(--tiup-line); border-radius:4px; background-color:#fff; color:var(--tiup-ink); }
.tiup-ux .tiup-ux-facet-actions { display:inline-flex; align-items:center; gap:8px; align-self:flex-end; margin:0; flex:0 0 auto; }
.tiup-ux .tiup-ux-apply-filters,.tiup-ux .tiup-ux-reset-filters { display:inline-flex; align-items:center; justify-content:center; height:42px; min-height:42px; padding:8px 18px; font-size:13px; font-weight:700; border:1px solid var(--tiup-gold); border-radius:4px; background:var(--tiup-gold); color:var(--tiup-ink); margin:0; cursor:pointer; white-space:nowrap; text-decoration:none; }
.tiup-ux .tiup-ux-apply-filters:hover { background:var(--tiup-gold-hover); }
.tiup-ux .tiup-ux-reset-filters { background:#fff; border-color:var(--tiup-line); color:var(--tiup-muted); font-weight:600; padding:8px 14px; }
.tiup-ux .tiup-ux-reset-filters:hover { background:var(--porto-gray-8,#f1f1f1); color:var(--tiup-ink); }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-filter-panel { margin-top:0; padding-top:0; border-top:0; padding-bottom:env(safe-area-inset-bottom,0px); }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-filter-panel > .widget-title { display:none; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-filter-help { display:block; font-size:13px; line-height:1.5; color:var(--tiup-muted); margin:0 0 18px; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-facets-row { display:block; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-facet { max-width:none; margin-bottom:18px; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-facet select { height:46px; min-height:46px; font-size:14px; padding:10px 14px; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-facet-actions { display:flex; flex-direction:column; width:100%; gap:10px; margin-top:10px; }
.tiup-ux .tiup-ux-filter-dialog .tiup-ux-apply-filters,.tiup-ux .tiup-ux-filter-dialog .tiup-ux-reset-filters { width:100%; min-height:46px; height:46px; font-size:14px; }
.tiup-ux .tiup-ux-facet-form :is(select,input,button,a):focus-visible { outline:3px solid var(--tiup-ink); outline-offset:3px; }
/* Existing quantity promotions sit next to the category heading, below the header. */
.tiup-ux-catalog-page .tiup-ux-category-promo { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 clamp(16px,2.5vw,48px) 24px; padding:18px 22px; border:1px solid var(--tiup-line); border-left:4px solid var(--tiup-gold); border-radius:6px; background:var(--tiup-tint,#fff9ec); }
.tiup-ux-category-promo h2 { margin:0 0 5px; font-size:18px; line-height:1.4; color:var(--tiup-ink); }
.tiup-ux-category-promo p { margin:0; font-size:13px; line-height:1.5; color:var(--tiup-muted); }
.tiup-ux-category-promo dl { display:flex; flex:none; gap:10px; margin:0; }
.tiup-ux-category-promo dl > div { min-width:125px; padding:10px 18px; background:#fff; border:1px solid var(--tiup-line); border-radius:4px; text-align:center; }
.tiup-ux-category-promo dt { font-size:13px; font-weight:500; color:var(--tiup-muted); }
.tiup-ux-category-promo dd { margin:3px 0 0; font-size:24px; line-height:1.2; font-weight:700; color:var(--tiup-ink); }
@media(max-width:767px) {
 .tiup-ux-catalog-page .tiup-ux-category-promo { display:block; padding:14px; margin-bottom:18px; }
 .tiup-ux-category-promo h2 { font-size:16px; }
 .tiup-ux-category-promo dl { margin-top:12px; gap:8px; }
 .tiup-ux-category-promo dl > div { min-width:0; flex:1; padding:8px; }
 .tiup-ux-category-promo dd { font-size:22px; }
}
@media(max-width:991px) {
 body.tiup-ux-catalog-page .shop-loop-before { flex-wrap:nowrap; }
}
