/* 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-layout__main{min-width:0}

.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 + ring */
.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;
  align-items:center;
  gap:10px;
  font-family:'DM Sans',sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:.01em;
  color:var(--navy);
  margin:0 0 16px;
  line-height:1.3
}
.page-shop .shop-filters .wpfFilterTitle::before,
.page-shop .shop-filters .wpfTitleWrapper::before,
.page-shop .shop-filters .widget-title::before{
  content:'';
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 4px var(--primary-10);
  flex-shrink:0
}
.page-shop .shop-filters .wpfTitleToggle,
.page-shop .shop-filters .wpfFilterTitle .wpfToggle{
  margin-left:auto;
  color:var(--grey-500);
  font-size:16px;
  line-height:1;
  cursor:pointer;
  opacity:.65
}

/* ── Sort by pills ── */
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterContent,
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterVerScroll,
.page-shop .shop-filters .shop-filter--radio-pills .wpfFilterContent,
.page-shop .shop-filters .shop-filter--radio-pills .wpfFilterVerScroll,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterVerScroll,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfFilterContent,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfFilterVerScroll{
  max-height:none!important;
  overflow:visible!important
}
.page-shop .shop-filters .shop-filter--sort-pills ul,
.page-shop .shop-filters .shop-filter--radio-pills ul,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] ul,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] 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 .shop-filter--sort-pills li,
.page-shop .shop-filters .shop-filter--radio-pills li,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] li{
  width:auto!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox{
  display:inline-flex!important;
  align-items:center!important;
  margin:0!important;
  padding:0!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .shop-filter--radio-pills .wpfFilterTaxNameWrapper,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfFilterTaxNameWrapper{
  display:inline!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfValue,
.page-shop .shop-filters .shop-filter--radio-pills .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfValue{
  display:inline!important;
  line-height:inherit!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--sort-pills .shop-filter__sort-pill,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox label{
  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;
  text-indent:0!important;
  box-shadow:none!important;
  gap:0!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label::after,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox label::after,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label::before,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label::after,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox label::before,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox label::after{
  display:none!important;
  content:none!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  opacity:0!important;
  visibility:hidden!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox input[type="radio"],
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox input[type="radio"],
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox input[type="radio"],
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox input[type="radio"]{
  position:absolute!important;
  opacity:0!important;
  width:1px!important;
  height:1px!important;
  pointer-events:none!important
}
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label:hover,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox label:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox label:hover{
  border-color:var(--teal)!important;
  color:var(--teal)!important;
  transform:translateY(-1px)!important;
  background:var(--white)!important
}
.page-shop .shop-filters .shop-filter--sort-pills li.is-pill-active .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--sort-pills li.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label.is-pill-active,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox input[type="radio"]:checked+label,
.page-shop .shop-filters .shop-filter--radio-pills li.is-pill-active .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--radio-pills li.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox label.is-pill-active,
.page-shop .shop-filters .shop-filter--radio-pills .wpfCheckbox input[type="radio"]:checked+label,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label.is-pill-active,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox input[type="radio"]:checked+label,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] li.is-pill-active .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] li.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox label.is-pill-active,
.page-shop .shop-filters .wpfFilterWrapper[data-radio="1"] .wpfCheckbox input[type="radio"]:checked+label{
  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 .shop-filter--sort-pills li.is-pill-active .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .shop-filter--sort-pills li.wpfChecked .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label.is-pill-active .wpfValue,
.page-shop .shop-filters .shop-filter--radio-pills li.is-pill-active .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .shop-filter--radio-pills li.wpfChecked .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.wpfChecked .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label.is-pill-active .wpfValue{
  color:var(--white)!important
}
.page-shop .shop-filters .shop-filter--sort-pills li.is-pill-active .wpfCheckbox label:hover,
.page-shop .shop-filters .shop-filter--sort-pills li.wpfChecked .wpfCheckbox label:hover,
.page-shop .shop-filters .shop-filter--sort-pills .wpfCheckbox label.is-pill-active:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.is-pill-active .wpfCheckbox label:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] li.wpfChecked .wpfCheckbox label:hover,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfSortBy"] .wpfCheckbox label.is-pill-active:hover{
  background:var(--navy)!important;
  border-color:var(--navy)!important;
  color:var(--white)!important;
  transform:none!important
}

/* Sort pills — fallback when filter-type attr is missing (radio-only blocks) */
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) 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:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) li{
  width:auto!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important
}
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) .wpfCheckbox label::before,
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) .wpfCheckbox label::after{
  display:none!important;
  content:none!important;
  width:0!important;
  height:0!important;
  opacity:0!important;
  visibility:hidden!important
}
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) .wpfCheckbox label{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!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;
  box-shadow:none!important
}
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) li.is-pill-active .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) li.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) .wpfCheckbox input[type="radio"]:checked+label{
  background:var(--navy)!important;
  border-color:var(--navy)!important;
  color:var(--white)!important;
  box-shadow:0 6px 14px -6px var(--dark-40)!important
}
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) li.is-pill-active .wpfCheckbox label .wpfValue,
.page-shop .shop-filters .wpfFilterWrapper:has(input[type="radio"]):not([data-filter-type="wpfCategory"]):not(.shop-filter--category) li.wpfChecked .wpfCheckbox label .wpfValue{
  color:var(--white)!important
}

