@charset "UTF-8";
/**
 * Engine-owned product archive layout.
 *
 * Responsibilities:
 * - shop/category/tag/search canvas and optional shop sidebar
 * - one-row archive toolbar
 * - deterministic grid/list composition
 * - archive pagination and responsive behavior
 *
 * Product visuals remain in product-card.css. Theme files must not override
 * this contract.
 */

body.stm-engine-storefront.woocommerce-shop,
body.stm-engine-storefront.post-type-archive-product,
body.stm-engine-storefront.tax-product_cat,
body.stm-engine-storefront.tax-product_tag,
body.stm-engine-storefront.search-results.post-type-archive-product{
  background:var(--stm-product-archive-bg);
}

body.stm-engine-storefront .stm-woo-wrap{
  --stm-product-archive-columns:var(--stm-product-archive-columns-desktop);
  width:min(100%,var(--stm-container));
  margin-inline:auto;
  padding:var(--stm-section-gap) var(--stm-content-gutter);
  background:var(--stm-product-archive-bg);
}

body.stm-engine-storefront .stm-woo-wrap--cols-1{--stm-product-archive-columns:1;}
body.stm-engine-storefront .stm-woo-wrap--cols-2{--stm-product-archive-columns:2;}
body.stm-engine-storefront .stm-woo-wrap--cols-3{--stm-product-archive-columns:3;}
body.stm-engine-storefront .stm-woo-wrap--cols-4{--stm-product-archive-columns:4;}
body.stm-engine-storefront .stm-woo-wrap--cols-5{--stm-product-archive-columns:5;}
body.stm-engine-storefront .stm-woo-wrap--cols-6{--stm-product-archive-columns:6;}

body.stm-engine-storefront .stm-layout{
  display:grid;
  grid-template-columns:minmax(0,var(--stm-shop-sidebar-width)) minmax(0,1fr);
  align-items:start;
  gap:var(--stm-content-spacing);
  min-width:0;
}

body.stm-engine-storefront .stm-layout--full,
body.stm-engine-storefront .stm-layout--no-sidebar{
  grid-template-columns:minmax(0,1fr);
}

body.stm-engine-storefront .stm-layout__content,
body.stm-engine-storefront .stm-layout__sidebar{
  min-width:0;
}

body.stm-engine-storefront .stm-layout__sidebar{
  position:relative;
  align-self:stretch;
  min-height:100%;
  overflow:visible;
}

body.stm-engine-storefront .stm-layout__content{
  min-width:0;
  overflow:visible;
  background:var(--stm-product-archive-bg);
}

/* One-row archive toolbar */
body.stm-engine-storefront .stm-shop-toolbar{
  display:grid;
  grid-template-columns:auto minmax(76px,1fr) auto;
  align-items:center;
  gap:var(--stm-product-toolbar-gap);
  min-height:var(--stm-product-toolbar-height);
  margin:0 0 var(--stm-space-5);
  padding:var(--stm-product-toolbar-padding-y) var(--stm-product-toolbar-padding-x);
  overflow:visible;
  border:1px solid var(--stm-commerce-raised-edge-line);
  border-top-color:var(--stm-commerce-raised-edge-highlight);
  border-radius:var(--stm-panel-radius);
  background:var(--stm-commerce-raised-heading-bg);
  box-shadow:none;
}

body.stm-engine-storefront .stm-shop-toolbar__left,
body.stm-engine-storefront .stm-shop-toolbar__right,
body.stm-engine-storefront .stm-shop-toolbar__views,
body.stm-engine-storefront .stm-shop-toolbar__sort,
body.stm-engine-storefront .stm-shop-toolbar__per-page{
  display:flex;
  align-items:center;
  min-width:0;
  gap:var(--stm-space-2);
  margin:0;
}

body.stm-engine-storefront .stm-shop-toolbar__left{
  justify-self:start;
  white-space:nowrap;
}

body.stm-engine-storefront .stm-shop-toolbar__right{
  justify-self:end;
  justify-content:flex-end;
  flex-wrap:nowrap;
  gap:var(--stm-product-toolbar-control-gap);
  white-space:nowrap;
}

