/* ============================================================
   CGA Shop Filter
   Sidebar, toolbar and mobile drawer.

   The shortcodes render into separate Elementor columns, so
   tokens live on :root rather than a shared wrapper. Everything
   else is scoped to .cga-f / #cgaToolbar so nothing leaks into
   the theme.
   ============================================================ */

:root{
  --cgaf-navy:#16263D;
  --cgaf-gold:#A8813F;
  --cgaf-gold-soft:#C9A96A;
  --cgaf-paper:#FBF8F4;
  --cgaf-ink:#22303F;
  --cgaf-muted:#6B7789;
  --cgaf-line:#DFD5C8;
  --cgaf-display:"Cormorant Garamond","Iowan Old Style",Georgia,serif;
  --cgaf-body:"Jost","Avenir Next","Segoe UI",system-ui,sans-serif;
}

.cga-f,
#cgaToolbar{
  font-family:var(--cgaf-body);
  font-weight:300;
  font-size:15.5px;
  line-height:1.6;
  color:var(--cgaf-ink);
}
.cga-f *,.cga-f *::before,.cga-f *::after,
#cgaToolbar *,#cgaToolbar *::before,#cgaToolbar *::after{box-sizing:border-box}
.cga-f :focus-visible,
#cgaToolbar :focus-visible{outline:2px solid var(--cgaf-gold);outline-offset:2px}

/* ---------------- sidebar ---------------- */

.cga-f{position:sticky;top:24px}

.cga-f__legend{
  font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--cgaf-muted);margin:0 0 1.6rem;
}

.cga-f__group{border-bottom:1px solid var(--cgaf-line);padding-bottom:1.5rem;margin-bottom:1.5rem}
.cga-f__group:last-of-type{border-bottom:0}

.cga-f__toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:none;border:0;padding:0 0 1rem;cursor:pointer;
  font-family:var(--cgaf-display);font-size:1.16rem;font-weight:500;color:var(--cgaf-navy);
  line-height:1.2;text-align:left;
}
.cga-f__toggle .sign{
  font-family:var(--cgaf-body);font-size:1.1rem;font-weight:300;color:var(--cgaf-muted);
  line-height:1;flex:none;
}
.cga-f__toggle[aria-expanded="false"] .sign::before{content:"+"}
.cga-f__toggle[aria-expanded="true"]  .sign::before{content:"\2212"}
.cga-f__panel[hidden]{display:none}

.cga-f__opts{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.72rem}
.cga-f__opts li{margin:0;padding:0;list-style:none}

.cga-f__opt{display:flex;align-items:center;gap:.7rem;cursor:pointer;user-select:none;margin:0}
.cga-f__opt input[type=checkbox]{
  appearance:none;-webkit-appearance:none;flex:none;margin:0;
  width:15px;height:15px;border:1px solid #B9AE9E;background:#fff;
  border-radius:1px;cursor:pointer;display:grid;place-items:center;
  transition:background .15s,border-color .15s;
}
.cga-f__opt input[type=checkbox]:checked{background:var(--cgaf-navy);border-color:var(--cgaf-navy)}
.cga-f__opt input[type=checkbox]:checked::after{
  content:"";width:8px;height:4.5px;margin-top:-2px;
  border-left:1.6px solid #fff;border-bottom:1.6px solid #fff;transform:rotate(-45deg);
}
.cga-f__opt input[type=checkbox]:disabled{background:#EFE9E0;border-color:#DDD3C6;cursor:not-allowed}
.cga-f__opt .label{flex:1;color:var(--cgaf-ink);font-size:.9rem}
.cga-f__opt .count{font-size:.78rem;color:var(--cgaf-muted);font-variant-numeric:tabular-nums;flex:none}
.cga-f__opt.is-disabled{cursor:not-allowed}
.cga-f__opt.is-disabled .label{color:#A6A093}

/* price range — two overlapping sliders */
.cga-f__range{position:relative;height:26px;margin:1.4rem 0 .5rem}
.cga-f__track{position:absolute;left:0;right:0;top:11px;height:2px;background:var(--cgaf-line);border-radius:2px}
.cga-f__fill{position:absolute;top:11px;height:2px;background:var(--cgaf-gold);border-radius:2px}
.cga-f__range input[type=range]{
  position:absolute;left:0;top:0;width:100%;height:26px;margin:0;padding:0;
  appearance:none;-webkit-appearance:none;background:none;border:0;pointer-events:none;
}
.cga-f__range input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;pointer-events:auto;
  width:15px;height:15px;border-radius:50%;background:#fff;border:1.5px solid var(--cgaf-gold);
  cursor:grab;box-shadow:0 1px 3px rgba(22,38,61,.18);
}
.cga-f__range input[type=range]::-moz-range-thumb{
  pointer-events:auto;
  width:15px;height:15px;border-radius:50%;background:#fff;border:1.5px solid var(--cgaf-gold);
  cursor:grab;box-shadow:0 1px 3px rgba(22,38,61,.18);
}
.cga-f__range input[type=range]::-moz-range-track{background:none;border:0}
.cga-f__prices{
  display:flex;justify-content:space-between;
  font-size:.8rem;color:var(--cgaf-muted);font-variant-numeric:tabular-nums;
}

/* ---------------- toolbar ---------------- */

.cga-r__chips{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1.6rem}
.cga-r__chips:empty{display:none;margin:0}

.cga-r__chip{
  display:inline-flex;align-items:center;gap:.65rem;
  border:1px solid var(--cgaf-line);background:#fff;border-radius:1px;
  padding:.42em .75em .42em .9em;
  font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cgaf-navy);
}
.cga-r__chip button{
  background:none;border:0;padding:0;line-height:1;cursor:pointer;
  color:var(--cgaf-muted);font-size:.95rem;transition:color .15s;
}
.cga-r__chip button:hover{color:var(--cgaf-navy)}