/* ── Categories ── */
.page-shop .shop-filters .shop-filter--category .shop-filter__search,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfSearchWrapper{
  position:relative;
  margin-bottom:0
}
.page-shop .shop-filters .shop-filter--category .shop-filter__search::before,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfSearchWrapper::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;
  margin:14px 2px 6px;
  font-size:12.5px;
  font-weight:500;
  color:var(--grey-500);
  text-align:left
}
.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:stretch!important;
  width:100%!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.wpfChecked,
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] li.is-cat-selected,
.page-shop .shop-filters .shop-filter--category li.wpfChecked,
.page-shop .shop-filters .shop-filter--category li.is-cat-selected{
  background:var(--primary-10)!important
}
.page-shop .shop-filters .wpfFilterWrapper[data-filter-type="wpfCategory"] .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--category .wpfCheckbox label,
.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"] .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.wpfChecked .wpfCheckbox label::before,
.page-shop .shop-filters .shop-filter--category li.wpfChecked .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.wpfChecked .wpfCheckbox label,
.page-shop .shop-filters .shop-filter--category li.is-cat-selected .wpfCheckbox label{
  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.wpfChecked .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
}
.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:2px;
  padding:8px 14px;
  border-radius:11px;
  background:var(--off-white);
  font-family:'Fraunces',Georgia,serif;
  font-size:16px;
  font-weight:700;
  color:var(--navy);
  flex:0 1 auto;
  min-width:72px
}
.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:0 0 4px!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{
  margin:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  height:34px!important;
  padding-bottom:0!important
}
.page-shop .shop-filters .ui-slider-range,
.page-shop .shop-filters .noUi-connect,
.page-shop .shop-filters .irs-bar{
  background:linear-gradient(90deg,var(--teal),var(--teal-glow))!important;
  height:5px!important
}
.page-shop .shop-filters .ui-slider-handle,
.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-handle{
  width:22px!important;
  height:22px!important;
  top:12%!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 .ui-slider-handle:active,
.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{
  cursor:grabbing!important;
  transform:scale(1.08)!important
}
.page-shop .shop-filters .noUi-handle::before,
.page-shop .shop-filters .noUi-handle::after{display:none}
.page-shop .shop-filters .irs-line{
  top:12%!important;
  height:5px!important;
  background:var(--grey-200)!important;
  transform:none!important
}
.page-shop .shop-filters .irs-bar{
  top:12%!important;
  transform:none!important
}
.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{position:relative}
.page-shop .product-badge{
  position:absolute;
  top:12px;
  left:12px;
  z-index:2
}
.page-shop .product-image{
  height:200px;
  background:var(--grey-100);
  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 .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-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
  }
  .page-shop .shop-filters{
    position:static
  }
  .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{
    grid-template-columns:1fr
  }
}
