/* Shop archive + shop page template */

.page-shop .shop-hero{
  padding:48px 0 32px;
  background:var(--white);
  border-bottom:1px solid var(--grey-200)
}
.page-shop .shop-hero .section-header{
  margin-bottom:0;
  text-align:left;
  max-width:720px
}
.page-shop .shop-hero .section-header h1{
  margin-bottom:12px
}
.page-shop .shop-hero .section-header p{
  margin:0;
  font-size:16px;
  line-height:1.7;
  color:var(--grey-500)
}

.page-shop .shop-section{
  padding:var(--section-pad) 0;
  background:var(--off-white)
}

.page-shop .shop-layout--with-filters{
  display:grid;
  grid-template-columns:minmax(280px,320px) minmax(0,1fr);
  gap:32px;
  align-items:start
}

.page-shop .shop-filters{
  position:sticky;
  top:96px;
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:26px;
  padding:0;
  overflow:hidden;
  box-shadow:0 1px 2px var(--dark-08),0 12px 32px -12px var(--dark-12)
}

.page-shop .shop-filters--als{
  background:transparent;
  border:0;
  border-radius:0;
  padding:0;
  overflow:visible;
  box-shadow:none
}

.page-shop .shop-filters--als .als-pf-wrap{
  --als-accent:var(--teal);
  --als-accent-soft:var(--primary-06);
  --als-border:var(--grey-200);
  --als-text:var(--navy);
  --als-muted:var(--grey-500);
  --als-input-bg:var(--off-white);
  --als-bg:var(--white);
  font-family:'DM Sans',sans-serif
}

.page-shop .shop-filters--als .als-pf-filter{
  border:1px solid var(--grey-200);
  border-radius:26px;
  padding:22px 24px;
  gap:0;
  box-shadow:0 1px 2px var(--dark-08),0 12px 32px -12px var(--dark-12)
}

.page-shop .shop-filters--als .als-pf-block{
  padding:22px 0;
  border-bottom:1px solid var(--grey-200)
}

.page-shop .shop-filters--als .als-pf-block:first-child{
  padding-top:0
}

.page-shop .shop-filters--als .als-pf-block:last-child{
  padding-bottom:0;
  border-bottom:0
}

.page-shop .shop-filters--als .als-pf-block-title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0 0 14px;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:.01em;
  text-transform:none;
  color:var(--navy)
}

.page-shop .shop-filters--als .als-pf-block-title::before{
  content:"";
  flex-shrink:0;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--teal)
}

.page-shop .shop-filters--als .als-pf-sort-pill{
  border-radius:999px;
  font-family:'DM Sans',sans-serif
}

.page-shop .shop-filters--als .als-pf-sort-pill.is-active{
  background:var(--teal);
  border-color:var(--teal);
  color:var(--white)
}

.page-shop .shop-filters--als .als-pf-apply{
  background:var(--teal);
  color:var(--white)
}

.page-shop .shop-filters--als .als-pf-apply:hover{
  filter:brightness(.96)
}

.page-shop .shop-filters--als .als-pf-remove{
  background:var(--off-white);
  color:var(--navy);
  border:1px solid var(--grey-200)
}

.page-shop .shop-filters--als .als-pf-actions{
  padding-top:22px;
  border-top:1px solid var(--grey-200)
}

/* Price range — match HealthHub / legacy WPF sidebar */
.page-shop .shop-filters--als .als-pf-block--price{
  padding-bottom:22px
}

.page-shop .shop-filters--als .als-pf-block--price .als-pf-block-title{
  margin-bottom:16px
}

.page-shop .shop-filters--als .als-pf-price-slider{
  --als-pf-thumb:22px;
  --als-pf-track:5px
}

.page-shop .shop-filters--als .als-pf-range-track{
  background:var(--grey-200)
}

.page-shop .shop-filters--als .als-pf-range-progress{
  background:var(--teal)
}

.page-shop .shop-filters--als .als-pf-range-min::-webkit-slider-thumb,
.page-shop .shop-filters--als .als-pf-range-max::-webkit-slider-thumb,
.page-shop .shop-filters--als .als-pf-range-min::-moz-range-thumb,
.page-shop .shop-filters--als .als-pf-range-max::-moz-range-thumb{
  border:3px solid var(--teal);
  box-shadow:0 4px 10px -2px var(--primary-20)
}

.page-shop .shop-filters--als .als-pf-price-display{
  grid-area:labels;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:600;
  color:var(--navy);
  line-height:1.2
}

.page-shop .shop-filters--als .als-pf-price-min-label,
.page-shop .shop-filters--als .als-pf-price-max-label{
  flex:0 1 auto;
  min-width:0;
  white-space:nowrap;
  font-family:'Fraunces',Georgia,serif;
  font-size:16px;
  font-weight:700;
  font-variant-numeric:tabular-nums
}

.page-shop .shop-filters--als .als-pf-price-sep{
  flex:0 0 auto;
  color:var(--grey-400);
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:500;
  line-height:1
}

@media (min-width:783px){
  .page-shop .shop-filters--als .als-pf-mobile-toggle,
  .page-shop .shop-filters--als .als-pf-overlay,
  .page-shop .shop-filters--als .als-pf-drawer-header{
    display:none!important
  }

  .page-shop .shop-filters--als .als-pf-drawer{
    position:static;
    width:auto;
    height:auto;
    max-height:none;
    transform:none!important;
    box-shadow:none;
    display:block
  }
}

.page-shop .shop-layout__main{min-width:0}

.page-shop .shop-filter-drawer-toggle,
.page-shop .shop-filter-drawer-overlay,
.page-shop .shop-filter-drawer-head{
  display:none
}

.page-shop .shop-archive-desc{
  margin-bottom:24px;
  padding:20px 24px;
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius);
  color:var(--grey-700);
  font-size:15px;
  line-height:1.6
}

