/* Shared shop/archive, card and detail layout. No per-product exceptions. */
.store-intro { min-height:220px; padding-block:32px; display:flex; flex-direction:column; justify-content:center; gap:12px; }
.store-intro .breadcrumb { padding:0; margin:0 0 4px; }
.store-intro h1 { margin:0; text-transform:none; letter-spacing:-.5px; }
.store-intro > p { max-width:720px; color:var(--text-secondary); margin:0; font-size:16px; }
.listing-section { padding-block:0 var(--section-gap); }
.catalog-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:16px; min-height:48px; margin-bottom:24px; }
.collection-summary { margin:0; font-size:14px; color:var(--text-secondary); flex-shrink:0; }
.active-filters { display:flex; flex:1; flex-wrap:wrap; gap:8px; }
.sort-control { display:flex; align-items:center; gap:12px; font-size:14px; margin-left:auto; }
.sort-control select { max-width:210px; }
.filter-chip { display:flex; align-items:center; min-height:44px; padding:8px 12px; border:1px solid var(--border-neutral); border-radius:var(--radius-pill); background:var(--surface-panel); color:var(--text-primary); cursor:pointer; font-size:14px; overflow-wrap:anywhere; }
.store-body { display:grid; grid-template-columns:280px minmax(0,1fr); gap:32px; align-items:start; }
.filter-sidebar { min-width:0; }
.filter-sidebar.can-stick { position:sticky; top:calc(var(--sticky-header-height) + 24px); }
.filter-panel { padding:20px; border-top:1px solid var(--border-neutral); }
.filter-panel h2 { font-size:22px; margin:0 0 24px; }
.filter-form { display:grid; gap:20px; }
.filter-form input[type="search"] { min-width:0; width:100%; }
.filter-group { border:0; border-bottom:1px solid var(--border-neutral); padding-bottom:20px; }
.filter-group summary { min-height:44px; cursor:pointer; font-size:16px; font-weight:600; display:list-item; list-style-position:inside; }
.filter-options { display:grid; gap:4px; }
.filter-option { display:flex; align-items:center; min-height:44px; gap:12px; cursor:pointer; font-size:14px; }
.filter-option input { width:20px; height:20px; accent-color:var(--accent); flex:none; }
.facet-count { margin-left:auto; color:var(--text-secondary); font-size:14px; }
.price-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.price-fields input { width:100%; min-width:0; }
.filter-panel .shop-field { font-size:14px; }
.catalog-ready .filter-submit { display:none; }
.catalog-results { min-width:0; container-type:inline-size; }
.product-grid,.listing-grid,.related-products .product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; align-items:stretch; }
.catalog-results .listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
@container(min-width:720px) { .catalog-results .listing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@container(min-width:980px) { .catalog-results .listing-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
.product-card,.listing-grid .product-card { display:flex; flex-direction:column; height:100%; min-width:0; border:1px solid var(--border-neutral); border-radius:var(--radius-card); background:var(--surface-card); overflow:hidden; box-shadow:none; transition:border-color 180ms ease; }
.product-card:hover { transform:none; border-color:#8a8a8a; box-shadow:none; }
.product-card .product-image { flex:none; aspect-ratio:1; width:100%; height:auto; background:#101010; }
.product-card .product-image img { width:100%; height:100%; object-fit:contain; padding:16px; transform:none; }
.product-card .product-image.is-lifestyle img { object-fit:cover; padding:0; }
.product-card .product-info { display:flex; flex-direction:column; gap:12px; padding:16px; flex:1; }
.product-card .card-category { font-size:12px; letter-spacing:.5px; color:var(--text-secondary); }
.product-card .product-name { display:block; overflow:visible; min-height:0; height:auto; font-size:18px; font-weight:600; line-height:1.3; margin:0; -webkit-line-clamp:unset; overflow-wrap:anywhere; }
.product-card .product-name a::after { content:none; }
.product-card .product-name a { color:var(--text-primary); }
.product-card .product-price { font-size:18px; font-weight:600; line-height:1.5; margin: auto 0 0; padding-top:4px; }
.product-card .quick-shop { margin-top:0; min-height:44px; width:100%; padding:8px; font-size:14px; border-radius:var(--radius-control); text-transform:none; display:flex; align-items:center; justify-content:center; }
.catalog-pagination { padding-top:32px; text-align:center; }
.page-status { color:var(--text-secondary); margin-bottom:16px; font-size:14px; }
.catalog-pagination .btn { min-width:180px; }
.collection-empty { padding:48px 24px; border:0; }
.catalog-error { padding:16px; margin-bottom:24px; border:1px solid var(--border-neutral); }
.catalog-error p { margin-bottom:12px; }
.filter-open { display:none; }
.filter-drawer { position:fixed; inset:0 auto 0 0; margin:0; width:min(420px,100%); height:100dvh; max-height:100dvh; border-radius:0 16px 16px 0; padding:0; }
.filter-drawer[open] { display:flex; flex-direction:column; }
.filter-drawer .dialog-top { flex:none; }
.filter-drawer-body { min-height:0; overflow:auto; flex:1; }
.filter-drawer-body .filter-panel { border:0; padding:24px; }
.filter-drawer-bottom { padding:16px 24px; border-top:1px solid var(--border-neutral); flex:none; }
.filter-drawer-bottom .btn { width:100%; }
.item-page .breadcrumb { padding-block:24px; font-size:14px; flex-wrap:wrap; }
.breadcrumb span,.product-category { color:var(--text-secondary); }
.item-page .breadcrumb span { opacity:1; margin:0; color:var(--text-secondary); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.detail-heading { font-size:24px; margin-bottom:16px; }
.footer .footer-heading { font-size:14px; text-transform:uppercase; margin-bottom:16px; letter-spacing:.5px; }
.product-details .product-category { color:var(--text-secondary); font-size:14px; }
.item-page .product-section { padding-block:0 var(--section-gap); }
.product-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:48px; align-items:start; }
.product-gallery { min-width:0; position:static; }
.gallery-main { border:1px solid var(--border-neutral); border-radius:var(--radius-card); aspect-ratio:1; background:var(--surface-card); }
.gallery-main > img { object-fit:contain; }
.gallery-zoom { width:44px; height:44px; color:white; background:#1b1b1b; }
.gallery-thumbs { display:flex; flex-wrap:wrap; gap:12px; margin-top:16px; }
.gallery-thumb { width:80px; height:80px; flex:none; border-radius:8px; }
.gallery-thumb img { width:100%; height:100%; object-fit:contain; }
.product-details h1 { font-size:clamp(32px,3vw,44px); margin-block:12px 24px; text-transform:none; }
.product-details .product-price-display { margin-bottom:24px; }
.product-details .price-current { font-size:24px; }
.variant-selector { min-width:0; border:0; margin-bottom:24px; padding:0; }
.variant-label { padding-bottom:12px; font-size:16px; text-transform:none; }
.variant-options { gap:8px; flex-wrap:wrap; }
.variant-option { min-width:44px; min-height:44px; border:1px solid var(--border-neutral); border-radius:8px; font-size:14px; }
.variant-option.active { background:var(--text-primary); color:#111; border-color:var(--text-primary); }
.reset-variants { margin-bottom:16px; }
.qty-control { min-height:44px; margin-bottom:16px; }
.qty-control button,.qty-control input { min-width:44px; min-height:44px; }
.qty-control button,.qty-control input { border:1px solid var(--border-neutral); background:var(--surface-panel); border-radius:var(--radius-control); }
.add-to-cart-row .btn { width:100%; min-height:48px; }
.sizing-link { display:inline-flex; align-items:center; min-height:44px; margin-block:8px; font-size:14px; }
.product-tabs { margin-top:48px; }
.tabs-nav { display:flex; flex-wrap:wrap; gap:8px; }
.tab-btn { min-height:44px; font-size:14px; padding:12px 16px; }
.tab-panel { padding-block:24px; }
.tab-panel p,.tab-panel li { font-size:16px; line-height:1.6; }
.tab-panel h4 { font-size:22px; margin-bottom:16px; }
.related-products { padding-block:0 var(--section-gap); }
.related-products h2 { margin-bottom:24px; }
[hidden] { display:none!important; }
@media(min-width:1024px) and (max-width:1199px) { .store-body { grid-template-columns:240px minmax(0,1fr); } }
@media(max-width:1439px) and (min-width:1024px) { .catalog-results .listing-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; } }
@media(max-width:1199px) and (min-width:1024px) { .catalog-results .listing-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:1023px) {
  .store-body { grid-template-columns:minmax(0,1fr); }
  .filter-sidebar { display:none; }
  .filter-open { display:inline-flex; align-items:center; gap:8px; }
  .filter-active-count { min-width:20px; }
  .catalog-results .listing-grid,.product-grid,.related-products .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .active-filters { flex-basis:100%; order:4; }
  .active-filters:empty { display:none; }
  .product-layout { gap:32px; }
}
@media(max-width:767px) {
  .store-intro { min-height:190px; padding-block:24px; }
  .catalog-toolbar { gap:12px; }
  .sort-control { flex:1; justify-content:flex-end; gap:8px; }
  .sort-control select { max-width:180px; width:100%; }
  .catalog-toolbar .collection-summary { order:3; flex-basis:100%; }
  .catalog-results .listing-grid,.product-grid,.related-products .product-grid { gap:16px; }
  .product-card .product-name { font-size:16px; }
  .product-card .product-price { font-size:17px; }
  .product-card .product-info { padding:16px; }
  .product-layout { grid-template-columns:1fr; }
  .product-tabs { margin-top:36px; }
  .store-intro h1 { font-size:36px; }
}
@media(max-width:419px) { .catalog-results .listing-grid,.product-grid,.related-products .product-grid { grid-template-columns:minmax(0,1fr); } .sort-control select { max-width:152px; } }
