.kbs-product-filter { direction: rtl; font-family: inherit; margin: 0 0 24px; }
.kbs-filter-trigger, .kbs-apply-filter { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 9px; background: #111; color: #fff; cursor: pointer; font: inherit; font-weight: 700; transition: transform .2s, background .2s; }
.kbs-filter-trigger { min-height: 42px; padding: 0 18px; }
.kbs-mobile-filter-fab { display: none; }
.kbs-filter-state { position: fixed; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.kbs-filter-trigger:hover, .kbs-apply-filter:hover { background: #2b2b2b; transform: translateY(-1px); }
.kbs-filter-icon { display: inline-grid; width: 18px; height: 18px; place-items: center; }
.kbs-filter-icon svg, .kbs-fab-icon svg { width: 100%; height: 100%; fill: currentColor; }
.kbs-filter-backdrop { position: fixed; z-index: 99998; inset: 0; visibility: hidden; background: rgba(15, 18, 25, .35); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); opacity: 0; transition: opacity .22s ease, visibility .22s; }
.kbs-filter-sheet { position: fixed; z-index: 99999; right: 50%; bottom: 18px; width: min(560px, calc(100vw - 24px)); max-height: min(760px, calc(100dvh - 36px)); overflow: auto; box-sizing: border-box; padding: 13px 22px 22px; border: 1px solid rgba(255,255,255,.72); border-radius: 24px; color: #171717; visibility: hidden; pointer-events: none; background: linear-gradient(135deg, rgba(255,255,255,.86), rgba(243,246,252,.70)); box-shadow: 0 20px 55px rgba(0,0,0,.25); backdrop-filter: blur(22px) saturate(135%); -webkit-backdrop-filter: blur(22px) saturate(135%); transform: translate(50%, calc(100% + 30px)); opacity: 0; transition: transform .25s ease, opacity .22s ease, visibility .22s; }
.kbs-filter-state:checked ~ .kbs-filter-sheet { visibility: visible; pointer-events: auto; transform: translate(50%, 0); opacity: 1; }
.kbs-filter-state:checked ~ .kbs-filter-backdrop { visibility: visible; opacity: 1; }
.kbs-filter-open { overflow: hidden; }
.kbs-sheet-handle { width: 42px; height: 4px; margin: 0 auto 8px; border-radius: 9px; background: rgba(0,0,0,.22); }
.kbs-filter-header { position: relative; display: flex; justify-content: center; align-items: center; min-height: 34px; border-bottom: 1px solid rgba(0,0,0,.10); }
.kbs-filter-header h2 { margin: 0 0 10px; font-size: 18px; font-weight: 800; }
.kbs-filter-intro { margin: 10px 0 14px; color: #62666b; font-size: 12px; line-height: 1.8; text-align: center; }
.kbs-filter-close { position: absolute; right: 0; top: -3px; padding: 0; border: 0; background: transparent; color: #161616; cursor: pointer; font-size: 30px; font-weight: 300; line-height: 1; }
.kbs-filter-form { padding-top: 12px; }
.kbs-filter-group { min-width: 0; margin: 0 0 18px; padding: 0; border: 0; }
.kbs-filter-group legend { width: 100%; margin-bottom: 10px; font-size: 15px; font-weight: 800; text-align: right; }
.kbs-choice-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.kbs-choice input { position: absolute; opacity: 0; pointer-events: none; }
label.kbs-choice { display: flex !important; min-height: 32px; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,.10); border-radius: 20px; background: rgba(255,255,255,.78); color: #333; cursor: pointer !important; font-size: 13px; transition: .18s ease; user-select: none; }
.kbs-choice.is-selected, .kbs-choice:has(input:checked) { border-color: #161616; background: #161616; color: #fff; box-shadow: 0 4px 10px rgba(0,0,0,.18); }
.kbs-range-wrap { display: grid; gap: 10px; margin: 4px 0 12px; }
.kbs-range-wrap label { display: grid; grid-template-columns: 62px 1fr; align-items: center; gap: 10px; color: #555; font-size: 12px; }
.kbs-range-wrap input[type=range] { position: relative !important; z-index: 2; width: 100% !important; height: 28px !important; margin: 0 !important; padding: 0 !important; appearance: auto !important; -webkit-appearance: auto !important; accent-color: #171717; cursor: ew-resize !important; direction: ltr !important; pointer-events: auto !important; touch-action: none !important; }
.kbs-price-presets { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; margin-top: 12px; }
.kbs-price-presets button { min-height: 36px; padding: 7px 8px; border: 1px solid rgba(0,0,0,.12); border-radius: 9px; background: rgba(255,255,255,.62); color: #444; cursor: pointer; font: inherit; font-size: 12px; transition: .18s ease; }
.kbs-price-presets button:hover, .kbs-price-presets button.is-active { border-color: #171717; background: #171717; color: #fff; }
.kbs-price-inputs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.kbs-price-inputs label { display: flex; align-items: center; gap: 6px; color: #555; font-size: 12px; }
.kbs-price-inputs input { width: 100%; min-width: 0; height: 36px; box-sizing: border-box; border: 1px solid rgba(0,0,0,.18); border-radius: 8px; background: rgba(255,255,255,.58); color: #222; font: inherit; text-align: center; }
.kbs-price-preview { min-height: 20px; margin: 8px 0 0; color: #5b5b5b; font-size: 12px; text-align: center; }
.kbs-product-count { margin: 2px 0 18px; padding: 10px 13px; border: 1px solid rgba(22, 163, 74, .20); border-radius: 10px; background: rgba(22, 163, 74, .08); color: #176c38; font-size: 13px; font-weight: 700; text-align: center; }
.kbs-apply-filter { width: 100%; min-height: 47px; font-size: 15px; }
.kbs-clear-filter { display: block; width: max-content; margin: 14px auto 0; color: #666; font-size: 13px; text-decoration: none; }
.kbs-clear-filter:hover { color: #111; text-decoration: underline; }
@media (max-width: 767px) { .kbs-filter-trigger { display: none; } .kbs-mobile-filter-fab { position: fixed; z-index: 99990; right: 14px; bottom: calc(92px + env(safe-area-inset-bottom)); display: grid; width: 52px; height: 52px; place-items: center; border: 1px solid rgba(196,255,214,.70); border-radius: 50%; background: linear-gradient(135deg, rgba(22,163,74,.82), rgba(5,110,55,.66)); color: #fff; box-shadow: 0 8px 22px rgba(5,110,55,.30), inset 0 1px 1px rgba(255,255,255,.35); backdrop-filter: blur(11px) saturate(145%); -webkit-backdrop-filter: blur(11px) saturate(145%); cursor: pointer; font: inherit; animation: kbs-filter-arrive .7s cubic-bezier(.2,.9,.2,1) .45s both; } .kbs-mobile-filter-fab:active { transform: scale(.94); } .kbs-fab-icon { display: grid; width: 23px; height: 23px; place-items: center; } .kbs-filter-hint { position: absolute; right: calc(100% + 9px); display: block; width: max-content; padding: 8px 11px; border-radius: 12px; border: 1px solid rgba(196,255,214,.45); background: rgba(7,93,45,.84); color: #fff; box-shadow: 0 5px 16px rgba(0,0,0,.20); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-size: 12px; font-weight: 700; line-height: 1; opacity: 0; pointer-events: none; transform: translateX(12px) scale(.94); animation: kbs-filter-hint 5s ease-in-out 1.4s infinite; } .kbs-filter-hint::after { position: absolute; top: 50%; right: -5px; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 6px solid rgba(7,93,45,.84); content: ''; transform: translateY(-50%); } }
@keyframes kbs-filter-arrive { from { right: -64px; opacity: 0; } to { right: 14px; opacity: 1; } }
@keyframes kbs-filter-hint { 0%, 62%, 100% { opacity: 0; transform: translateX(12px) scale(.94); } 10%, 48% { opacity: 1; transform: translateX(0) scale(1); } }
@media (max-width: 480px) { .kbs-filter-sheet { bottom: 8px; width: calc(100vw - 16px); padding-right: 16px; padding-left: 16px; border-radius: 20px; } .kbs-choice-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
