/**
 * Glaze re-skin for the Modern Attribute Filter plugin (zc_plugins).
 *
 * The plugin renders a self-contained `.modern-filter` subtree with its own
 * blue/neutral design tokens. We do NOT edit the plugin source (keeps upgrades
 * clean); instead this stylesheet re-skins that subtree to match the Glaze
 * design system (rose #D6336C brand, soft cards, pill chips, re-drawn
 * checkboxes and color swatches) using descendant selectors + !important so it
 * wins over the plugin's own modern_filter.css (which is loaded earlier).
 *
 * Functional classes used by modern_filter.js are preserved:
 *   .modern-filter, .modern-filter-loading-overlay, .modern-filter-spinner,
 *   .modern-filter-close-btn, .modern-filter-clear-all,
 *   .modern-filter-group, .modern-filter-option, .modern-filter-input,
 *   .modern-filter-color-swatch / -image-swatch, .modern-filter-visual, etc.
 */

/* ===== Root container ===== */
.modern-filter {
  background: var(--surface) !important;
  border: 1px solid var(--line) !important;
  border-radius: var(--r-md) !important;
  padding: 18px 16px !important;
  margin-bottom: 16px !important;
  box-shadow: 0 1px 3px rgba(31, 29, 32, 0.04) !important;
  position: relative !important;
}

/* Header row: title + clear-all */
.modern-filter .modern-filter-header {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  margin-bottom: 14px !important;
  padding-bottom: 12px !important;
  border-bottom: 1px solid var(--line) !important;
}
.modern-filter .modern-filter-header h3 {
  margin: 0 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: var(--ink) !important;
  font-family: inherit !important;
}

/* Clear-all pill — brand-tinted instead of red block */
.modern-filter .modern-filter-clear-all {
  display: none !important;
}
.modern-filter .modern-filter-clear-all[style*="display: inline-block"] {
  display: inline-block !important;
  background: var(--brand-light) !important;
  border: 1px solid var(--brand) !important;
  color: var(--brand) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  padding: 3px 10px !important;
  border-radius: var(--r-pill) !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}
.modern-filter .modern-filter-clear-all[style*="display: inline-block"]:hover {
  background: var(--brand) !important;
  color: #fff !important;
}

/* ===== Filter groups (attribute / price / category / brand) ===== */
.modern-filter .modern-filter-group {
  margin-bottom: 18px !important;
  animation: none !important;
}
.modern-filter .modern-filter-group:last-child {
  margin-bottom: 0 !important;
}
.modern-filter .modern-filter-group-title {
  font-size: 13px !important;
  font-weight: 600 !important;
  margin: 0 0 10px 0 !important;
  color: var(--ink) !important;
  font-family: inherit !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
}

/* Attribute sub-group */
.modern-filter .modern-filter-attribute-group {
  margin-bottom: 14px !important;
}
.modern-filter .modern-filter-attribute-group:last-child {
  margin-bottom: 0 !important;
}
.modern-filter .modern-filter-attribute-name {
  font-size: 13px !important;
  font-weight: 500 !important;
  margin: 0 0 8px 0 !important;
  color: var(--ink-2) !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-attribute-values {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding-left: 0 !important;
}

/* Search input inside a group */
.modern-filter .modern-filter-search-input {
  width: 100% !important;
  padding: 7px 10px !important;
  font-size: 12px !important;
  border: 1px solid var(--input) !important;
  border-radius: var(--r-sm) !important;
  outline: none !important;
  color: var(--ink) !important;
  background: #fff !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-search-input:focus {
  border-color: var(--brand) !important;
}

/* ===== Option rows (checkbox + label + count) ===== */
.modern-filter .modern-filter-options {
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}
.modern-filter .modern-filter-option {
  display: flex !important;
  align-items: center !important;
  cursor: pointer !important;
  padding: 6px 8px !important;
  border-radius: var(--r-sm) !important;
  transition: background-color .15s !important;
  gap: 10px !important;
}
.modern-filter .modern-filter-option:hover {
  background-color: var(--brand-light) !important;
}

/* Re-draw the native checkbox to match Glaze filter-item style */
.modern-filter .modern-filter-option input[type="checkbox"].modern-filter-input {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 16px !important;
  height: 16px !important;
  border: 1.5px solid var(--input) !important;
  border-radius: 3px !important;
  cursor: pointer !important;
  position: relative !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  background: #fff !important;
  transition: all .15s !important;
}
.modern-filter .modern-filter-option input[type="checkbox"].modern-filter-input:checked {
  background: var(--brand) !important;
  border-color: var(--brand) !important;
}
.modern-filter .modern-filter-option input[type="checkbox"].modern-filter-input:checked::after {
  content: '' !important;
  position: absolute !important;
  left: 4px !important;
  top: 1px !important;
  width: 5px !important;
  height: 9px !important;
  border: solid #fff !important;
  border-width: 0 2px 2px 0 !important;
  transform: rotate(45deg) !important;
}
.modern-filter .modern-filter-option input[type="checkbox"].modern-filter-input:disabled {
  cursor: not-allowed !important;
  opacity: .5 !important;
}

.modern-filter .modern-filter-label {
  flex: 1 !important;
  color: var(--ink-2) !important;
  font-size: 13px !important;
  font-family: inherit !important;
  line-height: 1.4 !important;
}
.modern-filter .modern-filter-option:hover .modern-filter-label {
  color: var(--ink) !important;
}
.modern-filter .modern-filter-count {
  color: var(--ink-3) !important;
  font-size: 12px !important;
  margin-left: auto !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-option input[type="checkbox"]:disabled + .modern-filter-label {
  color: var(--ink-3) !important;
  cursor: not-allowed !important;
}

/* ===== Visual color / image swatches ===== */
.modern-filter .modern-filter-attribute-values:has(.modern-filter-visual) {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding-left: 0 !important;
}
.modern-filter .modern-filter-visual {
  padding: 2px !important;
  border-radius: 50% !important;
  position: relative !important;
  line-height: 0 !important;
}
.modern-filter .modern-filter-visual .modern-filter-input {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
}
.modern-filter .modern-filter-color-swatch,
.modern-filter .modern-filter-image-swatch {
  width: 30px !important;
  height: 30px !important;
  border-radius: 50% !important;
  border: 2px solid var(--line) !important;
  display: inline-block !important;
  cursor: pointer !important;
  transition: all .2s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  flex-shrink: 0 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1) !important;
}
.modern-filter .modern-filter-visual:hover .modern-filter-color-swatch,
.modern-filter .modern-filter-visual:hover .modern-filter-image-swatch {
  transform: scale(1.15) !important;
  border-color: var(--brand) !important;
  z-index: 2 !important;
}
.modern-filter .modern-filter-visual input[type="checkbox"]:checked + .modern-filter-color-swatch,
.modern-filter .modern-filter-visual input[type="checkbox"]:checked + .modern-filter-image-swatch {
  border-color: var(--brand) !important;
  border-width: 2px !important;
  box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--brand) !important;
  transform: scale(1.1) !important;
}

