:root{
  --bloxx-yith-slider-track:#dedede;
  --bloxx-yith-slider-fill:currentColor;
  --bloxx-yith-slider-track-height:3px;
  --bloxx-yith-slider-handle-width:16px;
  --bloxx-yith-slider-handle-height:16px;
  --bloxx-yith-slider-handle-bg:#fff;
  --bloxx-yith-slider-handle-border-color:currentColor;
  --bloxx-yith-slider-handle-border-width:2px;
  --bloxx-yith-slider-handle-border-style:solid;
  --bloxx-yith-slider-handle-radius:50%;
  --bloxx-range-title-font-family:inherit;
  --bloxx-range-title-font-size:1em;
  --bloxx-range-title-font-weight:600;
  --bloxx-range-title-line-height:1.25;
  --bloxx-range-title-letter-spacing:normal;
  --bloxx-range-title-text-transform:none;
}

/* One title treatment for both YITH-native filters and Bloxx numeric filters. */
.yith-wcan-filters .yith-wcan-filter .filter-title,
.yith-wcan-filters .yith-wcan-filter-title,
.bloxx-range-title{
  display:block;
  margin:0 0 12px;
  padding:0;
  font-family:var(--bloxx-range-title-font-family)!important;
  font-size:var(--bloxx-range-title-font-size)!important;
  font-style:normal!important;
  font-weight:var(--bloxx-range-title-font-weight)!important;
  line-height:var(--bloxx-range-title-line-height)!important;
  letter-spacing:var(--bloxx-range-title-letter-spacing)!important;
  text-transform:var(--bloxx-range-title-text-transform)!important;
  color:inherit;
}

.bloxx-yith-ranges{display:grid;gap:28px}
.bloxx-range-filter{display:grid;gap:12px}
.bloxx-range-title{
  position:relative;
  display:block;
  width:100%;
  margin:0;
  padding:0 28px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
  appearance:none;
}
.bloxx-range-title::after{
  content:"";
  position:absolute;
  right:5px;
  top:50%;
  width:8px;
  height:8px;
  border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:translateY(-70%) rotate(45deg);
  transform-origin:center;
}
.bloxx-range-title[aria-expanded="true"]::after{transform:translateY(-30%) rotate(225deg)}
.bloxx-range-title:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.bloxx-range-content{display:grid;gap:12px}
.bloxx-range-content[hidden]{display:none!important}
.bloxx-range-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bloxx-range-fields label{display:grid;gap:4px;font-size:.82em}
.bloxx-range-input-wrap{display:flex;align-items:center;gap:6px;border:1px solid #ddd;border-radius:3px;padding:5px 8px;background:#fff}
.bloxx-range-input-wrap input{width:100%;min-width:0;border:0!important;padding:0!important;background:transparent!important;box-shadow:none!important}
.bloxx-range-input-wrap input:focus{outline:0}

/* Bloxx is the visual source of truth for every numeric slider. */
.bloxx-dual-range{position:relative;height:max(26px,var(--bloxx-yith-slider-handle-height));color:inherit}
.bloxx-range-track{
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:var(--bloxx-yith-slider-track-height);
  transform:translateY(-50%);
  border-radius:999px;
  background:var(--bloxx-yith-slider-track);
  overflow:visible;
}
.bloxx-range-track span{
  position:absolute;
  top:0;
  bottom:0;
  background:var(--bloxx-yith-slider-fill);
  border-radius:inherit;
}
.bloxx-dual-range input[type=range]{position:absolute;left:0;top:0;width:100%;height:100%;margin:0;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none}
.bloxx-dual-range input[type=range]::-webkit-slider-runnable-track{height:var(--bloxx-yith-slider-track-height);background:transparent;border:0}
.bloxx-dual-range input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:var(--bloxx-yith-slider-handle-width);
  height:var(--bloxx-yith-slider-handle-height);
  margin-top:calc((var(--bloxx-yith-slider-track-height) - var(--bloxx-yith-slider-handle-height))/2);
  border-width:var(--bloxx-yith-slider-handle-border-width);
  border-style:var(--bloxx-yith-slider-handle-border-style);
  border-color:var(--bloxx-yith-slider-handle-border-color);
  border-radius:var(--bloxx-yith-slider-handle-radius);
  background:var(--bloxx-yith-slider-handle-bg);
  box-sizing:border-box;
  pointer-events:auto;
  cursor:pointer;
}
.bloxx-dual-range input[type=range]::-moz-range-track{height:var(--bloxx-yith-slider-track-height);background:transparent;border:0}
.bloxx-dual-range input[type=range]::-moz-range-thumb{
  width:var(--bloxx-yith-slider-handle-width);
  height:var(--bloxx-yith-slider-handle-height);
  border-width:var(--bloxx-yith-slider-handle-border-width);
  border-style:var(--bloxx-yith-slider-handle-border-style);
  border-color:var(--bloxx-yith-slider-handle-border-color);
  border-radius:var(--bloxx-yith-slider-handle-radius);
  background:var(--bloxx-yith-slider-handle-bg);
  box-sizing:border-box;
  pointer-events:auto;
  cursor:pointer;
}
.bloxx-range-values{display:flex;justify-content:space-between;font-size:.88em}
.bloxx-range-filter[data-disabled="1"]{opacity:.68}
.bloxx-range-filter[data-disabled="1"] .bloxx-dual-range input,.bloxx-range-filter[data-disabled="1"] .bloxx-range-fields input{cursor:not-allowed}
.bloxx-range-filter[data-disabled="1"] .bloxx-range-track span{opacity:.45}

