/* Elementor Product Filter Repeater — styled controls */
.epfr {
  --epfr-cb-size: 18px;
  --epfr-cb-radius: 4px;
  --epfr-cb-border: #c8c8c8;
  --epfr-cb-border-checked: #111111;
  --epfr-cb-bg: #ffffff;
  --epfr-cb-bg-checked: #111111;
  --epfr-cb-tick: #ffffff;
  --epfr-cb-tick-w: 2px;
  --epfr-cb-gap: .5rem;
  --epfr-item-mt: 0;
  --epfr-item-mb: 0;
  --epfr-sep-before: 0;
  --epfr-sep-after: 0;
  --epfr-item-mt: 0;
  --epfr-item-mb: 0;
  --epfr-label-color: inherit;
  --epfr-label-color-checked: inherit;
}

.epfr .epfr-group { margin-bottom: 1rem; }
.epfr .epfr-group__header { font-weight: 600; margin-bottom: .5rem; }

.epfr .epfr-option {
  margin-top: var(--epfr-item-mt);
  margin-bottom: var(--epfr-item-mb);
  display: flex; align-items: center; gap: var(--epfr-cb-gap);
  position: relative;
}
.epfr .epfr-checkbox { position: absolute; opacity: 0; pointer-events: none; }

.epfr .epfr-checkbox__box {
  width: var(--epfr-cb-size); height: var(--epfr-cb-size);
  border: 1px solid var(--epfr-cb-border);
  border-radius: var(--epfr-cb-radius);
  background: var(--epfr-cb-bg);
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
}
.epfr .epfr-checkbox:checked + .epfr-checkbox__box {
  background: var(--epfr-cb-bg-checked);
  border-color: var(--epfr-cb-border-checked);
}

/* Tick */
.epfr .epfr-checkbox__box::after {
  content: '';
  width: calc(var(--epfr-cb-size) * 0.5);
  height: calc(var(--epfr-cb-size) * 0.28);
  border-left: var(--epfr-cb-tick-w) solid var(--epfr-cb-tick);
  border-bottom: var(--epfr-cb-tick-w) solid var(--epfr-cb-tick);
  transform: rotate(-45deg);
  opacity: 0;
}
.epfr .epfr-checkbox:checked + .epfr-checkbox__box::after { opacity: 1; }

/* Label */
.epfr .epfr-option .epfr-checkbox__label { line-height: 1.3; color: var(--epfr-label-color); }
.epfr .epfr-checkbox:checked ~ .epfr-checkbox__label { color: var(--epfr-label-color-checked); }

/* Accessible focus */
.epfr .epfr-checkbox:focus-visible + .epfr-checkbox__box { outline: 2px solid currentColor; outline-offset: 2px; }


/* Separator between options (controlled from Elementor) */
.epfr .epfr-group .epfr-option:not(:last-child) { border-bottom: none; }


/* Separator line block + spacing */
.epfr .epfr-group .epfr-option:not(:last-child) { border-bottom: none; padding-bottom: var(--epfr-sep-before); margin-bottom: var(--epfr-sep-after); }

/* Prevent top margin & margin-collapsing */
.elementor-widget-category_filter_switcher .epfr > form.ecpf-filter-form{margin:0;padding-top:0}
.elementor-widget-category_filter_switcher .epfr{display:flow-root}
