.catalog-grid{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,3fr);gap:2rem;max-width:1200px;margin:auto}
#catalog h1{margin:1.25rem 0}#catalog fieldset{border:1px solid #d5d8dc;border-radius:4px;margin-bottom:1rem;padding:.65rem}
#catalog fieldset label{display:block;margin:.35rem 0}
#catalog button{cursor:pointer}#catalog button:disabled{cursor:default;opacity:.55}
#catalog-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
#catalog-products article{border:1px solid #e4e7ea;border-radius:6px;padding:1rem}
#catalog-pagination{display:flex;gap:.5rem;margin:1rem 0}
@media(max-width:700px){.catalog-grid{grid-template-columns:1fr}}

/* Default product gallery is SSR-only and remains useful with JavaScript disabled. */
.product-gallery {display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin:1.5rem 0}
.product-gallery img {display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.product-gallery a:focus-visible {outline:3px solid currentColor;outline-offset:3px}

.catalog-product-image{display:block;max-width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;background:var(--surface, #f6f6f6);}

/* SKU picker progressively enhances SSR links; the entire list stays usable without JS. */
.variant-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.85rem;max-width:720px;margin:.8rem 0}
.variant-option-grid label{display:flex;flex-direction:column;gap:.3rem;font-weight:600}
.variant-option-grid select{max-width:100%;padding:.55rem;min-height:2.5rem}
#variant-picker-controls[aria-busy="true"]{opacity:.75}
#variant-picker-controls a{display:inline-block;margin:.4rem 0 1rem}
#variant-fallback-links a[aria-current="page"]{font-weight:700}

/* The selected child SKU's own/inherited media is shown as a small preview,
   never used to replace the server-rendered product gallery. */
.variant-preview-image{display:block;width:112px;max-width:100%;height:auto;aspect-ratio:1;object-fit:contain;margin:.35rem 0;border:1px solid #e4e7ea;border-radius:4px}
.variant-preview-image[hidden]{display:none}

/* A removed facet must not leave focusable stale controls after an AJAX update. */
#catalog fieldset[hidden]{display:none}

/* HSite7: one accessible link includes image, title and formatted price. */
.ks-catalog__product-link{display:flex;flex-direction:column;height:100%;gap:.6rem;text-decoration:none;color:inherit}
.ks-catalog__product-link:focus-visible{outline:3px solid currentColor;outline-offset:4px}
.ks-catalog__product-link:hover h2{text-decoration:underline;text-underline-offset:3px}
.ks-catalog__price{margin-top:auto;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
.ks-catalog__image-empty{display:block;aspect-ratio:1/1;background:#f5f5f5}
.ks-catalog__mobile-open,.ks-catalog__mobile-close{display:none}
.ks-facet-toggle{float:right;border:0;background:transparent;text-decoration:underline;font-size:.8rem;color:inherit;padding:0 .15rem}
.ks-facet-search{width:100%;min-height:2.25rem;padding:.5rem;border:1px solid #d5d8dc;border-radius:4px;margin:.5rem 0}
#catalog fieldset.is-collapsed>label,#catalog fieldset.is-collapsed>select,
#catalog fieldset.is-collapsed>.ks-facet-search{display:none}
#catalog fieldset label[hidden]{display:none}
@media(max-width:700px){
  .ks-catalog__mobile-open,.ks-catalog__mobile-close{display:inline-flex;align-items:center;justify-content:center}
  .ks-catalog__mobile-open{width:100%;min-height:44px;margin:1rem 0;border:1px solid currentColor;background:#fff}
  .ks-catalog__mobile-close{float:right;border:0;background:transparent;font-size:2rem;line-height:1}
  .ks-catalog__sidebar{display:none}
  .ks-catalog__sidebar.is-open{display:block;position:fixed;z-index:1100;inset:0;overflow-y:auto;
    background:#fff;padding:1rem 1.25rem;box-shadow:0 0 0 500vmax rgba(0,0,0,.4)}
  #catalog-filters{max-width:680px;margin:auto;padding-bottom:4rem}
  .ks-catalog__apply{position:sticky;bottom:0;min-height:48px;width:100%;background:#111;color:#fff}
}
/* Dimension buttons use unique option codes and human labels, never raw SKU strings. */
.variant-dimension{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem!important}
.variant-dimension legend{font-weight:600;margin-bottom:.5rem}
.variant-option-button{border:1px solid #999;border-radius:4px;min-width:44px;min-height:40px;padding:.5rem .8rem;background:#fff;color:#111}
.variant-option-button.is-selected,.variant-option-button[aria-pressed=true]{background:#111;color:#fff;border-color:#111}
.variant-option-button:disabled{opacity:.3;cursor:not-allowed}
#variant-fallback-links{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}
#variant-fallback-links a{display:inline-block;border:1px solid #aaa;padding:.45rem .7rem;border-radius:4px}

/* Sprint08 enhanced facets: heading toggles, options scroll independently. */
#catalog #catalog-dynamic-facets fieldset{min-width:0;overflow:visible;padding:0;border:0;border-bottom:1px solid #ddd;border-radius:0}
#catalog #catalog-dynamic-facets legend{display:block;width:100%;padding:0}
#catalog .ks-facet-toggle{float:none;width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;min-height:44px;padding:.65rem .15rem;border:0;background:transparent;color:inherit;text-decoration:none;font-size:.95rem;font-weight:600}
#catalog .ks-facet-chevron{display:block;width:9px;height:9px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg);transition:transform .2s}
#catalog fieldset.is-collapsed .ks-facet-chevron{transform:rotate(-135deg)}
#catalog .ks-facet-body{min-width:0;padding:0 .15rem .7rem}
#catalog .ks-facet-body[hidden]{display:none!important}
#catalog .ks-facet-options{max-height:220px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:.5rem}
#catalog .ks-facet-search{box-sizing:border-box;width:100%;margin:.25rem 0 .65rem}
#catalog .ks-facet-options label{display:flex;align-items:flex-start;gap:.4rem;overflow-wrap:anywhere}
#catalog .ks-catalog__product-media{aspect-ratio:1/1;position:relative;overflow:hidden;display:block;background:#f2f2f1}
#catalog .ks-catalog__product-media .ks-product-card__photo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
#catalog .ks-product-card__photo--secondary{opacity:0;transition:opacity .2s ease}
@media(hover:hover){#catalog .ks-catalog__product-link:hover .ks-product-card__photo--secondary{opacity:1}}
#catalog .ks-product-card__brand{display:block;font-size:.78rem;letter-spacing:.03em;color:#777}
#catalog .ks-product-card__sizes{display:block;font-size:.78rem;line-height:1.4;color:#555}
@media(prefers-reduced-motion:reduce){#catalog .ks-product-card__photo--secondary{transition:none}}
#catalog #catalog-dynamic-facets fieldset:not([data-enhanced="1"]){max-height:300px;overflow-y:auto;overscroll-behavior:contain}

body[data-ks-theme="bridge-v1"] .ks-product-card__brand{display:inline!important;letter-spacing:0;font-size:.88em;color:#666;font-weight:500}


/* Sprint10: native accessible filter accordions, SSR works without JavaScript. */
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets fieldset .ks-facet-label-only{
  position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;
  padding:0;margin:-1px;border:0;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets details.ks-facet-details{
  display:block;width:100%;min-width:0;border:0;margin:0;padding:0;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets details.ks-facet-details > summary{
  display:list-item;list-style:none;cursor:pointer;font-weight:650;font-size:14px;
  padding:14px 28px 14px 0;position:relative;min-height:44px;box-sizing:border-box;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets details.ks-facet-details > summary::-webkit-details-marker{display:none}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets details.ks-facet-details > summary::after{
  content:'';position:absolute;right:9px;top:18px;width:9px;height:9px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets details.ks-facet-details[open] > summary::after{transform:rotate(225deg);top:22px}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets .ks-facet-options{
  display:block!important;overflow-y:auto!important;overscroll-behavior:contain;
  max-height:min(240px,40vh)!important;scrollbar-width:thin;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets .ks-facet-options label[hidden]{display:none!important}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-dynamic-facets input.ks-facet-search{
  display:block;width:100%;min-height:40px;box-sizing:border-box;margin:0 0 10px;
}
@media (prefers-reduced-motion: reduce){body[data-ks-theme="bridge-v1"] #catalog .ks-facet-details > summary::after{transition:none}}

/* Sprint12: intrinsic image sizes are respected: no artificial upscaling of small originals.
   Picture keeps mobile sources separate without hiding the hover photograph. */
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-products .ks-product-card__picture {
  position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;
  width:100%!important;height:100%!important;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-products .ks-catalog__product-media picture img.ks-product-card__photo {
  display:block!important;position:static!important;inset:auto!important;
  width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;
  aspect-ratio:auto!important;object-fit:contain!important;
}
body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-products .ks-product-card__picture.ks-product-card__picture--secondary {
  opacity:0!important;transition:opacity .2s ease;
}
@media (hover:hover) {
  body[data-ks-theme="bridge-v1"] #catalog[data-ks-catalog-v1] #catalog-products a.ks-catalog__product-link:hover .ks-product-card__picture.ks-product-card__picture--secondary {opacity:1!important}
}
body[data-ks-theme="bridge-v1"] #product[data-ks-product-v1] .product-gallery.ks-gallery > a.ks-gallery__item > picture.ks-gallery__picture {
  display:grid!important;place-items:center!important;position:absolute;inset:0;width:100%;height:100%;
}
body[data-ks-theme="bridge-v1"] #product[data-ks-product-v1] .product-gallery.ks-gallery > a.ks-gallery__item > picture.ks-gallery__picture > img {
  width:auto!important;height:auto!important;max-width:100%!important;max-height:100%!important;
  object-fit:contain!important;aspect-ratio:auto!important;
}