/* Native YITH price filter, restructured by frontend.js to match Bloxx ranges. */
.yith-wcan-filter.filter-price-slider .price-slider{
  display:grid!important;
  grid-template-columns:1fr;
  gap:12px;
  padding:0!important;
}
.yith-wcan-filter.filter-price-slider .bloxx-price-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  order:1;
}
.yith-wcan-filter.filter-price-slider .bloxx-price-fields label{
  display:grid;
  gap:4px;
  font-size:.82em;
}
.yith-wcan-filter.filter-price-slider .bloxx-price-input-wrap{
  display:flex;
  align-items:center;
  gap:6px;
  border:1px solid #ddd;
  border-radius:3px;
  padding:5px 8px;
  background:#fff;
}
.yith-wcan-filter.filter-price-slider .bloxx-price-input-wrap input{
  display:block!important;
  width:100%!important;
  min-width:0;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  font:inherit!important;
}
.yith-wcan-filter.filter-price-slider .bloxx-price-input-wrap input:focus{outline:0}
.yith-wcan-filter.filter-price-slider .price-slider>.irs{
  position:relative!important;
  display:block!important;
  order:2;
  width:100%!important;
  height:max(26px,var(--bloxx-yith-slider-handle-height))!important;
  margin:0!important;
}
.yith-wcan-filter.filter-price-slider .irs-line{
  top:50%!important;
  height:var(--bloxx-yith-slider-track-height)!important;
  transform:translateY(-50%);
  border:0!important;
  border-radius:999px!important;
  background:var(--bloxx-yith-slider-track)!important;
}
.yith-wcan-filter.filter-price-slider .irs-bar{
  top:50%!important;
  height:var(--bloxx-yith-slider-track-height)!important;
  transform:translateY(-50%);
  border:0!important;
  border-radius:999px!important;
  background:var(--bloxx-yith-slider-fill)!important;
}
.yith-wcan-filter.filter-price-slider .irs-handle{
  top:50%!important;
  width:var(--bloxx-yith-slider-handle-width)!important;
  height:var(--bloxx-yith-slider-handle-height)!important;
  transform:translateY(-50%);
  border-width:var(--bloxx-yith-slider-handle-border-width)!important;
  border-style:var(--bloxx-yith-slider-handle-border-style)!important;
  border-color:var(--bloxx-yith-slider-handle-border-color)!important;
  border-radius:var(--bloxx-yith-slider-handle-radius)!important;
  background:var(--bloxx-yith-slider-handle-bg)!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}
.yith-wcan-filter.filter-price-slider .irs-handle>i,
.yith-wcan-filter.filter-price-slider .irs-min,
.yith-wcan-filter.filter-price-slider .irs-max,
.yith-wcan-filter.filter-price-slider .irs-from,
.yith-wcan-filter.filter-price-slider .irs-to,
.yith-wcan-filter.filter-price-slider .irs-single,
.yith-wcan-filter.filter-price-slider .irs-grid{display:none!important}
.yith-wcan-filter.filter-price-slider .bloxx-price-values{
  display:flex;
  justify-content:space-between;
  order:3;
  font-size:.88em;
}
.bloxx-range-loading .bloxx-yith-ranges{opacity:.55;pointer-events:none}
.bloxx-range-loading .bloxx-yith-ranges::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:22px;
  height:22px;
  margin:-11px;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:bloxx-range-spin .7s linear infinite;
}
.bloxx-range-loading .bloxx-yith-ranges{position:relative}
@keyframes bloxx-range-spin{to{transform:rotate(360deg)}}