body.stm-engine-storefront .stm-shop-toolbar__center{
  min-width:0;
  overflow:hidden;
  text-align:center;
  white-space:nowrap;
}

body.stm-engine-storefront .stm-shop-toolbar__count-short{
  display:none;
}

body.stm-engine-storefront .stm-shop-toolbar__label,
body.stm-engine-storefront .stm-shop-toolbar__sort-label,
body.stm-engine-storefront .stm-shop-toolbar__per-page label,
body.stm-engine-storefront .stm-shop-toolbar__count{
  color:var(--stm-color-muted);
  font-size:var(--stm-font-size-small);
  font-weight:var(--stm-weight-semibold);
  line-height:var(--stm-line-ui);
  white-space:nowrap;
}

body.stm-engine-storefront .stm-shop-toolbar__count p{
  margin:0;
}

body.stm-engine-storefront .stm-shop-view-toggle{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:var(--stm-product-view-toggle-width);
  min-width:var(--stm-product-view-toggle-width);
  height:var(--stm-product-view-toggle-height);
  min-height:var(--stm-product-view-toggle-height);
  margin:0;
  padding:0;
  overflow:hidden;
  border:var(--stm-border-default);
  border-radius:var(--stm-button-radius);
  background:var(--stm-commerce-raised-control-bg);
  color:var(--stm-color-muted);
  cursor:pointer;
  transition:border-color var(--stm-transition-fast),background-color var(--stm-transition-fast),color var(--stm-transition-fast);
}

body.stm-engine-storefront .stm-shop-view-toggle:hover{
  border-color:var(--stm-color-primary);
}

body.stm-engine-storefront .stm-shop-view-toggle__segment{
  display:grid;
  place-items:center;
  min-width:0;
  height:100%;
  border:0;
  background:transparent;
  color:inherit;
  transition:background-color var(--stm-transition-fast),color var(--stm-transition-fast);
}

body.stm-engine-storefront .stm-shop-view-toggle__segment + .stm-shop-view-toggle__segment{
  border-left:var(--stm-product-view-toggle-divider);
}

body.stm-engine-storefront .stm-shop-view-toggle__segment svg{
  width:var(--stm-product-view-toggle-icon-size);
  height:var(--stm-product-view-toggle-icon-size);
  fill:currentColor;
}

body.stm-engine-storefront .stm-shop-view-toggle.is-grid .stm-shop-view-toggle__segment--grid,
body.stm-engine-storefront .stm-shop-view-toggle.is-list .stm-shop-view-toggle__segment--list{
  background:var(--stm-commerce-raised-accent-bg);
  color:var(--stm-color-on-primary);
}

body.stm-engine-storefront .stm-shop-view-toggle:disabled{
  cursor:default;
  opacity:1;
}

body.stm-engine-storefront .stm-shop-toolbar__filter{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:var(--stm-space-2);
  min-height:var(--stm-control-height-sm);
  margin:0;
  padding:0 var(--stm-space-3);
  border:var(--stm-border-default);
  border-radius:var(--stm-button-radius);
  background:var(--stm-commerce-raised-control-bg);
  color:var(--stm-color-heading);
  font:inherit;
  font-size:var(--stm-font-size-small);
  font-weight:var(--stm-weight-semibold);
  line-height:1;
  cursor:pointer;
  transition:background-color var(--stm-transition-fast),border-color var(--stm-transition-fast),color var(--stm-transition-fast);
}

body.stm-engine-storefront .stm-shop-toolbar__filter:hover{
  border-color:var(--stm-color-primary);
  background:var(--stm-commerce-raised-hover-bg);
  color:var(--stm-color-primary-deep);
}

body.stm-engine-storefront .stm-shop-toolbar__filter-icon{
  width:var(--stm-icon-size);
  height:var(--stm-icon-size);
  background:currentColor;
  -webkit-mask:url("../icons/filter.svg") center/contain no-repeat;
  mask:url("../icons/filter.svg") center/contain no-repeat;
}

