/* SourcingPromo — the product catalogue (archive, category page, product detail).
   Tokens and shared classes come from tokens.css and style.css; only "cat-" classes live here. */

/* The filter-sort and tabs behaviours hide things with [hidden], while the card and panel rules
   below set a display of their own: this keeps the attribute winning. */
.cat-grid > [hidden],
.cat-gallery__panel[hidden]{display:none !important}

/* ---------- page heads ---------- */
.cat-hero{padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.cat-hero h1{max-width:26ch}
.cat-hero .lede{max-width:62ch}
.cat-hero__media{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--line);background:var(--sand-2)}
.cat-hero__media img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.split.cat-split--single{grid-template-columns:minmax(0,1fr)}
.cat-section-title{font-size:var(--step-2)}

/* ---------- breadcrumbs ---------- */
.cat-crumbs ol{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;list-style:none;margin:0 0 1rem;padding:0}
.cat-crumbs li{display:inline-flex;align-items:center;gap:.4rem}
.cat-crumbs li+li::before{content:"/";color:var(--line-strong)}
.cat-crumbs [aria-current="page"]{color:var(--ink-2)}

/* ---------- filters ---------- */
.cat-filters{display:flex;flex-direction:column;gap:1.1rem;margin-bottom:clamp(1.25rem,2.5vw,2rem)}
.cat-filters__bar{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,10.5rem),1fr))}
.cat-filters__field>span{font-size:.75rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.cat-filters__field select{padding-block:.5rem}
.cat-filters__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding-top:.8rem;border-top:1px solid var(--line)}
.cat-filters__count{margin:0;min-height:1.2em;font-weight:600;color:var(--ink-2);font-variant-numeric:tabular-nums}
.cat-filters__scope{margin:0;flex:1 1 12rem}
.cat-filters__reset{margin-left:auto}

/* ---------- grid and card ---------- */
.cat-grid{margin:0}
.cat-grid>.card{min-width:0}
.cat-card__sku{margin:0;letter-spacing:.04em;font-variant-numeric:tabular-nums}
.cat-card__text{
  margin:0;color:var(--ink-2);
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;
}
.cat-card__tags{margin:0}
.cat-card .card__foot{flex-wrap:wrap;gap:.4rem}
.cat-card__price{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.cat-card__moq{white-space:nowrap}
.cat-card__placeholder{width:100%;height:100%}

/* ---------- gallery (tabs behaviour: thumbnails drive the panels) ---------- */
.cat-single__top{align-items:start}
.cat-gallery{display:flex;flex-direction:column;gap:.7rem;min-width:0}
.cat-gallery__stage{order:1;background:var(--sand);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}
.cat-gallery__panel{margin:0}
.cat-gallery__img{width:100%;height:auto;aspect-ratio:1/1;object-fit:contain}
.cat-gallery__shots{order:2;display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.2rem;scrollbar-width:thin}
.cat-gallery__thumb{
  flex:0 0 auto;width:76px;padding:0;overflow:hidden;cursor:pointer;
  border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--paper);
}
.cat-gallery__thumb img{width:100%;height:76px;object-fit:cover}
.cat-gallery__thumb[aria-selected="true"]{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.cat-gallery__thumb:hover{border-color:var(--line-strong)}
.cat-gallery__placeholder{width:100%;aspect-ratio:1/1;min-height:16rem;border-radius:var(--radius-lg)}

/* ---------- product summary ---------- */
.cat-summary{min-width:0}
.cat-summary__inner{display:flex;flex-direction:column;gap:.9rem}
.cat-summary__title{font-size:var(--step-3)}
.cat-summary__inner .lede{max-width:56ch}
@media (min-width:860px){
  .cat-summary__inner{position:sticky;top:5.5rem}
}

.cat-price{
  display:flex;flex-direction:column;gap:.7rem;
  padding:1rem 1.1rem 1.1rem;background:var(--paper);
  border:1px solid var(--line);border-radius:var(--radius-lg);
}
.cat-price__from{display:flex;flex-wrap:wrap;align-items:baseline;gap:.45rem;margin:0}
.cat-price__from .price{font-size:var(--step-2)}
.cat-tiers{font-size:.9375rem}
.cat-tiers th,.cat-tiers td{padding-block:.45rem}
.cat-price__notes{list-style:none;margin:0;padding:0;display:grid;gap:.3rem}
.cat-price__notes li{position:relative;padding-left:.85rem}
.cat-price__notes li::before{content:"·";position:absolute;left:0;color:var(--line-strong)}

.cat-buy{margin:0}
.cat-buy__note{display:block;margin-top:.15rem;font-weight:400}
.cat-landed{margin:0}
.cat-cta{margin:.15rem 0 0;gap:.6rem}
.cat-file{margin:0}

/* links inside a facts value (decoration methods) */
.cat-inline-links{display:flex;flex-wrap:wrap;gap:.3rem .7rem}
.cat-inline-links a{font-weight:540}

/* ---------- plain lists, chips, misc blocks ---------- */
.cat-list{margin:0;padding-left:1.1rem;display:grid;gap:.45rem;color:var(--ink-2)}
.cat-list li::marker{color:var(--brand)}
.cat-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem}
.cat-chips a{
  display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .8rem;
  border:1px solid var(--line-strong);border-radius:var(--radius-pill);
  background:var(--paper);font-size:.9375rem;text-decoration:none;
}
.cat-chips a:hover{border-color:var(--ink);color:var(--ink)}
.cat-compliance{margin:0;max-width:70ch;padding-top:.85rem;border-top:1px solid var(--line)}
.cat-empty__actions{margin:.9rem 0 0;justify-content:center}

/* ---------- pagination (the_posts_pagination and paginate_links) ---------- */
.cat-pagination{margin-top:clamp(1.5rem,3vw,2.5rem)}
.cat-pagination .nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:0}
.cat-pagination ul.page-numbers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.cat-pagination a.page-numbers,
.cat-pagination span.page-numbers{
  display:inline-flex;align-items:center;justify-content:center;min-width:2.4rem;padding:.45rem .7rem;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  text-decoration:none;font-size:.9375rem;font-variant-numeric:tabular-nums;
}
.cat-pagination span.page-numbers.current{background:var(--ink);border-color:var(--ink);color:#fff}
.cat-pagination a.page-numbers:hover{border-color:var(--ink);color:var(--ink)}
.cat-pagination span.page-numbers.dots{border-color:transparent;background:transparent}

/* The pagination heading is core's screen-reader-text class, which this theme does not style. */
.cat-pagination .screen-reader-text{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