.cga-r__clear{
  background:none;border:0;padding:.42em 0;cursor:pointer;font-family:var(--cgaf-body);
  font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--cgaf-gold);
  border-bottom:1px solid var(--cgaf-gold);
}
.cga-r__clear:hover{color:#8F6C31;border-color:#8F6C31}

.cga-r__bar{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between;
  padding-bottom:1.3rem;border-bottom:1px solid var(--cgaf-line);margin-bottom:2rem;
}
.cga-r__count{
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--cgaf-muted);
  font-variant-numeric:tabular-nums;
}
.cga-r__sort{display:flex;align-items:center;gap:.85rem}
.cga-r__sort > span{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cgaf-muted)}

.cga-r__select{position:relative;border:1px solid var(--cgaf-line);background:#fff;border-radius:1px}
.cga-r__select select{
  appearance:none;-webkit-appearance:none;background:none;border:0;
  font-family:var(--cgaf-body);font-size:.72rem;font-weight:400;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cgaf-navy);padding:.85em 2.6em .85em 1.1em;cursor:pointer;
}
.cga-r__select::after{
  content:"";position:absolute;right:1em;top:50%;width:6px;height:6px;
  border-right:1px solid var(--cgaf-navy);border-bottom:1px solid var(--cgaf-navy);
  transform:translateY(-70%) rotate(45deg);pointer-events:none;
}

/* ---------------- loading + empty ---------------- */

#cgaLoopGrid{transition:opacity .18s}
body.cga-loading #cgaLoopGrid{opacity:.4;pointer-events:none}
body.cga-loading .cga-f{opacity:.55;pointer-events:none}

.cga-r__empty{border:1px solid var(--cgaf-line);background:#fff;padding:3rem 2rem;text-align:center}
.cga-r__empty h3{font-family:var(--cgaf-display);font-weight:500;font-size:1.5rem;color:var(--cgaf-navy);margin:0 0 .6rem}
.cga-r__empty p{margin:0 0 1.4rem;color:var(--cgaf-muted)}

/* ---------------- mobile drawer ---------------- */

.cga-f__open,
.cga-f__close{display:none}

@media (max-width:900px){
  .cga-f__open{
    display:block;width:100%;margin-bottom:1.4rem;
    background:#fff;border:1px solid var(--cgaf-line);border-radius:1px;cursor:pointer;
    font-family:var(--cgaf-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
    color:var(--cgaf-navy);padding:1em 1.2em;
  }
  .cga-f{
    position:fixed;inset:0 25% 0 0;z-index:99999;background:var(--cgaf-paper);
    padding:1.5rem 1.4rem 3rem;overflow-y:auto;
    transform:translateX(-100%);transition:transform .25s ease;
    box-shadow:0 0 40px rgba(22,38,61,.25);
  }
  body.cga-filters-open{overflow:hidden}
  body.cga-filters-open .cga-f{transform:none}
  .cga-f__close{
    display:block;width:100%;margin-top:1.5rem;
    background:var(--cgaf-navy);color:#fff;border:0;border-radius:1px;cursor:pointer;
    font-family:var(--cgaf-body);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;padding:1em;
  }
}
@media (max-width:560px){
  .cga-f{inset:0}
}
@media (prefers-reduced-motion:reduce){
  .cga-f *,#cgaToolbar *,#cgaLoopGrid{transition:none !important}
}