body.stm-engine-storefront .stm-shop-toolbar select,
body.stm-engine-storefront .stm-shop-toolbar .woocommerce-ordering select{
  min-height:var(--stm-control-height-sm);
  margin:0;
  padding:0 var(--stm-space-7) 0 var(--stm-space-3);
  border:var(--stm-border-default);
  border-radius:var(--stm-button-radius);
  background:var(--stm-commerce-raised-control-bg);
  color:var(--stm-color-heading);
  font-size:var(--stm-font-size-small);
  font-weight:var(--stm-weight-medium);
}

body.stm-engine-storefront .stm-shop-toolbar__sort select,
body.stm-engine-storefront .stm-shop-toolbar__sort .woocommerce-ordering select{
  width:var(--stm-product-toolbar-select-width-sort);
}

body.stm-engine-storefront .stm-shop-toolbar__per-page select{
  width:var(--stm-product-toolbar-select-width-show);
}

body.stm-engine-storefront .stm-shop-toolbar .woocommerce-ordering{
  margin:0;
}

/* Grid composition. WooCommerce clearfix pseudo-elements must not become grid cells. */
body.stm-engine-storefront .stm-layout__content ul.products::before,
body.stm-engine-storefront .stm-layout__content ul.products::after{
  content:none;
  display:none;
}

body.stm-engine-storefront .stm-layout__content ul.products{
  position:relative;
  overflow:visible;
  isolation:isolate;
  display:grid;
  grid-template-columns:repeat(var(--stm-product-archive-columns),minmax(0,1fr));
  grid-auto-flow:row;
  align-items:start;
  column-gap:var(--stm-product-grid-column-gap);
  row-gap:var(--stm-product-grid-row-gap);
  margin:0;
  padding:0;
  list-style:none;
}

body.stm-engine-storefront .stm-layout__content ul.products > li.product{
  float:none;
  clear:none;
  width:auto;
  min-width:0;
  margin:0;
  grid-column:auto;
  align-self:start;
  overflow:visible;
}