/* ===== Price filter ===== */
.modern-filter .modern-filter-price-slider-wrapper {
  margin-bottom: 10px !important;
  padding: 0 !important;
}
.modern-filter .modern-filter-price-inputs {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}
.modern-filter .modern-filter-price-inputs input {
  width: 64px !important;
  padding: 6px 8px !important;
  border: 1px solid var(--input) !important;
  border-radius: var(--r-sm) !important;
  font-size: 12px !important;
  color: var(--ink) !important;
  background: #fff !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-price-inputs input:focus {
  border-color: var(--brand) !important;
  outline: none !important;
}
.modern-filter .modern-filter-price-go {
  padding: 6px 12px !important;
  background-color: var(--brand) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-sm) !important;
  cursor: pointer !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-price-go:hover {
  background-color: var(--brand-hover) !important;
}

/* ===== Mobile trigger / close button (brand tinted) ===== */
.modern-filter .modern-filter-mobile-trigger {
  display: none !important;
  padding: 6px 15px !important;
  background-color: var(--brand) !important;
  color: #fff !important;
  border: none !important;
  border-radius: var(--r-sm) !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-size: 14px !important;
  font-family: inherit !important;
}
.modern-filter .modern-filter-close-btn {
  display: none !important;
  position: absolute !important;
  top: 10px !important;
  right: 10px !important;
  background: none !important;
  border: none !important;
  font-size: 1.5rem !important;
  cursor: pointer !important;
  color: var(--ink-2) !important;
}

/* ===== Loading overlay (keep transparent, rose spinner) ===== */
.modern-filter .modern-filter-loading-overlay {
  background: rgba(255, 255, 255, 0.7) !important;
  border-radius: var(--r-md) !important;
}
.modern-filter .modern-filter-spinner {
  width: 30px !important;
  height: 30px !important;
  border: 3px solid var(--surface-3) !important;
  border-top: 3px solid var(--brand) !important;
  border-radius: 50% !important;
  animation: spin 1s linear infinite !important;
}

/* ===== No-options / loading text ===== */
.modern-filter .modern-filter-no-options {
  text-align: center !important;
  padding: 14px !important;
  color: var(--ink-3) !important;
  font-style: italic !important;
  font-size: 13px !important;
}
.modern-filter .modern-filter-loading {
  text-align: center !important;
  padding: 14px !important;
  color: var(--ink-3) !important;
  font-size: 13px !important;
}

/* ===== Mobile drawer behavior (preserve, rose accents) ===== */
@media (max-width: 768px) {
  .modern-filter .modern-filter-mobile-trigger {
    display: flex !important;
  }
  .modern-filter .modern-filter-close-btn {
    display: block !important;
  }
  .modern-filter.modern-filter {
    box-shadow: 2px 0 16px rgba(31, 29, 32, 0.12) !important;
  }
}
