.bensini-filters-ux {
  --bfx-text:#171414; --bfx-muted:#6b6561; --bfx-border:#ddd7d2; --bfx-surface:#fff;
  --bfx-surface-soft:#f8f5f3; --bfx-accent:#a61246; --bfx-radius:24px;
  --bfx-shadow:0 16px 45px rgba(43,31,34,.13); color:var(--bfx-text); position:relative; z-index:20;
  font:inherit; margin:0 0 24px;
}
.bensini-filters-ux *, .bfx-popover *, .bfx-overlay * { box-sizing:border-box; }
.bfx-desktop { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
.bfx-mobile { display:none; gap:10px; }
.bfx-pill,.bfx-mobile-button,.bfx-action,.bfx-option,.bfx-sheet__close,.bfx-accordion__trigger {
  appearance:none; font:inherit; color:var(--bfx-text,#171414); background:var(--bfx-surface,#fff); border:1px solid var(--bfx-border,#ddd7d2); cursor:pointer;
}
.bfx-pill { border-radius:var(--bfx-radius); min-height:44px; padding:9px 20px; line-height:1.2; }
.bfx-pill::after { content:'⌄'; margin-left:9px; color:var(--bfx-muted); }
.bfx-pill--all::after { content:''; margin:0; }
.bfx-pill:hover,.bfx-mobile-button:hover { background:var(--bfx-surface-soft); border-color:#c9c0ba; }
.bfx-pill.is-active { border-color:rgba(166,18,70,.5); background:#fff8fa; color:var(--bfx-accent); }
.bfx-pill:focus-visible,.bfx-mobile-button:focus-visible,.bfx-action:focus-visible,.bfx-option:focus-visible,.bfx-sheet__close:focus-visible,.bfx-accordion__trigger:focus-visible,.bfx-search:focus-visible,.bfx-sort select:focus-visible { outline:3px solid rgba(166,18,70,.28); outline-offset:2px; }
.bfx-sort { display:flex; align-items:center; border:1px solid var(--bfx-border); border-radius:var(--bfx-radius); min-height:44px; padding-left:18px; background:var(--bfx-surface); }
.bfx-sort select { max-width:180px; border:0; background:transparent; color:var(--bfx-text); font:inherit; padding:8px 32px 8px 5px; }
.bfx-popover { --bfx-text:#171414; --bfx-muted:#6b6561; --bfx-border:#ddd7d2; --bfx-surface:#fff; --bfx-surface-soft:#f8f5f3; --bfx-accent:#a61246;
  position:fixed; z-index:99990; display:flex; width:min(390px,calc(100vw - 24px)); max-height:min(560px,calc(100vh - 24px)); flex-direction:column; overflow:hidden; border:1px solid var(--bfx-border); border-radius:15px; background:var(--bfx-surface); box-shadow:0 16px 45px rgba(43,31,34,.13); color:var(--bfx-text); }
.bfx-popover[hidden],.bfx-overlay[hidden] { display:none!important; }
.bfx-popover__body { min-height:0; max-height:470px; flex:1 1 auto; padding:16px; overflow:auto; }
.bfx-search { width:100%; min-height:42px; margin:0 0 12px; padding:8px 12px; border:1px solid var(--bfx-border); border-radius:10px; font:inherit; }
.bfx-options { display:grid; gap:7px; }
.bfx-options--size { grid-template-columns:repeat(auto-fill,minmax(min(76px,100%),1fr)); }
.bfx-option { display:flex; width:100%; min-height:44px; align-items:center; gap:10px; padding:9px 11px; border-radius:10px; text-align:left; }
.bfx-options--size .bfx-option { position:relative; min-width:0; justify-content:center; padding-right:25px; text-align:center; }
.bfx-options--size .bfx-option__label { flex:0 1 auto; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.bfx-options--size .bfx-option__tick { position:absolute; top:50%; right:8px; transform:translateY(-50%); }
.bfx-option:hover { background:var(--bfx-surface-soft); }
.bfx-option[aria-pressed="true"] { border-color:var(--bfx-accent); background:#fff8fa; }
.bfx-option__label { min-width:0; flex:1; overflow-wrap:anywhere; }
.bfx-option__count { color:var(--bfx-muted); font-size:.88em; }
.bfx-option__tick { color:var(--bfx-accent); opacity:0; }
.bfx-option[aria-pressed="true"] .bfx-option__tick { opacity:1; }
.bfx-swatch { flex:0 0 25px; width:25px; height:25px; border:1px solid #d8d3cf; border-radius:50%; background:#e3dedb; background-size:cover; }
.bfx-swatch--fallback { background:linear-gradient(135deg,#f3efec 0 48%,#d3cbc5 49% 52%,#f3efec 53%); }
.bfx-footer { position:sticky; bottom:0; display:flex; justify-content:space-between; gap:12px; padding:13px 16px calc(13px + env(safe-area-inset-bottom)); border-top:1px solid var(--bfx-border); background:rgba(255,255,255,.97); }
.bfx-action { min-height:44px; padding:9px 18px; border-radius:23px; }
.bfx-action--clear { background:#fff; }
.bfx-action--apply { border-color:#7a6257; background:#7a6257; color:#fff; }
.bfx-action--apply:hover { border-color:#695248; background:#695248; color:#fff; }
.bfx-action--apply:active { border-color:#5c473f; background:#5c473f; color:#fff; }
.bfx-action--apply:focus-visible { outline-color:rgba(122,98,87,.38); }
.wpfMainWrapper.bensini-filters-enhanced { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.woocommerce-ordering.bensini-sort-source-enhanced,.orderby.bensini-sort-source-enhanced { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.bensini-top-filters.bensini-filters-source-enhanced { margin:0!important; padding:0!important; border:0!important; min-height:0!important; }
.bfx-overlay { --bfx-text:#171414; --bfx-muted:#6b6561; --bfx-border:#ddd7d2; --bfx-surface:#fff; --bfx-surface-soft:#f8f5f3; --bfx-accent:#a61246;
  position:fixed; z-index:99999; inset:0; display:flex; justify-content:flex-end; background:rgba(24,17,19,.35); color:var(--bfx-text); }
.bfx-sheet { display:flex; width:min(560px,100%); height:100%; flex-direction:column; background:var(--bfx-surface); box-shadow:-14px 0 50px rgba(0,0,0,.13); }
.bfx-sheet__header { display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--bfx-border); }
.bfx-sheet__header h2 { margin:0; color:var(--bfx-text); font-size:1.35rem; }
.bfx-sheet__close { width:42px; height:42px; border-radius:50%; font-size:28px; line-height:1; }
.bfx-sheet__body { flex:1; padding:4px 20px 24px; overflow:auto; }
.bfx-accordion { border-bottom:1px solid var(--bfx-border); }
.bfx-accordion__trigger { display:flex; width:100%; justify-content:space-between; padding:18px 0; border:0; background:transparent; font-weight:600; text-align:left; }
.bfx-accordion__trigger::after { content:'+'; }.bfx-accordion__trigger[aria-expanded="true"]::after { content:'−'; }
.bfx-accordion__content { padding:0 0 18px; }
.bfx-scroll-lock { overflow:hidden!important; }
@media (prefers-reduced-motion:no-preference) { .bfx-sheet { animation:bfx-in .18s ease-out; } @keyframes bfx-in { from { transform:translateY(24px); opacity:.75; } } }
