.gfs-root{--gfs-text:#1A1D20;--gfs-accent:#E52E3D;--gfs-border:#E5E7EB;--gfs-soft:#F8F9FA;color:var(--gfs-text);font-family:inherit;box-sizing:border-box;margin:0 0 22px}.gfs-root *{box-sizing:border-box}.gfs-panel{background:#fff;border:1px solid var(--gfs-border);border-radius:18px;padding:20px;box-shadow:0 8px 30px rgba(27,35,50,.035)}.gfs-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.gfs-head strong{display:block;font-size:19px;font-weight:750;line-height:1.3}.gfs-head small{display:block;font-size:12px;color:#8c929b;margin-top:4px}.gfs-section{border-top:1px solid var(--gfs-border);padding:16px 0}.gfs-section h3{font-size:13px;letter-spacing:0;margin:0 0 12px;line-height:1.4;font-weight:700}.gfs-chips{display:flex;flex-wrap:wrap;gap:7px}.gfs-chip{position:relative;margin:0;cursor:pointer}.gfs-chip input{position:absolute;opacity:0;pointer-events:none}.gfs-chip span{display:block;border:1px solid #e3e5e9;border-radius:9px;background:#fff;padding:8px 10px;font-size:12px;line-height:1.25;color:#464a52;transition:background .15s,border-color .15s}.gfs-chip:hover span{border-color:#b5bbc5}.gfs-chip input:checked+span{background:#FFF1F2;border-color:var(--gfs-accent);color:#C51F31}.gfs-chip input:focus-visible+span{outline:2px solid var(--gfs-accent);outline-offset:2px}.gfs-range-title{display:flex;gap:6px;align-items:baseline;margin-bottom:10px}.gfs-range-title strong{font-size:13px}.gfs-range-title small{color:#8b929b;font-size:11px}.gfs-range-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.gfs-range-fields label{display:flex;align-items:center;min-width:0;border:1px solid var(--gfs-border);border-radius:9px;padding:0 9px;margin:0}.gfs-range-fields label span{font-size:11px;color:#848c97;white-space:nowrap}.gfs-range-fields input{width:100%!important;min-width:0!important;box-shadow:none!important;border:0!important;background:transparent!important;padding:10px 4px!important;height:37px!important;font-size:13px!important;outline:none}.gfs-accordion summary{font-size:13px;font-weight:700;cursor:pointer;list-style:none}.gfs-accordion summary:after{content:'+';float:right;color:#737c87}.gfs-accordion[open] summary:after{content:'−'}.gfs-accordion .gfs-chips{margin-top:15px}.gfs-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding-top:8px}.gfs-apply{border:0!important;background:var(--gfs-accent)!important;color:#fff!important;border-radius:10px!important;padding:12px 16px!important;font-size:13px!important;font-weight:700!important;cursor:pointer;flex:1;min-width:120px;min-height:43px}.gfs-reset{color:#69717c!important;font-size:12px!important;text-decoration:none!important}.gfs-mobile-toggle,.gfs-close,.gfs-overlay{display:none}.gfs-root .gfs-chip input{width:1px;height:1px}
@media(max-width:767px){.gfs-mobile-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:13px 16px;background:#fff;border:1px solid var(--gfs-border);border-radius:12px;text-align:left;font-weight:700;color:var(--gfs-text)}.gfs-arrow{margin-left:auto}.gfs-panel{position:fixed;z-index:100002;right:0;top:0;bottom:0;max-width:min(92vw,390px);width:100%;overflow:auto;border-radius:18px 0 0 18px;transform:translateX(110%);visibility:hidden;transition:transform .2s ease,visibility .2s ease;box-shadow:0 15px 70px #0002}.gfs-open .gfs-panel{transform:translateX(0);visibility:visible}.gfs-root .gfs-overlay:not([hidden]){display:block;position:fixed;inset:0;background:rgba(15,18,24,.52);z-index:100001}.gfs-close{display:block;border:0;background:#f1f2f4;color:#333;border-radius:50%;width:32px;height:32px;font-size:23px;line-height:1}.gfs-lock{overflow:hidden}.gfs-actions{position:sticky;bottom:-20px;padding:13px 0;background:#fff}}
/* Optional counters and alternative mobile drawer direction, v2.0 */
.gfs-count{font-size:10px;font-style:normal;font-weight:600;color:#7b8490;white-space:nowrap}.gfs-count[hidden]{display:none}.gfs-unavailable{opacity:.4}.gfs-unavailable:hover span{border-color:#e3e5e9!important}.gfs-empty{font-size:12px;color:#8b929b}
@media(max-width:767px){.gfs-root[data-mobile-side=left] .gfs-panel{right:auto;left:0;border-radius:0 18px 18px 0;transform:translateX(-110%)}.gfs-root[data-mobile-side=left].gfs-open .gfs-panel{transform:translateX(0)}}

.gfs-category-links{display:flex;flex-direction:column;gap:9px}.gfs-category-links a{text-decoration:none;font-size:13px;color:inherit}.gfs-category-links:empty{display:none}.gfs-stock{display:flex;align-items:center;gap:9px;font-size:13px}.gfs-section>.gfs-range-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.gfs-section>.gfs-range-fields label{min-width:0}.gfs-section>.gfs-range-fields input{max-width:100%;box-sizing:border-box;width:100%;border:1px solid #dee1e7;border-radius:8px;padding:8px}.gfs-section>.gfs-range-fields span{display:block;font-size:11px;margin-bottom:5px}

/* GFish Suite 1.0.5: accessible color swatches, limited to spoon main-color facet */
.gfs-color-swatches{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px 3px}
.gfs-color-swatches .gfs-color-chip{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:2px;padding:3px 0;cursor:pointer}
.gfs-color-swatches .gfs-color-dot{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;padding:0;background:var(--gfs-dot);border:1px solid #aeb5bc;box-shadow:inset 0 1px 2px #ffffff45;transition:transform .15s,box-shadow .15s}
.gfs-color-swatches .gfs-color-chip:hover .gfs-color-dot{transform:scale(1.08);border-color:#657080}
.gfs-color-swatches .gfs-color-chip input:checked+.gfs-color-dot{outline:2px solid var(--gfs-accent);outline-offset:2px;box-shadow:inset 0 0 0 2px #fff}
.gfs-color-swatches .gfs-color-chip input:focus-visible+.gfs-color-dot{outline:3px solid #222;outline-offset:3px}
.gfs-color-swatches .gfs-color-check{display:none!important;border:0!important;background:transparent!important;padding:0!important;color:#111!important;font-size:18px!important;font-weight:800!important;line-height:1!important}
.gfs-color-swatches .gfs-color-chip input:checked+.gfs-color-dot .gfs-color-check{display:block!important}
.gfs-color-swatches .gfs-color-caption{display:block!important;border:0!important;background:transparent!important;color:#606871!important;padding:0!important;font-size:10px!important;text-align:center;line-height:1.25;overflow-wrap:anywhere}
.gfs-color-swatches .gfs-color-chip input:checked~.gfs-color-caption{color:var(--gfs-text)!important;font-weight:700}
.gfs-color-swatches .gfs-count{display:none!important}
.gfs-color-swatches .gfs-color-chip{min-height:56px}
@media(max-width:767px){.gfs-color-swatches .gfs-color-chip{min-height:59px}.gfs-color-swatches .gfs-color-dot{width:37px;height:37px}}

/* GFish Suite 1.0.21 — category tree navigation */
.gfs-category-links{gap:5px}
.gfs-category-links a,.gfs-category-links .gfs-nav-current{display:block;padding:7px 9px;border-radius:7px;line-height:1.35;text-decoration:none;color:#353b44;font-size:13px}
.gfs-category-links a:hover,.gfs-category-links a:focus-visible{color:#c9213b;background:#fff1f3;outline-offset:2px}
.gfs-category-links .gfs-nav-all{font-weight:700;color:#c9213b;background:#fff5f6;margin-bottom:5px}
.gfs-category-links .gfs-nav-parent{font-weight:600;color:#646b76}
.gfs-category-links .gfs-nav-current{font-weight:700;color:#c9213b;background:#fff1f3;border-left:2px solid #e52947}
.gfs-category-links .gfs-nav-subheading{font-size:11px;color:#7b8490;margin:10px 9px 3px}
.gfs-category-links .gfs-nav-child{padding-left:18px}

/* v1.0.23: selected filters and local parameter search */
.gfs-ux-tools{padding:0 0 15px}.gfs-ux-selected{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}.gfs-ux-selected[hidden],.gfs-chip[hidden]{display:none!important}.gfs-ux-selected-title{flex-basis:100%;font-size:11px;font-weight:700;color:#697483}.gfs-ux-selected-chip{border:1px solid #f1b8c1!important;background:#fff3f5!important;color:#bf2337!important;padding:5px 8px!important;border-radius:7px!important;min-height:28px!important;font-size:11px!important;line-height:1.3!important;cursor:pointer}.gfs-ux-selected-chip:hover,.gfs-ux-selected-chip:focus-visible{background:#fce4e9!important;border-color:#e52e3d!important}



/* GFish 1.0.26 — scrollable desktop filter panel with pinned actions.
   Only GFish filter elements; does not affect product archives or queries. */
@media (min-width: 768px) {
  .gfs-root {
    position: sticky;
    top: 16px;
    align-self: flex-start;
    max-height: calc(100dvh - 32px);
    min-height: 0;
    z-index: 8;
  }
  .gfs-root .gfs-panel {
    display: flex;
    flex-direction: column;
    max-height: calc(100dvh - 32px);
    min-height: 0;
    overflow: hidden;
    padding-bottom: 0;
  }
  .gfs-root .gfs-head {
    flex: 0 0 auto;
  }
  .gfs-root .gfs-form {
    min-height: 0;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior-y: contain;
    scrollbar-width: thin;
    scrollbar-color: #cbd0d8 transparent;
    padding-right: 3px;
  }
  .gfs-root .gfs-actions {
    position: sticky;
    bottom: 0;
    z-index: 3;
    background: #fff;
    border-top: 1px solid var(--gfs-border);
    padding: 12px 0 16px;
    margin-top: 6px;
    box-shadow: 0 -10px 14px -12px rgba(25,35,55,.15);
  }
}
@media (max-width: 767px) {
  .gfs-root .gfs-panel { display:flex; flex-direction:column; overflow:hidden; padding-bottom:0; }
  .gfs-root .gfs-head { flex:0 0 auto; }
  .gfs-root .gfs-form {
    display:block;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overscroll-behavior-y:contain;
  }
  .gfs-root .gfs-actions {
    position:sticky;
    bottom:0;
    z-index:3;
    background:#fff;
    padding:12px 0 18px;
    border-top:1px solid var(--gfs-border);
    box-shadow:0 -10px 14px -12px rgba(25,35,55,.15);
  }
}

/* 1.0.27: genuine three-part layout: fixed header, independent scroll body, fixed footer */
.gfs-root .gfs-panel { display:flex; flex-direction:column; min-height:0; }
.gfs-root .gfs-form { display:flex; flex-direction:column; flex:1 1 auto; min-height:0; overflow:hidden; }
.gfs-root .gfs-scroll-area { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; scrollbar-width:thin; padding-right:4px; }
.gfs-root .gfs-actions { flex:0 0 auto; position:relative; bottom:auto; margin:0; padding:12px 0 14px; background:white; border-top:1px solid var(--gfs-border); box-shadow:0 -8px 18px -15px #2225; }
.gfs-root .gfs-head { flex:0 0 auto; }
.gfs-root .gfs-modal-toggle { display:inline-flex; justify-content:center; align-items:center; margin:0 0 10px; width:100%; min-height:38px; border-radius:9px; border:1px solid #e2e5e9; background:white; font-weight:650; font-size:12px; cursor:pointer; color:#333; }
.gfs-root .gfs-modal-toggle:hover { border-color:var(--gfs-accent); color:var(--gfs-accent); }
@media(min-width:768px){
 .gfs-root { position:sticky; top:12px; z-index:25; max-height:calc(100dvh - 24px); }
 .gfs-root .gfs-panel { height:calc(100dvh - 76px); max-height:calc(100dvh - 76px); overflow:hidden; }
 .gfs-root .gfs-form { overflow:hidden; }
 .gfs-root.gfs-modal-open .gfs-overlay:not([hidden]) { display:block; position:fixed; inset:0; z-index:100001; background:rgba(15,18,24,.55); }
 .gfs-root.gfs-modal-open .gfs-panel { position:fixed; inset:5dvh auto auto 50%; transform:translateX(-50%); width:min(540px,calc(100vw - 32px)); max-width:none; height:90dvh; max-height:90dvh; z-index:100002; box-shadow:0 25px 85px #1115; border-radius:16px; padding:20px; }
 .gfs-root.gfs-modal-open .gfs-close { display:block; }
}
@media(max-width:767px){
 .gfs-root .gfs-modal-toggle { display:none; }
 .gfs-root .gfs-panel { height:100dvh; max-height:100dvh; }
 .gfs-root .gfs-scroll-area { overflow-y:auto; }
 .gfs-root .gfs-form { overflow:hidden; }
}

/* 1.0.28: true upper-layer desktop dialog; icon is in the filter header. */
.gfs-root .gfs-head-controls{display:flex;align-items:center;gap:6px;flex:0 0 auto}
.gfs-root .gfs-head .gfs-modal-toggle{display:inline-flex;width:34px;height:34px;min-height:34px;margin:0;padding:0;line-height:1;align-items:center;justify-content:center;font-size:22px;font-weight:500;background:#f5f6f8;border:1px solid #e3e6eb;border-radius:8px}
.gfs-root .gfs-head .gfs-modal-toggle:hover,.gfs-root .gfs-head .gfs-modal-toggle:focus-visible{background:#fff0f3;border-color:#e52e3d;color:#c91f3b}
@media(min-width:768px){
 .gfs-root.gfs-popup-portal{position:fixed!important;inset:0!important;margin:0!important;max-height:none!important;width:100vw!important;height:100dvh!important;z-index:2147483000!important;pointer-events:none}
 .gfs-root.gfs-popup-portal .gfs-overlay:not([hidden]){display:block!important;position:fixed;inset:0;z-index:1;background:rgba(18,22,30,.56);pointer-events:auto}
 .gfs-root.gfs-popup-portal .gfs-panel{position:absolute!important;top:50%!important;left:50%!important;right:auto!important;bottom:auto!important;inset:auto!important;transform:translate(-50%,-50%)!important;width:min(680px,calc(100vw - 48px))!important;max-width:none!important;height:min(800px,calc(100dvh - 48px))!important;max-height:calc(100dvh - 48px)!important;z-index:2!important;pointer-events:auto;border-radius:18px!important;box-shadow:0 30px 90px #0004!important}
 .gfs-root.gfs-popup-portal .gfs-close{display:inline-flex;align-items:center;justify-content:center}
}
@media(max-width:767px){.gfs-root .gfs-head .gfs-modal-toggle{display:none!important}}

/* 1.0.29: viewport-centered dialog and context-aware close button */
@media (min-width:768px){
.gfs-root:not(.gfs-modal-open) .gfs-head .gfs-close{display:none!important}
body>.gfs-root.gfs-modal-open.gfs-popup-portal{position:fixed!important;inset:0!important;width:100%!important;height:100dvh!important;margin:0!important;padding:0!important;transform:none!important;max-width:none!important;max-height:none!important;overflow:visible!important;isolation:isolate!important;z-index:2147483000!important}
body>.gfs-root.gfs-modal-open.gfs-popup-portal>.gfs-panel{position:fixed!important;inset:0!important;margin:auto!important;transform:none!important;box-sizing:border-box!important;width:min(680px,calc(100vw - 48px))!important;height:min(800px,calc(100dvh - 48px))!important;max-width:calc(100vw - 48px)!important;max-height:calc(100dvh - 48px)!important;visibility:visible!important;z-index:2!important}
body>.gfs-root.gfs-modal-open.gfs-popup-portal .gfs-head .gfs-close{display:inline-flex!important;align-items:center;justify-content:center}
}


/* v1.0.30: readable disclosure controls, with clear open/closed state.
   Native <details> continues to handle mouse, keyboard and accessibility. */
.gfs-root details.gfs-accordion > summary {
  display:flex!important;align-items:center;justify-content:space-between;
  gap:12px;min-height:44px;padding:11px 2px!important;
  cursor:pointer;list-style:none;position:relative;
  color:#242a33;font-size:13px;line-height:1.35;font-weight:700;
}
.gfs-root details.gfs-accordion > summary::-webkit-details-marker {display:none}
.gfs-root details.gfs-accordion > summary::after {
  content:""!important;display:block!important;float:none!important;
  width:9px;height:9px;flex:0 0 9px;
  border-right:2px solid #747e8a;border-bottom:2px solid #747e8a;
  transform:rotate(45deg);transition:transform .18s ease;
  margin:0 5px 4px 0;
}
.gfs-root details.gfs-accordion[open] > summary::after {
  transform:rotate(225deg);margin:5px 5px 0 0;
}
.gfs-root details.gfs-accordion > summary:hover {color:#d51f3c}
.gfs-root details.gfs-accordion > summary:focus-visible {
  outline:2px solid #e52e3d;outline-offset:3px;border-radius:6px;
}
.gfs-root details.gfs-accordion .gfs-chips {margin-top:3px;margin-bottom:6px}
.gfs-root .gfs-head .gfs-modal-toggle {
  position:relative;cursor:pointer;
}
.gfs-root .gfs-head .gfs-modal-toggle:focus-visible {outline:2px solid #e52e3d;outline-offset:2px}
.gfs-root.gfs-modal-open .gfs-head .gfs-modal-toggle {display:none!important}

/* AJAX: feedback without losing sidebar position or focus */
.gfs-results-loading {opacity:.55;pointer-events:none;transition:opacity .15s ease;}
.gfs-root .gfs-manual-fallback {display:none!important;}
@media (prefers-reduced-motion:reduce){.gfs-results-loading{transition:none}}