/* Desktop/tablet list composition follows actual Product Card markup. */

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-layout__content ul.products.stm-products-view-list,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout__content ul.products.stm-products-view-list{
    grid-template-columns:minmax(0,1fr);
    column-gap:0;
    row-gap:var(--stm-product-grid-row-gap);
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list > li.product.stm-product-card,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list > li.product.stm-product-card{
    min-height:0;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl{
    display:grid;
    grid-template-columns:minmax(180px,24%) minmax(0,1fr) auto;
    grid-template-areas:
      "media category actions"
      "media title actions"
      "media meta actions";
    grid-template-rows:auto minmax(0,1fr) auto;
    align-items:start;
    gap:var(--stm-space-3) var(--stm-space-5);
    padding:var(--stm-product-card-padding);
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__media-shell,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__media-shell{
    grid-area:media;
    align-self:stretch;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__media,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__media{
    height:100%;
    min-height:180px;
    aspect-ratio:auto;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__catwrap,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__catwrap{
    grid-area:category;
    margin:0;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--title,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--title{
    grid-area:title;
    margin:0;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__title,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__title{
    min-height:0;
    max-height:none;
    font-size:var(--stm-font-size-h4);
    -webkit-line-clamp:3;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--meta,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--meta{
    grid-area:meta;
    align-self:end;
    margin:0;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--actions,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--actions{
    grid-area:actions;
    align-self:center;
    flex-direction:column;
    justify-content:center;
    margin:0;
    padding:0;
  }

  html[data-stm-layout="desktop"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--actions .stm-pl__atc,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-products-view-list .stm-pl__row--actions .stm-pl__atc{
    margin:0;
  }


/* Pagination */
body.stm-engine-storefront .woocommerce nav.woocommerce-pagination{
  margin-top:var(--stm-space-6);
}

body.stm-engine-storefront .woocommerce nav.woocommerce-pagination ul{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:var(--stm-space-2);
  margin:0;
  padding:0;
  border:0;
}

body.stm-engine-storefront .woocommerce nav.woocommerce-pagination ul li{
  margin:0;
  border:0;
}

body.stm-engine-storefront .woocommerce nav.woocommerce-pagination ul li .page-numbers{
  display:grid;
  place-items:center;
  min-width:var(--stm-control-height-sm);
  min-height:var(--stm-control-height-sm);
  padding:0 var(--stm-space-2);
  border:var(--stm-border-default);
  border-radius:var(--stm-button-radius);
  background:var(--stm-commerce-raised-control-bg);
  color:var(--stm-color-heading);
  font-size:var(--stm-font-size-small);
  font-weight:var(--stm-weight-semibold);
  text-decoration:none;
}

body.stm-engine-storefront .woocommerce nav.woocommerce-pagination ul li .page-numbers:hover,
body.stm-engine-storefront .woocommerce nav.woocommerce-pagination ul li .page-numbers.current{
  border-color:var(--stm-color-primary);
  background:var(--stm-color-primary);
  color:var(--stm-color-on-primary);
}

body.stm-engine-storefront .woocommerce nav.woocommerce-pagination .stm-pagi-hidden{
  display:none;
}


  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout{
    grid-template-columns:minmax(220px,var(--stm-shop-sidebar-width)) minmax(0,1fr);
    gap:var(--stm-space-4);
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout__content ul.products,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout__content ul.products,
html[data-stm-layout="tablet"] body.stm-engine-storefront [class*="stm-woo-wrap--cols-"] .stm-layout__content ul.products,
html[data-stm-layout="mobile"] body.stm-engine-storefront [class*="stm-woo-wrap--cols-"] .stm-layout__content ul.products{
    grid-template-columns:repeat(var(--stm-product-archive-columns-tablet),minmax(0,1fr));
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-shop-toolbar,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar{
    grid-template-columns:auto minmax(60px,1fr) auto;
    gap:8px;
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-shop-toolbar__right,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__right{
    gap:10px;
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-shop-toolbar__sort select,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__sort select,
html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-shop-toolbar__sort .woocommerce-ordering select,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__sort .woocommerce-ordering select{
    width:var(--stm-product-toolbar-select-width-sort-tablet);
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-shop-toolbar__per-page select,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__per-page select{
    width:var(--stm-product-toolbar-select-width-show-tablet);
  }



  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-woo-wrap,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-woo-wrap{
    padding-inline:var(--stm-content-gutter-mobile);
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout{
    grid-template-columns:minmax(0,1fr);
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout__sidebar,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout__sidebar{
    order:2;
  }

  html[data-stm-layout="tablet"] body.stm-engine-storefront .stm-layout__content,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout__content{
    order:1;
  }



  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-woo-wrap{
    padding-block:var(--stm-section-space-mobile);
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-layout__content ul.products,
html[data-stm-layout="mobile"] body.stm-engine-storefront [class*="stm-woo-wrap--cols-"] .stm-layout__content ul.products{
    grid-template-columns:repeat(var(--stm-product-archive-columns-mobile),minmax(0,1fr));
    column-gap:var(--stm-product-grid-column-gap);
    row-gap:var(--stm-product-grid-row-gap);
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar{
    grid-template-columns:auto minmax(38px,1fr) auto;
    gap:6px;
    min-height:44px;
    padding:6px 8px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__label,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__sort-label,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__per-page label{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__count-full{
    display:none;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__count-short{
    display:inline;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__count{
    font-size:10px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__views,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__left,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__right{
    gap:5px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-view-toggle{
    width:58px;
    min-width:58px;
    height:30px;
    min-height:30px;
    border-radius:8px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__filter{
    width:30px;
    min-width:30px;
    min-height:30px;
    padding:0;
    border-radius:8px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-view-toggle__segment svg,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__filter-icon{
    width:14px;
    height:14px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar select,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar .woocommerce-ordering select{
    min-height:30px;
    padding:0 18px 0 7px;
    font-size:var(--stm-product-toolbar-font-size-mobile);
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__sort select,
html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__sort .woocommerce-ordering select{
    width:var(--stm-product-toolbar-select-width-sort-mobile);
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__per-page select{
    width:var(--stm-product-toolbar-select-width-show-mobile);
  }



  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar{
    gap:4px;
    padding-inline:5px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__right{
    gap:5px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__count{
    font-size:9px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-view-toggle{
    width:54px;
    min-width:54px;
    height:28px;
    min-height:28px;
  }

  html[data-stm-layout="mobile"] body.stm-engine-storefront .stm-shop-toolbar__filter{
    width:28px;
    min-width:28px;
    min-height:28px;
  }

