.ivy-shop-filter-wrap{width:100%;font-family:inherit}.ivy-filter-sidebar{box-sizing:border-box}.ivy-filter-sidebar__head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.ivy-filter-sidebar__head h2{margin:4px 0 0;font-size:22px}.ivy-filter-eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700}.ivy-filter-close,.ivy-mobile-filter-trigger{cursor:pointer}.ivy-filter-form{margin-top:18px}.ivy-search-box{position:relative;display:flex;align-items:center;border:1px solid #ddd;border-radius:4px;background:#fff}.ivy-search-input{width:100%;border:0!important;outline:0!important;background:transparent!important;padding:12px 40px!important;box-shadow:none!important}.ivy-search-clear{position:absolute;right:8px;border:0;background:transparent;font-size:20px;cursor:pointer}.ivy-search-icon{position:absolute;left:14px;width:14px;height:14px;border:1.5px solid currentColor;border-radius:50%}.ivy-search-icon:after{content:'';position:absolute;width:6px;height:1.5px;background:currentColor;right:-5px;bottom:-2px;transform:rotate(45deg)}.ivy-filter-section{border-bottom:1px solid #eee;padding:18px 0}.ivy-filter-section__toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;padding:0;cursor:pointer;font-weight:600;text-align:left}.ivy-filter-chevron{width:7px;height:7px;border-right:1.5px solid;border-bottom:1.5px solid;transform:rotate(45deg);transition:.2s}.ivy-filter-section__toggle[aria-expanded=false] .ivy-filter-chevron{transform:rotate(-45deg)}.ivy-filter-section__body{padding-top:14px}.ivy-filter-options{display:flex;flex-direction:column;gap:9px}.ivy-filter-option{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:14px;color:#555}.ivy-filter-option input{position:absolute;opacity:0;pointer-events:none}.ivy-custom-check{width:16px;height:16px;border:1px solid #aaa;display:inline-flex;align-items:center;justify-content:center}.ivy-filter-option input:checked+.ivy-custom-check{background:#111;border-color:#111}.ivy-filter-option input:checked+.ivy-custom-check:after{content:'✓';color:#fff;font-size:11px}.ivy-filter-count{margin-left:auto;color:#999;font-size:12px}.ivy-color-swatch{width:22px;height:22px;border-radius:50%;background:var(--ivy-swatch);border:1px solid #ddd;flex:0 0 22px}.ivy-size-pill{border:1px solid #ddd;min-width:38px;text-align:center;padding:5px 10px;border-radius:3px;background:#fff}.ivy-filter-option input:checked~.ivy-size-pill{border-color:#111;background:#111;color:#fff}.ivy-price-inputs{display:flex;align-items:end;gap:8px}.ivy-price-inputs label{flex:1;font-size:11px;color:#777}.ivy-price-inputs input{width:100%;box-sizing:border-box;margin-top:5px;padding:9px;border:1px solid #ddd}.ivy-price-dash{padding-bottom:10px}.ivy-price-quick{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.ivy-price-quick button{border:1px solid #ddd;background:#fff;padding:6px 9px;font-size:11px;cursor:pointer}.ivy-rating-options{display:flex;flex-direction:column;gap:7px}.ivy-rating-option{display:flex;align-items:center;gap:6px;font-size:13px}.ivy-stars{letter-spacing:1px}.ivy-stars-muted{opacity:.2}.ivy-active-filters{padding:12px 0}.ivy-active-filters__top{display:flex;justify-content:space-between;font-size:12px;font-weight:600}.ivy-clear-all{border:0;background:none;text-decoration:underline;cursor:pointer}.ivy-filter-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.ivy-filter-chip{border:1px solid #ddd;background:#fff;padding:5px 9px;border-radius:3px;font-size:12px;cursor:pointer}.ivy-filter-actions{display:flex;gap:8px;margin-top:18px}.ivy-filter-actions button{flex:1;padding:11px;border-radius:3px;cursor:pointer}.ivy-clear-all--button{background:#fff;border:1px solid #ccc}.ivy-apply-filters{background:#111;color:#fff;border:1px solid #111}.ivy-filter-more{margin-top:10px;border:0;background:none;text-decoration:underline;font-size:12px;cursor:pointer;padding:0}.ivy-mobile-filter-trigger{display:none}.ivy-filter-overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:9998}.ivy-filter-sidebar{z-index:9999}.ivy-filter-close{border:0;background:none;font-size:26px}.ivy-filter-drawer-open{overflow:hidden}@media(max-width:767px){.ivy-mobile-filter-trigger{display:flex;align-items:center;gap:8px;border:1px solid #ddd;background:#fff;padding:10px 14px}.ivy-filter-sidebar{position:fixed;top:0;right:0;bottom:0;width:min(88vw,380px);background:#fff;padding:20px;overflow:auto;transform:translateX(100%);transition:transform .25s ease}.ivy-filter-sidebar.is-open{transform:translateX(0)}}

/* FilterFlow v0.4.2: keep price values visible against theme hover/focus rules */
.ivy-price-inputs input[type="number"],
.ivy-price-inputs input[type="number"]:hover,
.ivy-price-inputs input[type="number"]:focus,
.ivy-price-inputs input[type="number"]:active {
  color:#222 !important;
  -webkit-text-fill-color:#222 !important;
  background-color:#fff !important;
  opacity:1 !important;
  caret-color:#222 !important;
  box-shadow:none !important;
}

/* v1.2.5 compact left category sidebar + mobile/tablet drawer */
@media(min-width:1024px){
  .ivy-shop-filter-wrap{width:100%!important}
  .ivy-shop-filter-wrap .ivy-mobile-filter-trigger,.ivy-shop-filter-wrap .ivy-filter-overlay,.ivy-shop-filter-wrap .ivy-filter-close,.ivy-shop-filter-wrap .ivy-filter-eyebrow{display:none!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar{background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;box-sizing:border-box!important;max-height:calc(100vh - var(--ff-sticky-top,96px) - 16px)!important;overflow:auto!important;padding:0 12px 20px 0!important;position:sticky!important;top:var(--ff-sticky-top,96px)!important;width:100%!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar__head{align-items:center;border-bottom:1px solid #eee;display:flex;margin:0;padding:0 0 10px}
  .ivy-shop-filter-wrap .ivy-filter-sidebar__head h2{font-size:14px;font-weight:600;margin:0}
  .ivy-shop-filter-wrap .ivy-filter-form{margin-top:6px}
  .ivy-shop-filter-wrap .ivy-search-box{display:none}
  .ivy-shop-filter-wrap .ivy-filter-section{padding:12px 0}
  .ivy-shop-filter-wrap .ivy-filter-section__toggle{font-size:13px;font-weight:600;text-transform:none!important}
  .ivy-shop-filter-wrap .ivy-filter-section__body{padding-top:9px}
  .ivy-shop-filter-wrap .ivy-filter-options{gap:6px}
  .ivy-shop-filter-wrap .ivy-filter-option{font-size:12px;gap:7px;line-height:1.25}
  .ivy-shop-filter-wrap .ivy-custom-check{height:13px;width:13px}
  .ivy-shop-filter-wrap .ivy-filter-count{font-size:10px}
  .ivy-shop-filter-wrap .ivy-filter-options--color{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 6px}
  .ivy-shop-filter-wrap .ivy-filter-options--color .ivy-color-swatch{flex-basis:var(--ff-swatch,14px)!important;height:var(--ff-swatch,14px)!important;width:var(--ff-swatch,14px)!important}
  .ivy-shop-filter-wrap .ivy-active-filters{padding:8px 0}.ivy-shop-filter-wrap .ivy-filter-chip{font-size:10px;padding:4px 6px}
  .ivy-shop-filter-wrap .filterflow-result-summary{font-size:11px;margin:6px 0;padding:7px 0}
}
@media(max-width:1023px){
  .ivy-shop-filter-wrap .ivy-mobile-filter-trigger{display:flex!important;position:static!important;transform:none!important;min-height:38px!important;min-width:0!important;padding:8px 12px!important;border-radius:0!important;box-shadow:none!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar{border-radius:0!important;bottom:0!important;height:100dvh!important;left:0!important;max-height:100dvh!important;max-width:420px!important;padding:0 16px calc(78px + env(safe-area-inset-bottom))!important;right:auto!important;top:0!important;transform:translateX(-105%)!important;width:min(var(--ff-mobile-width,100vw),420px)!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar.is-open{transform:translateX(0)!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar:before{display:none!important}
  .ivy-shop-filter-wrap .ivy-filter-sidebar__head{margin:0 -16px;padding:13px 16px}
  .ivy-shop-filter-wrap .ivy-filter-sidebar__head h2{font-size:16px}
}
.ivy-price-inputs input[type="number"]::placeholder {
  color:#888 !important;
  -webkit-text-fill-color:#888 !important;
  opacity:1 !important;
}

/* FilterFlow v0.4.3: protect quick-price button labels from theme button states */
.ivy-shop-filter-wrap .ivy-price-quick button,
.ivy-shop-filter-wrap .ivy-price-quick button:hover,
.ivy-shop-filter-wrap .ivy-price-quick button:focus,
.ivy-shop-filter-wrap .ivy-price-quick button:focus-visible,
.ivy-shop-filter-wrap .ivy-price-quick button:active {
  color:#222 !important;
  -webkit-text-fill-color:#222 !important;
  background:#fff !important;
  background-color:#fff !important;
  border-color:#ddd !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
  box-shadow:none !important;
  white-space:nowrap !important;
  text-decoration:none !important;
}

.ivy-shop-filter-wrap .ivy-price-quick button * {
  color:inherit !important;
  -webkit-text-fill-color:inherit !important;
  opacity:1 !important;
  visibility:visible !important;
}


/* FilterFlow v0.4.4: unmistakable selected state for color swatches */
.ivy-shop-filter-wrap .ivy-filter-options--color .ivy-color-swatch {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  transition: transform .15s ease, outline-color .15s ease, box-shadow .15s ease;
}

.ivy-shop-filter-wrap .ivy-filter-options--color input:checked + .ivy-color-swatch {
  outline: 2px solid #111 !important;
  outline-offset: 2px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75) !important;
  transform: scale(.88);
}

.ivy-shop-filter-wrap .ivy-filter-options--color input:checked + .ivy-color-swatch::after {
  content: '✓';
  display: block;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  font-size: 14px;
  line-height: 1;
  font-weight: 800;
  text-align: center;
  text-shadow: 0 0 2px #000, 0 1px 2px #000, 1px 0 1px #000, -1px 0 1px #000;
  pointer-events: none;
}

.ivy-shop-filter-wrap .ivy-filter-options--color input:checked ~ .ivy-filter-label {
  color: #111 !important;
  font-weight: 700;
}

.ivy-shop-filter-wrap .ivy-filter-options--color input:focus-visible + .ivy-color-swatch {
  outline: 2px solid #111;
  outline-offset: 3px;
}


/* FilterFlow v0.5.0 — mobile-only filter bottom sheet.
   Desktop filter layout is intentionally unchanged. */
@media (max-width:767px) {
  .ivy-mobile-filter-trigger {
    display:flex !important;
    align-items:center;
    justify-content:center;
    gap:9px;
    position:fixed;
    left:50%;
    bottom:calc(18px + env(safe-area-inset-bottom));
    transform:translateX(-50%);
    z-index:9997;
    min-width:156px;
    min-height:48px;
    padding:12px 18px !important;
    border:1px solid #d8d8d8 !important;
    border-radius:4px !important;
    background:#fff !important;
    color:#111 !important;
    -webkit-text-fill-color:#111 !important;
    box-shadow:0 6px 22px rgba(0,0,0,.12);
    font-size:13px;
    font-weight:700;
    letter-spacing:.12em;
    text-transform:uppercase;
  }

  .ivy-mobile-filter-trigger:hover,
  .ivy-mobile-filter-trigger:focus,
  .ivy-mobile-filter-trigger:active {
    background:#fff !important;
    color:#111 !important;
    -webkit-text-fill-color:#111 !important;
  }

  .ivy-mobile-filter-trigger b {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border-radius:999px;
    background:#111;
    color:#fff;
    -webkit-text-fill-color:#fff;
    font-size:11px;
    line-height:1;
    letter-spacing:0;
  }

  .ivy-filter-icon {
    width:15px;
    height:12px;
    position:relative;
    display:inline-block;
    border-top:1.5px solid currentColor;
    border-bottom:1.5px solid currentColor;
  }
  .ivy-filter-icon:after {
    content:'';
    position:absolute;
    left:3px;
    right:3px;
    top:4px;
    border-top:1.5px solid currentColor;
  }

  .ivy-filter-overlay {
    position:fixed !important;
    inset:0 !important;
    z-index:9998 !important;
    background:rgba(0,0,0,.42) !important;
    backdrop-filter:blur(1px);
  }

  .ivy-filter-sidebar {
    position:fixed !important;
    left:0 !important;
    right:0 !important;
    top:auto !important;
    bottom:0 !important;
    width:100% !important;
    max-width:none !important;
    height:min(86vh,760px);
    max-height:calc(100dvh - 32px);
    padding:0 20px calc(22px + env(safe-area-inset-bottom)) !important;
    border-radius:20px 20px 0 0;
    background:#fff !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    box-shadow:0 -12px 40px rgba(0,0,0,.18);
    transform:translateY(105%) !important;
    transition:transform .28s ease !important;
    z-index:9999 !important;
  }

  .ivy-filter-sidebar:before {
    content:'';
    display:block;
    width:42px;
    height:4px;
    border-radius:999px;
    background:#d7d7d7;
    margin:10px auto 8px;
  }

  .ivy-filter-sidebar.is-open {
    transform:translateY(0) !important;
  }

  .ivy-filter-sidebar__head {
    position:sticky;
    top:0;
    z-index:3;
    align-items:center;
    margin:0 -20px;
    padding:10px 20px 14px;
    background:#fff;
    border-bottom:1px solid #eee;
  }

  .ivy-filter-sidebar__head h2 {
    margin:2px 0 0;
    font-size:20px;
  }

  .ivy-filter-close {
    display:flex;
    align-items:center;
    justify-content:center;
    width:38px;
    height:38px;
    padding:0;
    border:0 !important;
    border-radius:50%;
    background:#f5f5f5 !important;
    color:#111 !important;
    -webkit-text-fill-color:#111 !important;
    font-size:25px;
    line-height:1;
  }

  .ivy-filter-form {
    margin-top:16px;
  }

  .ivy-filter-section {
    padding:16px 0;
  }

  .ivy-filter-option,
  .ivy-rating-option {
    min-height:36px;
  }

  .ivy-search-input {
    min-height:46px;
  }

  .ivy-filter-drawer-open body {
    overflow:hidden;
    touch-action:none;
  }
}


/* FilterFlow v0.5.2 — horizontal color and size controls.
   JS adds explicit classes to the actual option containers, avoiding :has()
   compatibility/markup issues. Desktop and mobile only; filter logic unchanged. */
.ivy-ff-horizontal-options {
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:wrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
}

.ivy-ff-horizontal-options > label,
.ivy-ff-horizontal-options > .ivy-filter-option,
.ivy-ff-horizontal-options > * {
  width:auto !important;
  max-width:none !important;
  margin:0 !important;
  float:none !important;
  flex:0 0 auto !important;
}

.ivy-ff-color-options {
  gap:10px !important;
}

.ivy-ff-color-options > label,
.ivy-ff-color-options > .ivy-filter-option {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-width:30px !important;
  min-height:30px !important;
}

/* Hide only the visible color-name text after JS marks it.
   The input remains accessible and the swatch/checkmark stays visible. */
.ivy-ff-color-options .ivy-ff-color-name {
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

.ivy-ff-size-options > label,
.ivy-ff-size-options > .ivy-filter-option {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}


/* FilterFlow v0.5.3 — conservative polish on top of the stable v0.5.2.
   No filtering/query changes and no global accordion/button restyling. */

/* Slightly larger click/tap area while preserving the existing white header design. */
.ivy-filter-section__toggle {
  min-height:34px;
  cursor:pointer;
}

/* Product counts stay secondary. */
.ivy-filter-count {
  opacity:.58;
  font-size:.92em;
}

/* Keep rating vertical and improve spacing only. */
.ivy-rating-options {
  display:flex;
  flex-direction:column;
  gap:7px;
}

/* Make color swatches a touch easier to tap without changing selection logic. */
.ivy-ff-color-options {
  gap:11px !important;
}
.ivy-ff-color-options .ivy-filter-option {
  min-width:32px !important;
  min-height:32px !important;
}

/* Keep size buttons easy to tap while preserving v0.5.2 states. */
.ivy-ff-size-options {
  gap:8px !important;
}
.ivy-ff-size-options .ivy-filter-option {
  min-height:30px !important;
}

/* Balance the quick-price controls without changing their behavior. */
.ivy-price-quick {
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px !important;
}
.ivy-price-quick button {
  width:100% !important;
  min-height:32px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.ivy-price-quick button:last-child {
  grid-column:1 / -1;
}

/* Compact close control; no section-header styling is touched. */
.ivy-filter-close {
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  padding:0 !important;
  border-radius:50% !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}


/* FilterFlow Pro private: AJAX/status + advanced filter polish. */
.filterflow-pro-status{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:10050;display:flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid #e7e7e7;border-radius:999px;background:#fff;color:#111;box-shadow:0 8px 24px rgba(0,0,0,.12);font-size:12px;font-weight:600;white-space:nowrap}.filterflow-pro-status[hidden]{display:none!important}.filterflow-pro-spinner{width:13px;height:13px;border:1.5px solid #ddd;border-top-color:#111;border-radius:50%;animation:filterflowProSpin .7s linear infinite}@keyframes filterflowProSpin{to{transform:rotate(360deg)}}.filterflow-pro-loading ul.products{opacity:.58;transition:opacity .15s ease}.ivy-filter-section[data-filter-section="availability"] .ivy-filter-option{min-height:32px}.ivy-filter-section[data-filter-section="availability"] .ivy-filter-label{font-size:13px}@media(max-width:767px){.filterflow-pro-status{bottom:calc(82px + env(safe-area-inset-bottom))}}


/* FilterFlow Pro Private v1.1.0 — Smart Flow + Variation Flow + Insights */
.ivy-filter-option--unavailable {
  opacity:.32 !important;
  cursor:not-allowed !important;
}
.ivy-filter-option--unavailable input {
  cursor:not-allowed !important;
}
.ivy-filter-option--unavailable .ivy-color-swatch,
.ivy-filter-option--unavailable .ivy-size-pill {
  filter:saturate(.35);
}

.filterflow-smart-count {
  margin-left:auto;
  color:#aaa;
  font-size:11px;
  font-weight:500;
}
.filterflow-smart-price-range {
  margin-top:8px;
  color:#8a8a8a;
  font-size:10px;
  letter-spacing:.02em;
}
.filterflow-smart-price-range strong {
  color:#555;
  font-weight:600;
}

.ivy-rating-option {
  display:flex;
  align-items:center;
  gap:7px;
}
.ivy-rating-option .filterflow-smart-count {
  padding-left:4px;
}

/* Smart count changes should stay subtle in the minimalist fashion UI. */
.ivy-filter-count,
.filterflow-smart-count {
  font-variant-numeric:tabular-nums;
}

@media(max-width:767px){
  .filterflow-smart-price-range{font-size:11px}
}


/* FilterFlow Pro Private v1.1.1 — Smart Flow display correction */
.filterflow-smart-price-range {
  margin-top:10px !important;
  font-size:11px !important;
  line-height:1.45 !important;
  color:#777 !important;
}
.filterflow-smart-price-range strong {
  color:#333 !important;
  font-weight:600 !important;
}
.ivy-rating-option:not(.ivy-filter-option--unavailable) {
  opacity:1 !important;
}


/* FilterFlow Pro Private v1.1.2 — Conditional Intelligence */
.filterflow-smart-price-range {
  margin-top:9px !important;
  padding-top:8px !important;
  border-top:1px solid #f0f0f0;
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  color:#999 !important;
  font-size:10px !important;
  line-height:1.3 !important;
}
.filterflow-smart-price-range span {
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:9px;
}
.filterflow-smart-price-range strong {
  color:#444 !important;
  font-size:10px !important;
  font-weight:600 !important;
  white-space:nowrap;
}

/* Impossible Smart/Variation Flow choices stay visible for context,
   but clearly cannot be selected. */
.ivy-filter-option--unavailable {
  opacity:.28 !important;
}
.ivy-filter-option--unavailable .ivy-size-pill,
.ivy-filter-option--unavailable .ivy-color-swatch {
  cursor:not-allowed !important;
}

/* On phones keep the intelligent price hint readable. */
@media (max-width:767px) {
  .filterflow-smart-price-range {
    font-size:11px !important;
  }
  .filterflow-smart-price-range strong {
    font-size:11px !important;
  }
}


/* FilterFlow Ultimate Private v1.2.0 */
.filterflow-result-summary{display:flex;align-items:baseline;gap:5px;margin:10px 0 2px;padding:7px 0;color:#777;font-size:10px}
.filterflow-result-summary strong{color:#111;font-size:13px;font-weight:700}

.filterflow-section-reset{margin-top:9px!important;padding:0!important;border:0!important;background:transparent!important;color:#777!important;-webkit-text-fill-color:#777!important;font-size:9px!important;font-weight:650;letter-spacing:.10em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px}
.filterflow-section-reset:hover,.filterflow-section-reset:focus{color:#111!important;-webkit-text-fill-color:#111!important}
.ivy-price-quick button:disabled{opacity:.28!important;cursor:not-allowed!important}

.filterflow-price-slider{--ff-start:0%;--ff-end:100%;position:relative;height:30px;margin:12px 2px 3px}
.filterflow-slider-track{position:absolute;left:0;right:0;top:14px;height:2px;background:linear-gradient(to right,#dedede 0,#dedede var(--ff-start),#111 var(--ff-start),#111 var(--ff-end),#dedede var(--ff-end),#dedede 100%)}
.filterflow-price-slider input[type="range"]{position:absolute;left:0;top:5px;width:100%;height:20px;margin:0;padding:0;background:transparent!important;pointer-events:none;-webkit-appearance:none;appearance:none}
.filterflow-price-slider input[type="range"]::-webkit-slider-runnable-track{height:2px;background:transparent}
.filterflow-price-slider input[type="range"]::-webkit-slider-thumb{width:15px;height:15px;margin-top:-6.5px;border:1px solid #111;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #fff;-webkit-appearance:none;appearance:none;pointer-events:auto;cursor:grab}
.filterflow-price-slider input[type="range"]::-moz-range-track{height:2px;background:transparent}
.filterflow-price-slider input[type="range"]::-moz-range-thumb{width:15px;height:15px;border:1px solid #111;border-radius:50%;background:#fff;box-shadow:0 0 0 2px #fff;pointer-events:auto;cursor:grab}

.filterflow-mobile-view-results{display:none!important}
@media(max-width:767px){
  .ivy-filter-form{padding-bottom:74px!important}
  .filterflow-mobile-view-results{display:flex!important;position:sticky;bottom:calc(0px + env(safe-area-inset-bottom));z-index:8;width:100%;min-height:48px;margin:18px 0 0!important;padding:12px 18px!important;align-items:center;justify-content:center;border:1px solid #111!important;border-radius:2px!important;background:#111!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:0 -9px 20px rgba(255,255,255,.96);font-size:11px!important;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
  .filterflow-result-summary{font-size:11px}
  .filterflow-result-summary strong{font-size:14px}
}


/* =========================================================
   FilterFlow Ultimate Private v1.2.1 — Price UI polish only
   Filtering/query behavior is unchanged.
   ========================================================= */

/* Price preset buttons: consistent normal + hover/focus/active states. */
.ivy-shop-filter-wrap .ivy-price-quick button {
  transition: background-color .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}

/* Enabled preset buttons stay clean white on hover. */
.ivy-shop-filter-wrap .ivy-price-quick button:not(:disabled):not(.is-selected),
.ivy-shop-filter-wrap .ivy-price-quick button:not(:disabled):not(.is-selected):hover,
.ivy-shop-filter-wrap .ivy-price-quick button:not(:disabled):not(.is-selected):focus,
.ivy-shop-filter-wrap .ivy-price-quick button:not(:disabled):not(.is-selected):active {
  background:#fff !important;
  background-color:#fff !important;
  border-color:#dedede !important;
  color:#222 !important;
  -webkit-text-fill-color:#222 !important;
}

/* Selected preset remains dark, including hover/focus. */
.ivy-shop-filter-wrap .ivy-price-quick button.is-selected,
.ivy-shop-filter-wrap .ivy-price-quick button.is-selected:hover,
.ivy-shop-filter-wrap .ivy-price-quick button.is-selected:focus,
.ivy-shop-filter-wrap .ivy-price-quick button.is-selected:active {
  background:#111 !important;
  background-color:#111 !important;
  border-color:#111 !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
}

/* Zero-result/disabled preset remains gray at ALL times.
   Themes must not turn it dark or white on hover. */
.ivy-shop-filter-wrap .ivy-price-quick button:disabled,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:hover,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:focus,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:active {
  opacity:1 !important;
  background:#f7f7f7 !important;
  background-color:#f7f7f7 !important;
  border-color:#e5e5e5 !important;
  color:#b7b7b7 !important;
  -webkit-text-fill-color:#b7b7b7 !important;
  box-shadow:none !important;
  cursor:not-allowed !important;
}

/* Cleaner dual-handle price slider. */
.ivy-shop-filter-wrap .filterflow-price-slider {
  --ff-start:0%;
  --ff-end:100%;
  position:relative;
  height:34px;
  margin:13px 3px 2px;
}

.ivy-shop-filter-wrap .filterflow-slider-track {
  position:absolute;
  left:7px;
  right:7px;
  top:16px;
  height:2px;
  border-radius:999px;
  background:
    linear-gradient(
      to right,
      #e3e3e3 0,
      #e3e3e3 var(--ff-start),
      #222 var(--ff-start),
      #222 var(--ff-end),
      #e3e3e3 var(--ff-end),
      #e3e3e3 100%
    ) !important;
}

.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"] {
  top:6px;
  height:22px;
}

/* Small, crisp handles rather than oversized circles. */
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-webkit-slider-thumb {
  width:13px !important;
  height:13px !important;
  margin-top:-5.5px !important;
  border:1.5px solid #222 !important;
  border-radius:50% !important;
  background:#fff !important;
  box-shadow:0 0 0 1px #fff !important;
}

.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-moz-range-thumb {
  width:13px !important;
  height:13px !important;
  border:1.5px solid #222 !important;
  border-radius:50% !important;
  background:#fff !important;
  box-shadow:0 0 0 1px #fff !important;
}

/* Keep keyboard focus visible but subtle. */
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]:focus-visible::-webkit-slider-thumb {
  outline:2px solid #777;
  outline-offset:3px;
}

/* Clean, one-line available price range. */
.ivy-shop-filter-wrap .filterflow-smart-price-range {
  margin-top:4px !important;
  padding-top:7px !important;
  border-top:1px solid #f2f2f2 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  min-height:25px;
}

.ivy-shop-filter-wrap .filterflow-smart-price-range span {
  color:#aaa !important;
  font-size:8px !important;
  font-weight:600 !important;
  letter-spacing:.12em !important;
  line-height:1 !important;
  text-transform:uppercase !important;
}

.ivy-shop-filter-wrap .filterflow-smart-price-range strong {
  color:#555 !important;
  font-size:9px !important;
  font-weight:600 !important;
  line-height:1 !important;
  white-space:nowrap !important;
}

/* More breathing room between manual fields, presets, slider and range. */
.ivy-shop-filter-wrap .ivy-price-inputs {
  margin-bottom:7px;
}

.ivy-shop-filter-wrap .ivy-price-quick {
  margin-bottom:2px;
}

/* Mobile: preserve compactness while keeping slider easy to touch. */
@media (max-width:767px) {
  .ivy-shop-filter-wrap .filterflow-price-slider {
    height:36px;
    margin-top:14px;
  }

  .ivy-shop-filter-wrap .filterflow-slider-track {
    top:17px;
  }

  .ivy-shop-filter-wrap .filterflow-price-slider input[type="range"] {
    top:6px;
    height:24px;
  }

  .ivy-shop-filter-wrap .filterflow-smart-price-range span {
    font-size:8px !important;
  }

  .ivy-shop-filter-wrap .filterflow-smart-price-range strong {
    font-size:9px !important;
  }
}


/* =========================================================
   FilterFlow Ultimate Private v1.2.2 — Price Slider Refinement
   ========================================================= */

/* Disabled presets remain obviously unavailable, but readable. */
.ivy-shop-filter-wrap .ivy-price-quick button:disabled,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:hover,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:focus,
.ivy-shop-filter-wrap .ivy-price-quick button:disabled:active {
  opacity:1 !important;
  background:#f7f7f7 !important;
  border-color:#e2e2e2 !important;
  color:#9a9a9a !important;
  -webkit-text-fill-color:#9a9a9a !important;
}

/* Give the slider its own clean breathing room. */
.ivy-shop-filter-wrap .filterflow-price-slider {
  height:48px !important;
  margin:12px 7px 3px !important;
}

/* One single visual track, inset so handles never hang outside the section. */
.ivy-shop-filter-wrap .filterflow-slider-track {
  left:6px !important;
  right:6px !important;
  top:13px !important;
  height:2px !important;
  overflow:hidden;
  border-radius:999px !important;
}

/* Remove browser track visuals entirely so there is no duplicate gray line. */
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"] {
  top:2px !important;
  height:22px !important;
}
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-webkit-slider-runnable-track {
  height:2px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-moz-range-track {
  height:2px !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Compact handles. */
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-webkit-slider-thumb {
  width:12px !important;
  height:12px !important;
  margin-top:-5px !important;
  border:1.5px solid #222 !important;
  background:#fff !important;
  box-shadow:0 0 0 1px #fff !important;
}
.ivy-shop-filter-wrap .filterflow-price-slider input[type="range"]::-moz-range-thumb {
  width:12px !important;
  height:12px !important;
  border:1.5px solid #222 !important;
  background:#fff !important;
  box-shadow:0 0 0 1px #fff !important;
}

/* Price values now belong directly to the slider instead of a detached
   "AVAILABLE" row. */
.ivy-shop-filter-wrap .filterflow-slider-values {
  position:absolute;
  left:0;
  right:0;
  top:28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  pointer-events:none;
  color:#666;
  font-size:9px;
  font-weight:600;
  line-height:1;
}
.ivy-shop-filter-wrap .filterflow-slider-value-min,
.ivy-shop-filter-wrap .filterflow-slider-value-max {
  white-space:nowrap;
}

/* Reset should feel attached to Price but not collide with slider labels. */
.ivy-shop-filter-wrap .filterflow-price-slider + .filterflow-smart-price-range + .filterflow-section-reset,
.ivy-shop-filter-wrap .filterflow-price-slider + .filterflow-section-reset {
  margin-top:7px !important;
}

/* If slider is disabled in settings, preserve the existing clean fallback. */
.ivy-shop-filter-wrap .filterflow-smart-price-range {
  min-height:24px;
}

@media (max-width:767px) {
  .ivy-shop-filter-wrap .filterflow-price-slider {
    height:49px !important;
    margin-left:7px !important;
    margin-right:7px !important;
  }
  .ivy-shop-filter-wrap .filterflow-slider-values {
    font-size:9px !important;
  }
}


/* =========================================================
   FilterFlow Ultimate Private v1.2.3 — Desktop Sticky Filter
   Desktop behavior only. Mobile/tablet drawer behavior unchanged.
   ========================================================= */

@media (min-width:1024px) {
  .ivy-shop-filter-wrap {
    position:relative !important;
    align-self:flex-start;
  }

  .ivy-shop-filter-wrap .ivy-filter-sidebar {
    position:sticky !important;
    top:24px !important;
    bottom:auto !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
    max-height:calc(100vh - 48px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    width:100% !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }

  .ivy-shop-filter-wrap .ivy-filter-sidebar.is-open {
    transform:none !important;
  }

  .ivy-shop-filter-wrap .ivy-filter-overlay {
    display:none !important;
  }

  .ivy-shop-filter-wrap .ivy-filter-sidebar::-webkit-scrollbar {
    width:5px;
  }

  .ivy-shop-filter-wrap .ivy-filter-sidebar::-webkit-scrollbar-track {
    background:transparent;
  }

  .ivy-shop-filter-wrap .ivy-filter-sidebar::-webkit-scrollbar-thumb {
    background:#d8d8d8;
    border-radius:999px;
  }
}

/* FilterFlow Ultimate v1.2.4 — desktop right-side breathing room */
@media (min-width:1024px) {
  .ivy-shop-filter-wrap .ivy-filter-sidebar {
    padding-right:14px !important;
    box-sizing:border-box !important;
    scrollbar-gutter:stable;
  }
  .ivy-shop-filter-wrap .ivy-filter-heading {
    padding-right:12px !important;
  }
  .ivy-shop-filter-wrap .ivy-filter-sidebar::-webkit-scrollbar { width:6px; }
  .ivy-shop-filter-wrap .ivy-filter-sidebar::-webkit-scrollbar-thumb {
    background:#cfcfcf;
    border-radius:999px;
  }
}
/* v1.2.6 final responsive authority — synchronized with the storefront desktop threshold */
@media(min-width:768px){.ivy-shop-filter-wrap .ivy-mobile-filter-trigger,.ivy-shop-filter-wrap .ivy-filter-overlay,.ivy-shop-filter-wrap .ivy-filter-close,.ivy-shop-filter-wrap .ivy-filter-eyebrow{display:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar{background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important;bottom:auto!important;height:auto!important;left:auto!important;max-height:calc(100vh - var(--ff-sticky-top,96px) - 16px)!important;max-width:none!important;overflow:auto!important;padding:0 12px 20px 0!important;position:sticky!important;right:auto!important;top:var(--ff-sticky-top,96px)!important;transform:none!important;width:100%!important}.ivy-shop-filter-wrap .ivy-filter-sidebar.is-open{transform:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar__head{border-bottom:1px solid #eee;margin:0;padding:0 0 10px}.ivy-shop-filter-wrap .ivy-filter-sidebar__head h2{font-size:14px;margin:0}.ivy-shop-filter-wrap .ivy-filter-form{margin-top:6px}.ivy-shop-filter-wrap .ivy-search-box{display:none}.ivy-shop-filter-wrap .ivy-filter-section{padding:12px 0}.ivy-shop-filter-wrap .ivy-filter-section__toggle{font-size:13px;text-transform:none!important}.ivy-shop-filter-wrap .ivy-filter-section__body{padding-top:9px}.ivy-shop-filter-wrap .ivy-filter-options{gap:6px}.ivy-shop-filter-wrap .ivy-filter-option{font-size:12px;gap:7px}.ivy-shop-filter-wrap .ivy-custom-check{height:13px;width:13px}.ivy-shop-filter-wrap .ivy-filter-options--color{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 6px}.ivy-shop-filter-wrap .ivy-filter-options--color .ivy-color-swatch{flex-basis:var(--ff-swatch,14px)!important;height:var(--ff-swatch,14px)!important;width:var(--ff-swatch,14px)!important}}
@media(max-width:767px){.ivy-shop-filter-wrap .ivy-mobile-filter-trigger{display:flex!important;position:static!important;transform:none!important;min-height:38px!important;min-width:0!important;padding:8px 12px!important;border-radius:0!important;box-shadow:none!important;font-size:12px!important;font-weight:400!important;letter-spacing:0!important;text-transform:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar{border-radius:0!important;bottom:0!important;height:100dvh!important;left:auto!important;max-height:100dvh!important;max-width:380px!important;padding:0 16px calc(78px + env(safe-area-inset-bottom))!important;right:0!important;top:0!important;transform:translateX(105%)!important;width:min(88vw,380px)!important}.ivy-shop-filter-wrap .ivy-filter-sidebar.is-open{transform:translateX(0)!important}.ivy-shop-filter-wrap .ivy-filter-sidebar:before{display:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar__head{margin:0 -16px;padding:13px 16px}}
.ivy-shop-filter-wrap .ivy-filter-options--category{gap:0}.ivy-shop-filter-wrap .ivy-filter-category{align-items:center;color:#333!important;display:grid;font-size:11px;font-weight:400;gap:6px;grid-template-columns:10px minmax(0,1fr) auto 10px;line-height:1.2;min-height:24px;text-decoration:none!important}.ivy-shop-filter-wrap .ivy-filter-category:hover,.ivy-shop-filter-wrap .ivy-filter-category.is-current{color:#111!important;font-weight:600}.ivy-shop-filter-wrap .ivy-filter-category-dot{border:1px solid #aaa;border-radius:50%;height:7px;width:7px}.ivy-shop-filter-wrap .ivy-filter-category.is-current .ivy-filter-category-dot{background:#111;border-color:#111;box-shadow:inset 0 0 0 2px #fff}.ivy-shop-filter-wrap .ivy-filter-category small{color:#999;font-size:9px}.ivy-shop-filter-wrap .ivy-filter-category i{font-size:11px;font-style:normal;text-align:right}
/* v1.3 strict, non-overlapping responsive filter modes */
@media(min-width:1024px){.ivy-shop-filter-wrap{align-self:start!important;display:block!important;max-width:240px!important;min-width:190px!important;position:relative!important;width:auto!important}.ivy-shop-filter-wrap>.ivy-mobile-filter-trigger{display:none!important}.ivy-shop-filter-wrap>.ivy-filter-overlay{display:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar--desktop{background:#fff!important;border:0!important;border-radius:0!important;bottom:auto!important;box-shadow:none!important;display:block!important;height:auto!important;left:auto!important;margin:0!important;max-height:none!important;max-width:240px!important;min-height:0!important;min-width:190px!important;overflow:visible!important;padding:0!important;position:sticky!important;right:auto!important;top:var(--ff-sticky-top,96px)!important;transform:none!important;width:auto!important}.ivy-shop-filter-wrap .ivy-filter-sidebar--desktop.is-open{transform:none!important}.ivy-shop-filter-wrap .ivy-filter-sidebar--desktop .ivy-filter-form{box-sizing:border-box;max-height:calc(100vh - var(--ff-sticky-top,96px) - 20px)!important;overflow-x:hidden!important;overflow-y:auto!important;padding:0 10px 12px 0;width:auto!important}.ivy-shop-filter-wrap .ivy-filter-section,.ivy-shop-filter-wrap .ivy-filter-section__body,.ivy-shop-filter-wrap .ivy-filter-options,.ivy-shop-filter-wrap .ivy-filter-option{box-sizing:border-box;max-width:100%;min-width:0}.ivy-shop-filter-wrap .ivy-filter-label,.ivy-shop-filter-wrap .ivy-filter-category span{overflow-wrap:anywhere;white-space:normal}.ivy-shop-filter-wrap .ivy-filter-close{display:none!important}}
@media(min-width:768px) and (max-width:1023px){.ivy-shop-filter-wrap{max-width:none!important;min-width:0!important;width:100%!important}.ivy-shop-filter-wrap>.ivy-mobile-filter-trigger{display:flex!important}.ivy-shop-filter-wrap .ivy-filter-drawer--mobile{background:#fff!important;border-radius:0!important;bottom:0!important;box-sizing:border-box!important;height:100dvh!important;left:auto!important;margin:0!important;max-height:100dvh!important;max-width:340px!important;min-width:0!important;overflow-y:auto!important;padding:0 16px 78px!important;position:fixed!important;right:0!important;top:0!important;transform:translateX(105%)!important;width:min(80vw,340px)!important;z-index:100000!important}.ivy-shop-filter-wrap .ivy-filter-drawer--mobile.is-open{transform:translateX(0)!important}.ivy-shop-filter-wrap .ivy-filter-close{display:flex!important}}
@media(max-width:767px){.ivy-shop-filter-wrap{max-width:none!important;min-width:0!important;width:100%!important}.ivy-shop-filter-wrap>.ivy-mobile-filter-trigger{display:flex!important}.ivy-shop-filter-wrap .ivy-filter-drawer--mobile{background:#fff!important;border-radius:0!important;bottom:0!important;box-sizing:border-box!important;height:100dvh!important;left:auto!important;margin:0!important;max-height:100dvh!important;max-width:360px!important;min-width:0!important;overflow-y:auto!important;padding:0 16px 78px!important;position:fixed!important;right:0!important;top:0!important;transform:translateX(105%)!important;width:min(88vw,360px)!important;z-index:100000!important}.ivy-shop-filter-wrap .ivy-filter-drawer--mobile.is-open{transform:translateX(0)!important}.ivy-shop-filter-wrap .ivy-filter-close{display:flex!important}}

/* v1.3.2: the HTML hidden state is authoritative. This must remain after all
   responsive overlay rules so a closed drawer can never leave a backdrop. */
.ivy-shop-filter-wrap > .ivy-filter-overlay[hidden],
.ivy-filter-overlay[hidden] {
  display:none !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
}