/* ════════════════════════════════════════
   WPF SIDEBAR — HealthHub layout (theme teal)
   Reference: healthhub-filter-sidebar.html
════════════════════════════════════════ */
.page-shop .shop-filters .wpfMainWrapper,
.page-shop .shop-filters .wpf_filters,
.page-shop .shop-filters > .wpf-filters{
  display:flex;
  flex-direction:column;
  gap:0
}
.page-shop .shop-filters .wpfFilterWrapper,
.page-shop .shop-filters .wpf-filter,
.page-shop .shop-filters .widget{
  padding:22px 24px;
  margin:0;
  border:0;
  border-bottom:1px solid var(--grey-200)
}
.page-shop .shop-filters .wpfFilterWrapper:last-child,
.page-shop .shop-filters .wpf-filter:last-child,
.page-shop .shop-filters .widget:last-child{
  border-bottom:0
}

/* Section headings — dot on title + collapse toggle */
.page-shop .shop-filters .wpfFilterTitle,
.page-shop .shop-filters .wpfTitleWrapper,
.page-shop .shop-filters .widget-title,
.page-shop .shop-filters h3,
.page-shop .shop-filters h4{
  display:flex!important;
  align-items:center!important;
  gap:0!important;
  width:100%!important;
  min-height:44px!important;
  padding:0 0 14px!important;
  margin:0 0 12px!important;
  border:0!important;
  font-family:'DM Sans',sans-serif!important;
  font-size:15px!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  line-height:1.3!important;
  color:var(--navy)!important;
  cursor:pointer!important;
  box-sizing:border-box!important
}
.page-shop .shop-filters .wpfFilterTitle::before,
.page-shop .shop-filters .wpfTitleWrapper::before,
.page-shop .shop-filters .widget-title::before{
  display:none!important;
  content:none!important
}
.page-shop .shop-filters .wpfFilterTitle .wfpTitle,
.page-shop .shop-filters .wpfTitleWrapper .wfpTitle{
  flex:1 1 auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  height:auto!important;
  min-height:0!important;
  border:0!important;
  background:transparent!important;
  font-family:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  line-height:inherit!important;
  color:inherit!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  float:none!important;
  text-transform:none!important
}
.page-shop .shop-filters .wpfFilterTitle .wfpTitle::before,
.page-shop .shop-filters .wpfTitleWrapper .wfpTitle::before,
.page-shop .shop-filters .widget-title::before{
  content:''!important;
  display:block!important;
  width:6px!important;
  height:6px!important;
  margin:0!important;
  border-radius:50%!important;
  background:var(--teal)!important;
  box-shadow:0 0 0 3px var(--primary-10)!important;
  flex:0 0 6px!important
}
.page-shop .shop-filters .wpfFilterTitle .wpfBlockClear,
.page-shop .shop-filters .wpfFilterTitle label.wpfBlockClear{
  order:4!important;
  margin:0 0 0 8px!important;
  padding:0!important;
  font-size:12px!important;
  font-weight:600!important;
  color:var(--teal)!important;
  text-decoration:none!important;
  flex:0 0 auto!important
}
.page-shop .shop-filters .wpfFilterTitle .wpfBlockClear::before,
.page-shop .shop-filters .wpfFilterTitle label.wpfBlockClear::before{
  display:none!important;
  content:none!important
}
.page-shop .shop-filters .wpfFilterWrapper i.wpfTitleToggle,
.page-shop .shop-filters .wpfTitleToggle,
.page-shop .shop-filters .wpfFilterTitle .wpfToggle{
  order:3!important;
  float:none!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  margin:0 0 0 auto!important;
  padding:0!important;
  border:1px solid var(--grey-200)!important;
  border-radius:9px!important;
  background:var(--off-white)!important;
  color:var(--grey-600)!important;
  font-size:11px!important;
  line-height:1!important;
  cursor:pointer!important;
  opacity:1!important;
  flex:0 0 30px!important;
  align-self:center!important;
  transition:border-color .18s ease,color .18s ease,background .18s ease,transform .18s ease!important
}
.page-shop .shop-filters .shop-filter-is-collapsed .wpfTitleToggle,
.page-shop .shop-filters .shop-filter-is-collapsed .wpfToggle{
  color:var(--navy)!important
}
.page-shop .shop-filters .wpfTitleToggle,
.page-shop .shop-filters .wpfToggle{
  font-size:0!important;
  color:transparent!important
}
.page-shop .shop-filters .wpfTitleToggle::after,
.page-shop .shop-filters .wpfToggle::after{
  content:'-'!important;
  display:block!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:1!important
}
.page-shop .shop-filters .shop-filter-is-collapsed .wpfTitleToggle::after,
.page-shop .shop-filters .shop-filter-is-collapsed .wpfToggle::after{
  content:'+'!important
}
.page-shop .shop-filters .shop-filter-no-toggle .wpfTitleToggle,
.page-shop .shop-filters .shop-filter-no-toggle .wpfToggle,
.page-shop .shop-filters .shop-filter--price .wpfTitleToggle,
.page-shop .shop-filters .shop-filter--price .wpfToggle,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfTitleToggle,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfToggle,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfTitleToggle,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfToggle{
  display:none!important
}
.page-shop .shop-filters .shop-filter-no-toggle .wpfFilterContent,
.page-shop .shop-filters .shop-filter--price .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfFilterContent{
  display:flex!important
}
.page-shop .shop-filters .wpfFilterWrapper i.wpfTitleToggle::before,
.page-shop .shop-filters .wpfTitleToggle::before{
  display:none!important;
  content:none!important
}
.page-shop .shop-filters .wpfFilterWrapper i.wpfTitleToggle:hover,
.page-shop .shop-filters .wpfTitleToggle:hover{
  border-color:var(--teal)!important;
  color:var(--teal)!important;
  background:var(--primary-06)!important
}
.page-shop .shop-filters .wpfFilterWrapper i:not(.wpfTitleToggle),
.page-shop .shop-filters .wpfFilterWrapper svg{
  float:none!important
}