/* YITH mobile modal integration. Divi's button reset otherwise reduces the
   opener to a 24px-high browser-default control. */
@media(max-width:991px){
  .yith-wcan-filters-opener{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:10px!important;
    min-height:46px!important;
    padding:11px 16px!important;
    border:1px solid #d2d4d7!important;
    border-radius:6px!important;
    background:#fff!important;
    box-shadow:0 1px 2px rgba(0,0,0,.06)!important;
    color:inherit!important;
    font:inherit!important;
    font-size:16px!important;
    font-weight:600!important;
    line-height:1.35!important;
    cursor:pointer!important;
  }
  .yith-wcan-filters-opener .filter-icon{
    flex:0 0 20px!important;
    width:20px!important;
    height:20px!important;
    margin:0!important;
    background-size:contain!important;
  }
  .yith-wcan-filters-opener:hover{border-color:#aeb1b5!important;box-shadow:0 2px 5px rgba(0,0,0,.09)!important}
  .yith-wcan-filters-opener:focus-visible{outline:2px solid currentColor!important;outline-offset:3px!important}

  body.bloxx-mobile-ranges-mounted>.et-boc .bloxx-yith-ranges:not(.bloxx-ranges-in-mobile-modal){display:none!important}
  .yith-wcan-filters.filters-modal{
    top:0!important;
    right:0!important;
    bottom:0!important;
    left:auto!important;
    width:100vw!important;
    max-width:none!important;
    height:100dvh!important;
    max-height:100dvh!important;
    background:#fff!important;
    box-shadow:-12px 0 35px rgba(0,0,0,.22)!important;
    z-index:2147483001!important;
  }
  .yith-wcan-filters.filters-modal .filters-container{
    height:calc(100dvh - 65px)!important;
    max-height:calc(100dvh - 65px)!important;
    margin-top:65px!important;
    padding:20px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
  .yith-wcan-filters.filters-modal .close-button{z-index:2147483003!important}
  .yith-wcan-filters.filters-modal .main-modal-button{
    position:absolute!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    width:100%!important;
    min-height:60px!important;
    margin:0!important;
    z-index:2147483004!important;
  }
  .yith-wcan-filters.filters-modal.with-filter-button .filters-container{padding-bottom:92px!important}
  html.bloxx-yith-modal-open,
  html.bloxx-yith-modal-open body{overflow:hidden!important;overscroll-behavior:none}

  .bloxx-yith-modal-backdrop{
    position:fixed!important;
    inset:0!important;
    display:block!important;
    width:100vw!important;
    height:100dvh!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:rgba(15,18,24,.52)!important;
    box-shadow:none!important;
    cursor:default!important;
    z-index:2147483000!important;
  }
  .bloxx-yith-modal-backdrop[hidden]{display:none!important}

  .bloxx-ranges-in-mobile-modal{
    --bloxx-yith-slider-track-height:5px;
    --bloxx-yith-slider-handle-width:30px;
    --bloxx-yith-slider-handle-height:30px;
    display:grid!important;
    gap:14px!important;
    margin:14px 0 24px!important;
  }
  .bloxx-ranges-in-mobile-modal .bloxx-range-filter{
    gap:0;
    border:1px solid #d9dadd;
    border-radius:5px;
    background:#fff;
    opacity:1;
    overflow:hidden;
  }
  .bloxx-ranges-in-mobile-modal .bloxx-range-title{
    min-height:52px;
    padding:14px 42px 14px 16px!important;
    font-size:16px!important;
    line-height:1.4!important;
  }
  .bloxx-ranges-in-mobile-modal .bloxx-range-title::after{right:17px}
  .bloxx-ranges-in-mobile-modal .bloxx-range-content{padding:4px 16px 18px}
  .bloxx-ranges-in-mobile-modal .bloxx-dual-range{
    min-height:44px;
    touch-action:pan-y;
  }
  .bloxx-ranges-in-mobile-modal .bloxx-dual-range input[type=range]{touch-action:pan-y}
  .bloxx-ranges-in-mobile-modal .bloxx-range-input-wrap{min-height:44px}
}

@media(max-width:480px){.bloxx-range-fields{grid-template-columns:1fr 1fr}.bloxx-range-filter{gap:10px}}
