/* Dedicated catalog layout, built on the existing Linear storefront tokens. */
.lin-store .lin-home-preview { border-top: 1px solid var(--lin-soft-line); }
.lin-store main.lin-products-page { min-height: calc(100vh - 175px); padding-top: 32px !important; padding-bottom: 72px !important; }
.lin-products-page .lin-breadcrumb { margin-bottom: 36px; }
.lin-products-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.lin-products-intro h1 { color: var(--lin-ink); font-size: clamp(30px,3.6vw,43px); font-weight: 500; letter-spacing: -1.4px; line-height: 1.25; margin: 17px 0 14px; }
.lin-products-intro p { color: var(--lin-muted); font-size: 14px; line-height: 1.8; margin: 0; }
.lin-products-intro > a { margin-bottom: 4px; white-space: nowrap; }
.lin-products-page .lin-catalog { padding: 32px 0 0; }
.lin-store:has(.lin-products-page) .shop-search { display: none; }
.lin-search-form { display: flex; align-items: center; gap: 10px; padding-bottom: 28px; }
.lin-catalog-search { flex: 0 1 440px; margin: 0; height: 44px; border: 1px solid var(--lin-line); background: var(--lin-surface); border-radius: 8px; display: flex; align-items: center; gap: 10px; padding: 0 14px; color: var(--lin-muted); }
.lin-catalog-search > span { font-size: 24px; line-height: 1; }
.lin-catalog-search input { min-width: 0; width: 100%; background: transparent; border: 0; outline: none; color: var(--lin-ink); font-size: 14px; }
.lin-catalog-search input::placeholder { color: var(--lin-faint); }
.lin-catalog-search:focus-within { border-color: var(--lin-accent); box-shadow: 0 0 0 3px #8a85d015; }
.lin-search-form .lin-button { height: 44px; min-width: 78px; }
.lin-search-clear { background: transparent; border: 0; color: var(--lin-muted); font-size: 12px; cursor: pointer; min-height: 44px; white-space: nowrap; padding: 0 10px; }
.lin-search-clear:hover { color: var(--lin-ink); }
.lin-search-clear[hidden] { display: none; }
.lin-products-filter { display: flex; gap: 18px; align-items: center; justify-content: space-between; padding: 21px 0; border-top: 1px solid var(--lin-soft-line); margin-bottom: 4px; }
.lin-products-filter .lin-catalog-count { flex: 0 0 auto; }
.lin-store .lin-products-page .item-list,
.lin-store .lin-products-page .item-list:has(> .item-card-cell:only-child) { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.lin-store .lin-products-page .item-list > .item-card-cell:only-child .acg-card { display: flex; }
.lin-store .lin-products-page .item-list > .item-card-cell:only-child .acg-thumb { height: 180px; min-height: 180px; border-right: 0; border-bottom: 1px solid var(--lin-soft-line); background-size: 100px 100px !important; }
.lin-store .lin-products-page .item-list > .item-card-cell:only-child .acg-body { padding: 20px; }
.lin-store .lin-products-page .item-list > .item-card-cell:only-child .goods-title { font-size: 18px; }
.lin-store .lin-products-page .item-list > .item-card-cell:only-child .price { font-size: 25px; }
.lin-products-page .lin-empty .lin-text-link { margin-top: 20px; }
@media(max-width:900px) {
  .lin-store .lin-products-page .item-list,
  .lin-store .lin-products-page .item-list:has(> .item-card-cell:only-child) { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
  .lin-store main.lin-products-page { padding-top: 25px !important; padding-bottom: 40px !important; }
  .lin-products-page .lin-breadcrumb { margin-bottom: 28px; }
  .lin-products-intro { align-items: flex-start; flex-direction: column; gap: 18px; }
  .lin-products-intro h1 { font-size: 30px; letter-spacing: -.8px; }
  .lin-products-page .lin-catalog { padding-top: 24px; }
  .lin-search-form { flex-wrap: wrap; padding-bottom: 18px; gap: 8px; }
  .lin-catalog-search { flex: 1 1 180px; }
  .lin-search-form .lin-button { min-width: 66px; }
  .lin-search-clear { padding-left: 0; min-height: 30px; }
  .lin-products-filter { align-items: flex-start; }
  .lin-products-filter .lin-catalog-count { padding-top: 8px; }
  .lin-store .lin-products-page .item-list,
  .lin-store .lin-products-page .item-list:has(> .item-card-cell:only-child) { grid-template-columns: 1fr; }
}