/* ── Sort by pills (WPF: checkboxes in .wpfLiLabel, text in .wpfDisplay) ── */
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterVerScroll,
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterContent,
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterVerScroll{
  max-height:none!important;
  overflow:visible!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] ul,
.page-shop .shop-filters .shop-filter--sort-pills ul{
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:wrap!important;
  gap:8px!important;
  margin:0!important;
  padding:4px 0 6px!important;
  list-style:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li,
.page-shop .shop-filters .shop-filter--sort-pills li{
  width:auto!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  opacity:0!important;
  pointer-events:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label{
  display:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfLiLabel,
.page-shop .shop-filters .shop-filter--sort-pills .wpfLiLabel,
.page-shop .shop-filters .shop-filter__sort-pill{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:12px 16px!important;
  border:1px solid var(--grey-200)!important;
  border-radius:999px!important;
  background:var(--white)!important;
  font-family:'DM Sans',sans-serif!important;
  font-size:13px!important;
  font-weight:600!important;
  line-height:1.2!important;
  color:var(--grey-700)!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  transition:transform .18s ease,border-color .18s ease,color .18s ease,background .18s ease,box-shadow .18s ease!important;
  box-sizing:border-box!important;
  box-shadow:none!important;
  gap:0!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfDisplay,
.page-shop .shop-filters .shop-filter--sort-pills .wpfDisplay{
  display:inline-flex!important;
  align-items:center!important;
  margin:0!important;
  padding:0!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfValue,
.page-shop .shop-filters .shop-filter--sort-pills .wpfValue{
  padding:0!important;
  line-height:inherit!important;
  color:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterTaxNameWrapper{
  display:inline!important;
  color:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfLiLabel:hover,
.page-shop .shop-filters .shop-filter--sort-pills .wpfLiLabel:hover{
  border-color:var(--teal)!important;
  color:var(--teal)!important;
  transform:translateY(-1px)!important;
  background:var(--white)!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfLiLabel,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li:has(.wpfCheckbox input:checked) .wpfLiLabel,
.page-shop .shop-filters .shop-filter--sort-pills li.is-pill-active .wpfLiLabel,
.page-shop .shop-filters .shop-filter--sort-pills li:has(.wpfCheckbox input:checked) .wpfLiLabel,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfLiLabel.is-pill-active{
  background:var(--navy)!important;
  border-color:var(--navy)!important;
  color:var(--white)!important;
  box-shadow:0 6px 14px -6px var(--dark-40)!important;
  transform:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li:has(.wpfCheckbox input:checked) .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li:has(.wpfCheckbox input:checked) .wpfFilterTaxNameWrapper{
  color:var(--white)!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfLiLabel:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li:has(.wpfCheckbox input:checked) .wpfLiLabel:hover{
  background:var(--navy)!important;
  border-color:var(--navy)!important;
  color:var(--white)!important;
  transform:none!important
}

/* ── Categories ── */
.page-shop .shop-filters .shop-filter--category .shop-filter__search,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfSearchWrapper{
  position:relative;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0 0 0!important;
  padding:0!important;
  align-items:stretch!important;
  align-self:stretch!important;
  text-align:left!important;
  box-sizing:border-box!important
}
.page-shop .shop-filters .shop-filter--category .shop-filter__search{
  width:100%!important;
  max-width:100%!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfSearchWrapper::before{
  display:none!important;
  content:none!important
}
.page-shop .shop-filters .shop-filter--category .shop-filter__search::before{
  content:'';
  position:absolute;
  left:16px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  background:var(--grey-500);
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center/contain no-repeat;
  pointer-events:none;
  z-index:1
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] input.wpfSearchFieldsFilter,
.page-shop .shop-filters .shop-filter--category input.wpfSearchFieldsFilter{
  width:100%;
  margin:0;
  padding:13px 16px 13px 44px;
  border:1.5px solid var(--grey-200);
  border-radius:14px;
  background:#fbfcfd;
  font-family:'DM Sans',sans-serif;
  font-size:14.5px;
  color:var(--grey-700);
  outline:none;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] input.wpfSearchFieldsFilter::placeholder,
.page-shop .shop-filters .shop-filter--category input.wpfSearchFieldsFilter::placeholder{color:var(--grey-500)}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] input.wpfSearchFieldsFilter:focus,
.page-shop .shop-filters .shop-filter--category input.wpfSearchFieldsFilter:focus{
  border-color:var(--teal);
  background:var(--white);
  box-shadow:0 0 0 4px var(--primary-15)
}
.page-shop .shop-filters .shop-filter__meta{
  display:flex;
  justify-content:space-between;
  align-items:center;
  width:100%!important;
  max-width:100%!important;
  margin:14px 0 6px!important;
  padding:0!important;
  font-size:12.5px;
  font-weight:500;
  color:var(--grey-500);
  text-align:left!important;
  box-sizing:border-box!important
}
.page-shop .shop-filters .shop-filter__meta-text{
  flex:1;
  min-width:0
}
.page-shop .shop-filters .shop-filter__meta-count{font-weight:700;color:var(--navy)}
.page-shop .shop-filters .shop-filter__clear{
  background:none;
  border:0;
  padding:0;
  color:var(--teal);
  font-family:'DM Sans',sans-serif;
  font-weight:600;
  font-size:12.5px;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease
}
.page-shop .shop-filters .shop-filter__clear.is-visible{
  opacity:1;
  pointer-events:auto
}
.page-shop .shop-filters .shop-filter__clear:hover{color:var(--teal-dark)}
.page-shop .shop-filters .shop-filter__cat-list,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfFilterVerScroll,
.page-shop .shop-filters .shop-filter--category .wpfFilterVerScroll{
  max-height:300px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  margin:6px -8px 0!important;
  padding:2px 8px!important;
  scrollbar-width:thin;
  scrollbar-color:var(--grey-300) transparent;
  -webkit-overflow-scrolling:touch
}
.page-shop .shop-filters .shop-filter__cat-list .wpfFilterVerScroll,
.page-shop .shop-filters .shop-filter__cat-list .wpfFilterContent,
.page-shop .shop-filters .shop-filter__cat-list .wpfCheckboxHier{
  max-height:none!important;
  overflow:visible!important;
  height:auto!important;
  margin:0!important;
  padding:0!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfFilterContent:not(.shop-filter__cat-list),
.page-shop .shop-filters .shop-filter--category .wpfFilterContent:not(.shop-filter__cat-list){
  max-height:none!important;
  overflow:visible!important;
  height:auto!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"]:not(:has(.wpfFilterVerScroll)) .wpfFilterContent,
.page-shop .shop-filters .shop-filter--category:not(:has(.wpfFilterVerScroll)) .wpfFilterContent{
  max-height:300px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  margin:6px -8px 0!important;
  padding:2px 8px!important;
  scrollbar-width:thin;
  scrollbar-color:var(--grey-300) transparent
}
.page-shop .shop-filters .shop-filter__cat-list::-webkit-scrollbar{width:8px}
.page-shop .shop-filters .shop-filter__cat-list::-webkit-scrollbar-thumb{
  background:var(--grey-300);
  border-radius:99px;
  border:2px solid var(--white)
}
.page-shop .shop-filters .shop-filter__cat-list::-webkit-scrollbar-track{background:transparent}
.page-shop .shop-filters .shop-filter__cat-list,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfFilterContent,
.page-shop .shop-filters .shop-filter--category .wpfFilterContent{
  column-count:1!important;
  -webkit-column-count:1!important;
  columns:1 auto!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] ul,
.page-shop .shop-filters .shop-filter--category ul{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin:0;
  padding:0;
  list-style:none;
  max-height:none!important;
  overflow:visible!important;
  column-count:1!important;
  -webkit-column-count:1!important;
  columns:1 auto!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .shop-filter--category .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .shop-filter__cat-name,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfValue,
.page-shop .shop-filters .shop-filter--category .wpfValue{
  flex:1 1 auto!important;
  min-width:0!important;
  line-height:1.35!important;
  overflow-wrap:break-word!important;
  word-break:normal!important;
  display:inline!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li,
.page-shop .shop-filters .shop-filter--category li,
.page-shop .shop-filters .shop-filter__cat-item{
  border-radius:13px;
  transition:background .15s ease;
  width:100%;
  min-width:0
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox,
.page-shop .shop-filters .shop-filter--category .wpfCheckbox,
.page-shop .shop-filters .shop-filter__cat-option{
  display:flex!important;
  align-items:center!important;
  flex:0 0 auto!important;
  width:auto!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li:hover,
.page-shop .shop-filters .shop-filter--category li:hover{background:var(--primary-06)}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li.is-cat-selected,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li:has(.wpfCheckbox input:checked),
.page-shop .shop-filters .shop-filter--category li.is-cat-selected,
.page-shop .shop-filters .shop-filter--category li:has(.wpfCheckbox input:checked){
  background:var(--primary-10)!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfLiLabel,
.page-shop .shop-filters .shop-filter--category .wpfLiLabel,
.page-shop .shop-filters .shop-filter__cat-label{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  padding:13px 12px!important;
  border:0!important;
  border-radius:13px!important;
  background:transparent!important;
  font-size:14.5px!important;
  font-weight:500!important;
  color:var(--grey-700)!important;
  cursor:pointer!important;
  transition:color .15s ease,background .15s ease!important;
  line-height:1.35!important;
  box-sizing:border-box!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfDisplay,
.page-shop .shop-filters .shop-filter--category .wpfDisplay{
  display:flex!important;
  align-items:center!important;
  flex:1 1 auto!important;
  min-width:0!important;
  gap:0!important;
  margin:0!important;
  padding:0!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--category .wpfCheckbox label{
  position:relative!important;
  display:grid!important;
  place-items:center!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  color:inherit!important;
  cursor:pointer!important;
  box-sizing:border-box!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCount,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfFilterCounter,
.page-shop .shop-filters .shop-filter--category .wpfCount,
.page-shop .shop-filters .shop-filter__cat-count{
  margin-left:auto!important;
  flex:0 0 auto!important;
  align-self:center!important;
  padding:3px 9px!important;
  min-width:26px!important;
  border-radius:999px!important;
  background:var(--off-white)!important;
  font-size:11.5px!important;
  font-weight:700!important;
  color:var(--grey-500)!important;
  line-height:1.4!important;
  text-align:center!important;
  white-space:nowrap!important;
  transition:background .15s ease,color .15s ease!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--category .wpfCheckbox label::before{
  content:''!important;
  display:grid!important;
  place-items:center!important;
  position:static!important;
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  margin:0!important;
  border:2px solid var(--grey-200)!important;
  border-radius:7px!important;
  background:var(--white)!important;
  box-sizing:border-box!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
  flex-shrink:0!important;
  align-self:center!important;
  transition:background .15s ease,border-color .15s ease!important;
  background-image:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox input:checked+label::before,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li:has(.wpfCheckbox input:checked) .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--category li:has(.wpfCheckbox input:checked) .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--category li.is-cat-selected .wpfCheckbox label::before{
  background:var(--teal)!important;
  border-color:var(--teal)!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:12px!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li:has(.wpfCheckbox input:checked) .wpfLiLabel,
.page-shop .shop-filters .shop-filter--category li.is-cat-selected .wpfLiLabel{
  color:var(--navy)!important;
  font-weight:700!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox label::after,
.page-shop .shop-filters .shop-filter--category .wpfCheckbox label::after{display:none!important}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox input[type="checkbox"],
.page-shop .shop-filters .shop-filter--category .wpfCheckbox input[type="checkbox"]{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  pointer-events:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li:has(.wpfCheckbox input:checked) .wpfCount,
.page-shop .shop-filters .shop-filter--category li.is-cat-selected .wpfCount{
  background:var(--primary-10)!important;
  color:var(--teal)!important
}

/* ── Price range ── */
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfFilterContent,
.page-shop .shop-filters .shop-filter--price .wpfFilterContent{
  display:flex!important;
  flex-direction:column!important;
  gap:0;
  padding-left:0!important;
  padding-right:0!important;
  overflow:visible!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfPriceRangeField#wpfMinPrice,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfPriceRangeField#wpfMaxPrice,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfPriceRangeField#wpfMinPrice,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfPriceRangeField#wpfMaxPrice,
.page-shop .shop-filters .shop-filter--price .wpfPriceRangeField#wpfMinPrice,
.page-shop .shop-filters .shop-filter--price .wpfPriceRangeField#wpfMaxPrice{
  width:auto!important;
  min-width:0!important;
  height:auto!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:inherit!important;
  font:inherit!important;
  box-shadow:none!important
}
.page-shop .shop-filters .wpfFilterContent:has(.irs) #wpfSliderRange,
.page-shop .shop-filters .wpfFilterContent:has(.irs) .wpfPriceFilterRange{
  display:none!important;
  height:0!important;
  margin:0!important;
  overflow:hidden!important;
  visibility:hidden!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfPriceInputs,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfPriceInputs,
.page-shop .shop-filters .shop-filter--price .wpfPriceInputs,
.page-shop .shop-filters .shop-filter__price-vals{
  order:2;
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 0!important
}
.page-shop .shop-filters .shop-filter__price-chip{
  display:inline-flex;
  align-items:baseline;
  justify-content:center;
  gap:3px;
  padding:9px 16px;
  border-radius:12px;
  border:1px solid var(--grey-200);
  background:var(--off-white);
  font-family:'Fraunces',Georgia,serif;
  font-size:16px;
  font-weight:700;
  color:var(--navy);
  flex:0 1 auto;
  min-width:76px;
  box-sizing:border-box
}
.page-shop .shop-filters .shop-filter__price-symbol{
  color:var(--teal);
  font-weight:700;
  line-height:1;
  flex-shrink:0
}
.page-shop .shop-filters .shop-filter__price-chip input,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfPriceInputs input,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfPriceInputs input,
.page-shop .shop-filters .shop-filter--price .wpfPriceInputs input{
  flex:0 1 auto;
  min-width:2ch;
  width:4.5ch!important;
  max-width:100%;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  font-family:'Fraunces',Georgia,serif!important;
  font-size:16px!important;
  font-weight:700!important;
  color:var(--navy)!important;
  text-align:left!important;
  outline:none!important;
  box-shadow:none!important;
  -moz-appearance:textfield
}
.page-shop .shop-filters .shop-filter__price-chip input::-webkit-outer-spin-button,
.page-shop .shop-filters .shop-filter__price-chip input::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0
}
.page-shop .shop-filters .shop-filter__price-dash,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfPriceInputs span.shop-filter__price-dash,
.page-shop .shop-filters .shop-filter--price .wpfPriceInputs span.shop-filter__price-dash{
  display:block;
  width:18px;
  height:2px;
  background:var(--grey-200);
  border-radius:2px;
  flex-shrink:0;
  font-size:0!important;
  color:transparent!important;
  line-height:0!important;
  overflow:hidden!important
}
.page-shop .shop-filters .shop-filter__price-vals>span:not(.shop-filter__price-dash):not(.shop-filter__price-symbol),
.page-shop .shop-filters .wpfPriceInputs>span:not(.shop-filter__price-dash):not(.shop-filter__price-symbol){
  display:none!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfFilterContent>span.irs,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfFilterContent>span.irs,
.page-shop .shop-filters .shop-filter--price .wpfFilterContent>span.irs{
  order:1;
  margin:2px 0 6px!important;
  padding:0 2px!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPrice"] .wpfFilterContent>input[type="text"],
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfPriceRange"] .wpfFilterContent>input[type="text"],
.page-shop .shop-filters .shop-filter--price .wpfFilterContent>input[type="text"]:not(.wpfPriceInputs input){
  order:1;
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
  overflow:hidden!important
}
.page-shop .shop-filters .ui-slider,
.page-shop .shop-filters .noUi-target,
.page-shop .shop-filters .irs,
.page-shop .shop-filters .irs.irs--round,
.page-shop .shop-filters .irs.irs--flat,
.page-shop .shop-filters .irs.irs--modern,
.page-shop .shop-filters .irs.irs--sharp,
.page-shop .shop-filters .irs.irs--big,
.page-shop .shop-filters .irs.irs--square{
  --shop-irs-track-top:24px;
  --shop-irs-handle-top:15px;
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  height:48px!important;
  padding-bottom:0!important;
  position:relative!important
}
.page-shop .shop-filters .ui-slider-range,
.page-shop .shop-filters .noUi-connect{
  background:linear-gradient(90deg,var(--teal),var(--teal-glow))!important;
  height:5px!important
}
.page-shop .shop-filters .ui-slider-handle{
  width:22px!important;
  height:22px!important;
  top:-10px!important;
  transform:none!important;
  border-radius:50%!important;
  border:none!important;
  background:var(--white)!important;
  box-shadow:0 0 0 3px var(--teal),0 4px 10px -2px var(--primary-20)!important;
  cursor:grab!important
}
.page-shop .shop-filters .noUi-handle{
  width:22px!important;
  height:22px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  border-radius:50%!important;
  border:none!important;
  background:var(--white)!important;
  box-shadow:0 0 0 3px var(--teal),0 4px 10px -2px var(--primary-20)!important;
  cursor:grab!important
}
.page-shop .shop-filters .irs-line,
.page-shop .shop-filters .irs--round .irs-line,
.page-shop .shop-filters .irs--flat .irs-line,
.page-shop .shop-filters .irs--modern .irs-line,
.page-shop .shop-filters .irs--sharp .irs-line,
.page-shop .shop-filters .irs--big .irs-line,
.page-shop .shop-filters .irs--square .irs-line{
  position:absolute!important;
  left:0!important;
  right:0!important;
  width:100%!important;
  top:var(--shop-irs-track-top)!important;
  height:5px!important;
  margin:0!important;
  background:var(--grey-200)!important;
  border:0!important;
  border-radius:999px!important;
  transform:none!important;
  box-shadow:none!important;
  overflow:visible!important
}
.page-shop .shop-filters .irs-bar,
.page-shop .shop-filters .irs--round .irs-bar,
.page-shop .shop-filters .irs--flat .irs-bar,
.page-shop .shop-filters .irs--modern .irs-bar,
.page-shop .shop-filters .irs--sharp .irs-bar,
.page-shop .shop-filters .irs--big .irs-bar,
.page-shop .shop-filters .irs--square .irs-bar{
  top:var(--shop-irs-track-top)!important;
  height:5px!important;
  margin:0!important;
  background:linear-gradient(90deg,var(--teal),var(--teal-glow))!important;
  border:0!important;
  border-radius:999px!important;
  transform:none!important;
  box-shadow:none!important
}
.page-shop .shop-filters .irs-bar-edge,
.page-shop .shop-filters .irs-shadow,
.page-shop .shop-filters .irs-handle>i,
.page-shop .shop-filters .irs-line-left,
.page-shop .shop-filters .irs-line-mid,
.page-shop .shop-filters .irs-line-right{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  overflow:hidden!important
}
.page-shop .shop-filters .irs-handle,
.page-shop .shop-filters .irs-handle.from,
.page-shop .shop-filters .irs-handle.to,
.page-shop .shop-filters .irs-handle.type_last,
.page-shop .shop-filters .irs-handle.single,
.page-shop .shop-filters .irs--round .irs-handle,
.page-shop .shop-filters .irs--flat .irs-handle,
.page-shop .shop-filters .irs--modern .irs-handle,
.page-shop .shop-filters .irs--sharp .irs-handle,
.page-shop .shop-filters .irs--big .irs-handle,
.page-shop .shop-filters .irs--square .irs-handle{
  width:22px!important;
  height:22px!important;
  top:var(--shop-irs-handle-top)!important;
  margin:0!important;
  transform:none!important;
  transform-origin:center center!important;
  border-radius:50%!important;
  border:none!important;
  background:var(--white)!important;
  box-shadow:0 0 0 3px var(--teal),0 4px 10px -2px var(--primary-20)!important;
  cursor:grab!important;
  z-index:2!important
}
.page-shop .shop-filters .ui-slider-handle:active{
  cursor:grabbing!important;
  transform:scale(1.08)!important
}
.page-shop .shop-filters .noUi-handle:active{
  cursor:grabbing!important;
  transform:translateY(-50%) scale(1.08)!important
}
.page-shop .shop-filters .irs-handle.state_hover,
.page-shop .shop-filters .irs-handle:active,
.page-shop .shop-filters .irs--round .irs-handle.state_hover,
.page-shop .shop-filters .irs--round .irs-handle:hover{
  cursor:grabbing!important;
  transform:scale(1.08)!important;
  background:var(--white)!important;
  border:none!important
}
.page-shop .shop-filters .noUi-handle::before,
.page-shop .shop-filters .noUi-handle::after{display:none}
.page-shop .shop-filters .irs-min,
.page-shop .shop-filters .irs-max,
.page-shop .shop-filters .irs-from,
.page-shop .shop-filters .irs-to,
.page-shop .shop-filters .irs-single,
.page-shop .shop-filters .irs-grid,
.page-shop .shop-filters .irs-grid-pol,
.page-shop .shop-filters .irs-grid-text{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  height:0!important;
  overflow:hidden!important;
  pointer-events:none!important
}
.page-shop .shop-filters .wpfVisibleBufferMin,
.page-shop .shop-filters .wpfVisibleBufferMax,
.page-shop .shop-filters .wpfPriceRangeValues{
  display:none!important;
  visibility:hidden!important;
  height:0!important;
  overflow:hidden!important
}

/* ── Footer actions ── */
.page-shop .shop-filters .wpfButtonsFilter,
.page-shop .shop-filters .wpfFilterButtons,
.page-shop .shop-filters .wpfMainWrapper>.wpfButtonsWrapper{
  display:flex!important;
  gap:12px!important;
  margin:0!important;
  padding:20px 24px 24px!important;
  border-top:0!important
}
.page-shop .shop-filters .wpfResetBtn,
.page-shop .shop-filters .wpfResetButton,
.page-shop .shop-filters .wpfClearButton,
.page-shop .shop-filters .wpfButton.wpfResetBtn{
  flex:1!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:48px!important;
  margin:0!important;
  padding:14px!important;
  border:1px solid var(--grey-200)!important;
  border-radius:14px!important;
  background:var(--white)!important;
  color:var(--navy)!important;
  font-family:'DM Sans',sans-serif!important;
  font-size:14.5px!important;
  font-weight:700!important;
  cursor:pointer!important;
  transition:background .18s ease!important;
  width:auto!important;
  box-shadow:none!important
}
.page-shop .shop-filters .wpfResetBtn:hover,
.page-shop .shop-filters .wpfResetButton:hover,
.page-shop .shop-filters .wpfClearButton:hover{background:var(--off-white)!important}
.page-shop .shop-filters .wpfFilterBtn,
.page-shop .shop-filters .wpfFilterButton,
.page-shop .shop-filters .wpfButton:not(.wpfResetBtn):not(.wpfClearButton),
.page-shop .shop-filters button.wpfFilterButton{
  flex:1.6!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:48px!important;
  margin:0!important;
  padding:14px!important;
  border:1px solid var(--teal)!important;
  border-radius:14px!important;
  background:var(--teal)!important;
  color:var(--white)!important;
  font-family:'DM Sans',sans-serif!important;
  font-size:14.5px!important;
  font-weight:700!important;
  cursor:pointer!important;
  transition:transform .18s ease,background .18s ease!important;
  width:auto!important;
  box-shadow:0 8px 18px -8px var(--primary-30)!important
}
.page-shop .shop-filters .wpfFilterBtn:hover,
.page-shop .shop-filters .wpfFilterButton:hover,
.page-shop .shop-filters button.wpfFilterButton:hover{
  background:var(--teal-dark)!important;
  border-color:var(--teal-dark)!important;
  transform:translateY(-1px)!important
}

/* Generic fallbacks */
.page-shop .shop-filters input.wpfSearchFieldsFilter:not([class*="wpfPrice"]){
  border-radius:14px
}
.page-shop .shop-filters ul:not(.page-numbers){list-style:none;margin:0;padding:0}
.page-shop .shop-filters ul li{margin:0;padding:0}
.page-shop .shop-filters .wpfFilterWrapper:not(.shop-filter--category):not([data-filter-type="wpfCategory"]) .wpfFilterVerScroll,
.page-shop .shop-filters .wpfFilterWrapper:not(.shop-filter--category):not([data-filter-type="wpfCategory"]) .wpfFilterContent{
  max-height:none
}

/* Product grid */
.page-shop .shop-product-grid,
.page-shop .product-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px
}
.page-shop .shop-layout--with-filters .shop-product-grid,
.page-shop .shop-layout--with-filters .product-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))
}
@media (min-width:1280px){
  .page-shop .shop-layout--with-filters .shop-product-grid,
  .page-shop .shop-layout--with-filters .product-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
}

.page-shop .product-card{
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-lg);
  overflow:hidden;
  transition:all var(--transition);
  display:flex;
  flex-direction:column;
  height:100%
}
.page-shop .product-card:hover{
  border-color:var(--teal);
  box-shadow:var(--shadow-md);
  transform:translateY(-4px)
}
.page-shop .product-card__media,
.page-shop ul.products .product-card__media,
.page-shop .shop-product-grid .product-card__media{
  position:relative;
  background:var(--white)!important
}
.page-shop .product-badge{
  z-index:2;
  position:relative;
}
.page-shop .product-image,
.page-shop ul.products .product-image,
.page-shop .shop-product-grid .product-image{
  height:200px;
  background:var(--white)!important;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  overflow:hidden
}
.page-shop .product-card__img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block
}
.page-shop .product-info{
  padding:20px;
  flex:1;
  display:flex;
  flex-direction:column
}
.page-shop .product-category{
  font-size:11px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--teal);
  margin-bottom:8px
}
.page-shop .product-name{
  font-family:'DM Sans',sans-serif;
  font-size:16px;
  font-weight:600;
  margin-bottom:10px;
  color:var(--navy);
  line-height:1.35
}
.page-shop .product-name a{
  color:inherit;
  text-decoration:none;
  transition:color var(--transition)
}
.page-shop .product-name a:hover{color:var(--teal)}
.page-shop .product-price{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px;
  margin-bottom:16px;
  font-size:14px;
  color:var(--grey-500);
  line-height:1.4
}
.page-shop .product-price__from{
  font-size:14px;
  font-weight:500;
  color:var(--grey-500)
}
.page-shop .product-price__from-amount,
.page-shop .product-price strong{
  color:var(--navy);
  font-size:18px;
  font-weight:700;
  line-height:1.2
}
.page-shop .product-price__sep{
  color:var(--grey-300);
  font-size:16px;
  font-weight:300;
  margin:0 2px
}
.page-shop .product-price__to-amount{
  font-size:15px;
  font-weight:500;
  color:var(--grey-500)
}
.page-shop .product-card__cta{
  margin-top:auto;
  width:100%;
  justify-content:center;
  padding:10px 20px;
  font-size:13px
}

.page-shop .shop-empty,
.page-shop .shop-no-products-notice,
.page-shop .woocommerce-info,
.page-shop .woocommerce-no-products-found{
  grid-column:1/-1;
  text-align:center;
  color:var(--grey-500);
  padding:48px 24px;
  background:var(--white);
  border:1px solid var(--grey-200);
  border-radius:var(--radius-lg)
}
.page-shop .shop-no-products-notice{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px
}
.page-shop .shop-no-products-notice svg{
  color:var(--grey-400);
  flex-shrink:0
}
.page-shop .shop-no-products-notice p{
  margin:0;
  font-size:15px;
  color:var(--grey-500)
}
.page-shop .woocommerce-info::before,
.page-shop .woocommerce-no-products-found::before{
  display:none
}

.page-shop .shop-product-grid.is-shop-filter-loading,
.page-shop .shop-layout__main.is-shop-filter-loading .shop-product-grid{
  opacity:.45;
  pointer-events:none;
  position:relative;
  min-height:120px
}
.page-shop .shop-layout__main.is-shop-filter-loading .shop-product-grid::after{
  content:"";
  position:absolute;
  top:48px;
  left:50%;
  width:28px;
  height:28px;
  margin-left:-14px;
  border:3px solid var(--grey-200);
  border-top-color:var(--teal);
  border-radius:50%;
  animation:shop-filter-spin .7s linear infinite
}
@keyframes shop-filter-spin{
  to{transform:rotate(360deg)}
}

.page-shop .shop-pagination{
  margin-top:40px;
  padding-top:16px;
  display:flex;
  justify-content:center
}
.page-shop .woocommerce-pagination{
  width:100%
}
.page-shop .woocommerce-pagination ul,
.page-shop .woocommerce-pagination ul.page-numbers{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:6px;
  list-style:none;
  margin:0;
  padding:0;
  border:0!important
}
.page-shop .woocommerce-pagination ul.page-numbers li,
.page-shop .woocommerce-pagination ul li{
  float:none!important;
  display:flex;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  width:auto!important;
  height:auto!important;
  overflow:visible!important
}
.page-shop .woocommerce-pagination ul li a,
.page-shop .woocommerce-pagination ul li span,
.page-shop .woocommerce-pagination ul li .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 14px;
  border:1.5px solid var(--grey-200)!important;
  border-radius:var(--radius-pill)!important;
  background:var(--white)!important;
  color:var(--navy)!important;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:600;
  line-height:1;
  text-decoration:none!important;
  box-shadow:none!important;
  transition:all var(--transition)
}
.page-shop .woocommerce-pagination ul li a.page-numbers:hover,
.page-shop .woocommerce-pagination ul li a.page-numbers:focus{
  border-color:var(--teal)!important;
  color:var(--teal-dark)!important;
  background:var(--primary-06)!important
}
.page-shop .woocommerce-pagination ul li span.current,
.page-shop .woocommerce-pagination ul li .page-numbers.current{
  background:var(--primary-10)!important;
  border-color:var(--teal)!important;
  color:var(--teal-dark)!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--teal) 12%,transparent)
}
.page-shop .woocommerce-pagination ul li span.dots,
.page-shop .woocommerce-pagination ul li .page-numbers.dots{
  min-width:44px;
  padding:0 10px;
  letter-spacing:.12em;
  color:var(--navy)!important;
  background:var(--white)!important;
  border-color:var(--grey-200)!important;
  cursor:default
}
.page-shop .woocommerce-pagination ul li a.prev.page-numbers,
.page-shop .woocommerce-pagination ul li a.next.page-numbers{
  min-width:44px;
  padding:0 14px;
  font-size:18px;
  line-height:1!important;
  background:var(--white)!important;
  color:var(--navy)!important
}
.page-shop .woocommerce-pagination ul li a.prev.page-numbers:hover,
.page-shop .woocommerce-pagination ul li a.next.page-numbers:hover{
  background:var(--primary-06)!important;
  color:var(--teal-dark)!important
}

.badge-pom,.badge-pline{background:var(--navy);color:var(--white)}
.badge-gsl{background:var(--teal-subtle);color:var(--teal)}

@media (max-width:992px){
  .page-shop .shop-layout--with-filters{
    grid-template-columns:1fr
  }
  body.shop-filters-open{
    overflow:hidden
  }
  .page-shop .shop-filter-drawer-toggle{
    position:sticky;
    top:76px;
    z-index:120;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-height:50px;
    margin:0 0 18px;
    padding:13px 18px;
    border:0;
    border-radius:999px;
    background:var(--teal);
    color:var(--white);
    font-family:'DM Sans',sans-serif;
    font-size:15px;
    font-weight:700;
    line-height:1;
    box-shadow:0 10px 22px -12px var(--primary-40);
    cursor:pointer
  }
  .page-shop .shop-filter-drawer-toggle i{
    font-size:14px
  }
  .page-shop .shop-filter-drawer-overlay{
    position:fixed;
    inset:0;
    z-index:300;
    display:block;
    background:rgba(9,26,50,.46);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s ease
  }
  body.shop-filters-open .page-shop .shop-filter-drawer-overlay{
    opacity:1;
    visibility:visible;
    pointer-events:auto
  }
  .page-shop .shop-filter-drawer-head{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:70px;
    padding:16px 20px;
    border-bottom:1px solid var(--grey-200);
    background:var(--white)
  }
  .page-shop .shop-filter-drawer-head strong{
    font-family:'Fraunces',Georgia,serif;
    font-size:24px;
    line-height:1.1;
    color:var(--navy)
  }
  .page-shop .shop-filter-drawer-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border:1px solid var(--grey-200);
    border-radius:14px;
    background:var(--white);
    color:var(--navy);
    font-size:18px;
    cursor:pointer;
    box-shadow:0 4px 12px -10px var(--dark-30)
  }
  .page-shop .shop-filters:not(.shop-filters--als){
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    left:auto;
    z-index:320;
    width:min(420px,calc(100vw - 34px));
    max-height:100dvh;
    border-radius:24px 0 0 24px;
    overflow-y:auto;
    overflow-x:hidden;
    transform:translateX(104%);
    transition:transform .24s ease;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch
  }
  body.shop-filters-open .page-shop .shop-filters:not(.shop-filters--als){
    transform:translateX(0)
  }
  .page-shop .shop-filters--als{
    position:static;
    top:auto;
    width:auto;
    max-height:none;
    transform:none;
    overflow:visible
  }
  .page-shop .shop-filters--als .als-pf-mobile-toggle{
    position:sticky;
    top:76px;
    z-index:120;
    margin:0 0 18px;
    min-height:50px;
    padding:13px 18px;
    border-radius:999px;
    background:var(--teal);
    color:var(--white);
    font-family:'DM Sans',sans-serif;
    font-size:15px;
    font-weight:700;
    box-shadow:0 10px 22px -12px var(--primary-40)
  }
  .page-shop .shop-filters--als .als-pf-drawer-title{
    font-family:'Fraunces',Georgia,serif;
    font-size:24px;
    color:var(--navy)
  }
  .page-shop .shop-product-grid,
  .page-shop .product-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}
@media (max-width:768px){
  .page-shop .shop-hero{padding:32px 0 24px}
  .page-shop .shop-product-grid,
  .page-shop .product-grid,
  .page-shop .shop-layout--with-filters .shop-product-grid,
  .page-shop .shop-layout--with-filters .product-grid{
    grid-template-columns:1fr
  }
  .page-shop .product-card__cta{
    white-space:normal;
    text-align:center
  }
}
