.gfe-filter-trigger{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.gfe-filter-trigger svg{width:20px;height:20px}
.gfe-filter-panel{background:#fff;color:var(--ink);padding:24px;max-width:650px;margin:auto}
.gfe-filter-dialog{position:fixed;inset:0 0 0 auto;width:min(650px,100vw);height:100dvh;max-width:100vw;max-height:100dvh;padding:0;margin:0 0 0 auto;border:0;overflow:hidden;background:#fff;color:var(--ink)}
.gfe-filter-dialog::backdrop{background:#0007}
.gfe-filter-dialog[open]{animation:gfe-filter-enter .2s ease-out}
@keyframes gfe-filter-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
.gfe-filter-open{overflow:hidden}
.gfe-filter-dialog .gfe-filter-panel{display:flex;flex-direction:column;height:100%;max-width:none;padding:0}
.gfe-filter-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 36px;border-bottom:1px solid var(--line);flex:none}
.gfe-filter-heading h2{font-size:29px}
.gfe-filter-close{font-size:28px;font-weight:300;line-height:1;min-width:44px;min-height:44px}
.gfe-filter-form{display:flex;flex-direction:column;min-height:0;flex:1}
.gfe-filter-body{overflow-y:auto;overscroll-behavior:contain;padding:0 36px 25px;flex:1}
.gfe-filter-sort{border:0;padding:26px 0 30px;margin:0;min-width:0}
.gfe-filter-sort legend{float:left;width:100%;margin-bottom:18px;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.gfe-sort-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;clear:both}
.gfe-sort-options label,.gfe-filter-choices label{position:relative;cursor:pointer;display:flex;min-width:0}
.gfe-sort-options input,.gfe-filter-choices input{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}
.gfe-sort-options span,.gfe-filter-choices span{display:flex;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 14px;border:1px solid #c9cac5;border-radius:7px;font-size:12px;line-height:1.4;text-align:center}
.gfe-sort-options input:checked+span,.gfe-filter-choices input:checked+span{background:var(--ink);border-color:var(--ink);color:white}
.gfe-sort-options input:focus-visible+span,.gfe-filter-choices input:focus-visible+span{outline:2px solid #555b45;outline-offset:3px}
.gfe-filter-group{border-top:1px solid var(--line)}
.gfe-filter-group>summary{display:flex;justify-content:space-between;align-items:center;list-style:none;min-height:73px;padding:24px 0;font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}
.gfe-filter-group>summary::-webkit-details-marker{display:none}
.gfe-filter-group>summary::after{content:'+';font-size:20px;font-weight:400}
.gfe-filter-group[open]>summary::after{content:'−'}
.gfe-filter-choices{display:flex;flex-wrap:wrap;gap:10px;padding:0 0 28px}
.gfe-filter-size label{min-width:64px}
.gfe-filter-price{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding-bottom:28px}
.gfe-filter-price label{font-size:12px;min-width:0}
.gfe-filter-price input{display:block;width:100%;margin-top:10px;border-radius:6px;font-size:14px}
.gfe-filter-footer{flex:none;display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:20px 24px max(20px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fff}
.gfe-filter-done{background:var(--ink);color:#fff;min-height:52px;flex:1;padding:14px 20px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.gfe-filter-reset{padding:12px 0;min-height:44px;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.gfe-applied-filters{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.gfe-applied-filters a{display:inline-flex;gap:15px;align-items:center;min-height:36px;padding:7px 12px;border:1px solid var(--line);border-radius:20px;font-size:11px}
.gfe-applied-filters .gfe-clear-link{border:0;text-decoration:underline}
@media(max-width:700px){.gfe-filter-dialog{width:100%}.gfe-filter-heading{padding:16px 20px}.gfe-filter-heading h2{font-size:26px}.gfe-filter-body{padding:0 20px 20px}.gfe-filter-footer{padding-left:20px;padding-right:20px}.gfe-filter-trigger{font-size:10px}.gfe-filter-price{gap:10px}.gfe-filter-choices{gap:8px}.gfe-filter-choices span{padding:10px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.gfe-filter-dialog[open]{animation:none}}
