/* 3Dreams Smart Filters — scoped storefront design */
.dsf{--dsf-accent:#f47726;--dsf-accent-dark:#d65713;--dsf-ink:#252626;--dsf-muted:#7b8086;--dsf-stroke:#eae9e7;--dsf-panel:#fff;--dsf-tint:#fff8f2;font:inherit;color:var(--dsf-ink);margin:20px auto 42px;max-width:1480px;width:100%;line-height:1.5}
.dsf *{box-sizing:border-box}
.dsf button,.dsf input,.dsf select{font:inherit}
.dsf button{cursor:pointer}
.dsf a{color:inherit;text-decoration:none}
.dsf button:focus-visible,.dsf a:focus-visible,.dsf input:focus-visible,.dsf select:focus-visible,.dsf summary:focus-visible{outline:3px solid #ffbc80;outline-offset:3px}
.dsf-topline{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}
.dsf-eyebrow{font-size:10px;font-weight:800;color:var(--dsf-accent-dark);letter-spacing:.19em;margin:0 0 6px}
.dsf .dsf-topline h2{font-size:clamp(24px,3vw,36px);line-height:1.2;letter-spacing:-.045em;font-weight:800;margin:0;color:var(--dsf-ink)}
.dsf-topline p{color:var(--dsf-muted);font-size:13px;margin:8px 0 0}
.dsf-layout{display:grid;grid-template-columns:minmax(240px,278px) minmax(0,1fr);align-items:start;gap:28px}
.dsf-sidebar{background:var(--dsf-panel);border:1px solid var(--dsf-stroke);border-radius:17px;box-shadow:0 8px 30px rgba(30,25,20,.035);overflow:hidden;position:sticky;top:28px;min-width:0}
.dsf-form{margin:0}
.dsf-sidebar-head{display:flex;align-items:center;justify-content:space-between;padding:23px 21px 13px}
.dsf-sidebar-head strong{font-size:18px;font-weight:800;letter-spacing:-.025em;display:block}
.dsf-sidebar-head small{display:block;font-size:11px;color:var(--dsf-muted);margin-top:4px}
.dsf-close{display:none!important}
.dsf-search-wrap{border:1px solid var(--dsf-stroke);border-radius:11px;margin:9px 19px 18px;display:flex;align-items:center;gap:10px;padding:0 12px;background:#fafafa;color:#8c9093}
.dsf-search-wrap input{background:none!important;border:0!important;box-shadow:none!important;outline:none!important;color:var(--dsf-ink);font-size:12px!important;min-height:42px;width:100%;padding:0!important;margin:0!important}
.dsf-scroll{max-height:min(68vh,940px);overflow:auto;overscroll-behavior:contain;padding:0 19px;scrollbar-width:thin;scrollbar-color:#ddd transparent}
.dsf-section{padding:17px 0 18px;border-top:1px solid var(--dsf-stroke);margin:0}
.dsf-section summary{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:800;list-style:none;cursor:pointer;gap:14px;user-select:none}
.dsf-section summary::-webkit-details-marker{display:none}
.dsf-caret{width:8px;height:8px;border-right:1.7px solid #555;border-bottom:1.7px solid #555;transform:rotate(45deg);margin-right:4px;transition:transform .2s}
.dsf-section[open] .dsf-caret{transform:rotate(225deg)}
.dsf-options{padding:16px 0 0;display:flex;flex-direction:column;gap:12px;max-height:242px;overflow:auto;scrollbar-width:thin}
.dsf-check{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.35;cursor:pointer;position:relative;margin:0;color:#585b5d;min-height:18px}
.dsf-check[hidden]{display:none}
.dsf-check input,.dsf-swatch input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.dsf-faux-check{flex:none;width:16px;height:16px;border:1.4px solid #d4d6d6;border-radius:4px;position:relative;transition:background .2s,border .2s}
.dsf-check input:checked+.dsf-faux-check{background:var(--dsf-accent);border-color:var(--dsf-accent)}
.dsf-check input:checked+.dsf-faux-check:after{content:'';position:absolute;left:4px;top:1px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.dsf-check input:focus-visible+.dsf-faux-check,.dsf-swatch input:focus-visible+.dsf-swatch-bubble{outline:3px solid #ffbc80;outline-offset:3px}
.dsf-check:hover .dsf-check-label{color:var(--dsf-accent-dark)}
.dsf-check-label{flex:1;min-width:0}
.dsf-term-count{font-size:10px;color:#a1a3a4;margin-left:auto}
.dsf-price-inputs{display:flex;align-items:end;gap:9px;padding-top:15px}
.dsf-price-inputs label{display:block;min-width:0;flex:1;font-size:10px;color:var(--dsf-muted);font-weight:600}
.dsf-price-inputs label>div{display:flex;align-items:center;gap:3px;border:1px solid var(--dsf-stroke);border-radius:9px;padding-right:10px;margin-top:6px;height:39px}
.dsf-price-inputs input{min-width:0;width:100%;border:0!important;background:transparent!important;padding:0 6px 0 10px!important;box-shadow:none!important;outline:none!important;font-size:12px!important;height:37px!important;margin:0!important}
.dsf-price-inputs label>div span{font-weight:600;color:#8a8a8a;font-size:12px}
.dsf-price-inputs input::-webkit-inner-spin-button{appearance:none}
.dsf-price-dash{color:#aaa;margin-bottom:10px}
.dsf-price-note{font-size:10px;color:#999;line-height:1.6;margin-top:10px}
.dsf-price-note .woocommerce-Price-amount{font-size:10px;color:inherit}
.dsf-range{position:relative;height:32px;margin:5px 4px 0;--range-from:0%;--range-to:100%}
.dsf-range::before{content:'';height:4px;position:absolute;top:13px;left:0;right:0;background:linear-gradient(to right,#e8e6e3 var(--range-from),var(--dsf-accent) var(--range-from),var(--dsf-accent) var(--range-to),#e8e6e3 var(--range-to));border-radius:4px}
.dsf-range input[type=range]{appearance:none;-webkit-appearance:none;background:transparent!important;position:absolute;left:0;right:0;top:0;width:100%;height:32px;margin:0;padding:0;border:0!important;pointer-events:none}
.dsf-range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:white;border:3px solid var(--dsf-accent);box-shadow:0 1px 4px #0002;pointer-events:auto;cursor:pointer}
.dsf-range input[type=range]::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:white;border:3px solid var(--dsf-accent);box-shadow:0 1px 4px #0002;pointer-events:auto;cursor:pointer}
.dsf-range input[type=range]:last-child{z-index:2}
.dsf-option-search{margin-top:13px!important;padding:8px 10px!important;width:100%;min-height:34px!important;border:1px solid var(--dsf-stroke)!important;border-radius:8px!important;font-size:11px!important;background:#fafafa!important;box-shadow:none!important}
.dsf-swatches{padding-top:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px 6px}
.dsf-swatch{display:flex;align-items:center;flex-direction:column;gap:6px;cursor:pointer;margin:0;position:relative;min-width:0}
.dsf-swatch-bubble{width:30px;height:30px;max-width:100%;border-radius:50%;background:var(--dsf-swatch,#eee);border:1px solid #00000018;box-shadow:inset 0 0 0 2px #fff;transition:box-shadow .15s,transform .15s}
.dsf-swatch-multi{background:conic-gradient(#e3a1a4,#e6bf71,#93bcd5,#9b91d2,#e3a1a4)}
.dsf-swatch input:checked+.dsf-swatch-bubble{outline:2px solid var(--dsf-accent);outline-offset:2px;transform:scale(1.03)}
.dsf-swatch-label{color:#767676;max-width:100%;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsf-sidebar-foot{padding:17px 19px;display:flex;gap:8px;border-top:1px solid var(--dsf-stroke);background:#fff}
.dsf-clear,.dsf-apply{border-radius:9px!important;border:1px solid var(--dsf-stroke)!important;min-height:39px!important;font-weight:700!important;font-size:11px!important;padding:9px 13px!important;text-decoration:none!important;box-shadow:none!important}
.dsf-clear{background:#fff!important;color:#626262!important;flex:1}
.dsf-apply{background:var(--dsf-accent)!important;color:#fff!important;border-color:var(--dsf-accent)!important;flex:1.4}
.dsf-apply:hover{background:var(--dsf-accent-dark)!important}
.dsf-main{min-width:0}
.dsf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;min-height:45px}
.dsf-results-label{font-size:13px;font-weight:700;color:#555}
.dsf-sort-label{display:flex;align-items:center;gap:11px;color:var(--dsf-muted);font-size:11px;margin:0}
.dsf-sort{border:1px solid var(--dsf-stroke)!important;border-radius:9px!important;background:#fff!important;color:#4a4a4a!important;font-size:11px!important;font-weight:650!important;padding:9px 32px 9px 12px!important;min-height:40px!important;max-width:200px!important;box-shadow:none!important;margin:0!important}
.dsf-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
.dsf-chips:empty{display:none}
.dsf-chip{border:1px solid #f8d6c2!important;background:#fff5ed!important;color:#aa4c16!important;border-radius:20px!important;font-size:10px!important;font-weight:600!important;min-height:29px!important;padding:5px 10px!important;line-height:1.3!important}
.dsf-chips-reset{background:transparent!important;color:#777!important;border:0!important;text-decoration:underline!important;padding:5px 8px!important;font-size:10px!important}
.dsf-output{position:relative;min-height:250px;transition:opacity .13s}
.dsf-loading .dsf-output{opacity:.54;pointer-events:none}
.dsf-loading .dsf-toolbar:after{content:'';width:14px;height:14px;border:2px solid #f8d2b8;border-top-color:var(--dsf-accent);border-radius:50%;animation:dsf-spin .7s linear infinite}
@keyframes dsf-spin{to{transform:rotate(360deg)}}
.dsf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px 17px}
.dsf-card{min-width:0;background:#fff;border:1px solid #f0eeeb;border-radius:13px;overflow:hidden;box-shadow:0 3px 12px #20180f05;transition:transform .23s,box-shadow .23s}
.dsf-card:hover{transform:translateY(-3px);box-shadow:0 12px 26px #20180f12}
.dsf-image-link{display:block;position:relative;aspect-ratio:1/1;background:#f8f8f8;overflow:hidden}
.dsf-image-link img{width:100%!important;height:100%!important;object-fit:cover!important;display:block;transition:transform .4s}
.dsf-card:hover .dsf-image-link img{transform:scale(1.035)}
.dsf-badge{position:absolute;left:12px;top:12px;background:var(--dsf-accent);color:#fff;font-weight:750;font-size:10px;border-radius:6px;padding:5px 9px}
.dsf-card-content{padding:15px 15px 14px}
.dsf-card-category{font-size:10px;line-height:1.4;color:var(--dsf-accent-dark);text-transform:uppercase;letter-spacing:.04em;font-weight:750;min-height:14px}
.dsf-card h3{font-size:13px!important;font-weight:750!important;line-height:1.48!important;letter-spacing:-.01em!important;color:var(--dsf-ink)!important;margin:5px 0 9px!important;min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dsf-card h3 a:hover{color:var(--dsf-accent-dark)}
.dsf-card-price{font-size:15px;font-weight:800;color:#282727;margin-bottom:15px;min-height:23px}
.dsf-card-price del{color:#aaa;font-size:11px;font-weight:500;margin-right:5px}
.dsf-card-price ins{text-decoration:none}
.dsf-card-foot{display:flex;align-items:stretch;gap:8px}
.dsf-add{display:flex!important;align-items:center;justify-content:center;text-align:center;flex:1;border:0!important;border-radius:8px!important;padding:9px!important;min-height:37px!important;font-size:11px!important;line-height:1.35!important;font-weight:800!important;color:#fff!important;background:var(--dsf-ink)!important;box-shadow:none!important;text-decoration:none!important;white-space:normal!important}
.dsf-add:hover{background:var(--dsf-accent)!important;color:#fff!important}
.dsf-open{display:grid;place-items:center;min-width:37px;border:1px solid var(--dsf-stroke);border-radius:8px;font-size:18px;color:#6d6d6d}
.dsf-open:hover{border-color:var(--dsf-accent);color:var(--dsf-accent)}
.dsf-pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:31px 0 5px}
.dsf-pagination button{min-width:38px;min-height:38px;border-radius:9px;border:1px solid var(--dsf-stroke);background:#fff;color:#444;font-size:12px;font-weight:650;padding:0 10px}
.dsf-pagination button.active,.dsf-pagination button:hover{background:var(--dsf-accent);border-color:var(--dsf-accent);color:#fff}
.dsf-empty{text-align:center;border:1px dashed #e6e0dc;border-radius:14px;padding:48px 20px;background:#fffdfb}
.dsf-empty-icon{font-size:42px;color:var(--dsf-accent);line-height:1.2}
.dsf-empty h3{font-size:18px;margin:10px 0!important}
.dsf-empty p{font-size:13px;color:var(--dsf-muted);margin:0 0 18px}
.dsf-empty-reset{background:var(--dsf-accent)!important;color:#fff!important;border:0!important;padding:11px 20px!important;border-radius:8px!important;font-size:12px!important;font-weight:700!important}
.dsf-error{color:#bd3535;background:#fff0ef;border:1px solid #ffcdca;padding:10px;border-radius:7px;font-size:12px}
.dsf-mobile-toggle{display:none!important}
.dsf-backdrop{display:none}
.dsf-visually-hidden{clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;position:absolute;overflow:hidden;white-space:nowrap}
.dsf-archive-shell{width:100%;max-width:1490px;margin:auto;padding:24px 20px}
.dsf-archive-shell>.page-title{font-size:21px!important;margin:0 0 15px!important}
@media(min-width:1250px){.dsf-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1650px){.dsf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1100px){.dsf-layout{grid-template-columns:238px minmax(0,1fr);gap:18px}.dsf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.dsf-scroll{padding:0 14px}.dsf-sidebar-head{padding-left:14px;padding-right:14px}.dsf-search-wrap{margin-left:14px;margin-right:14px}.dsf-sidebar-foot{padding-left:14px;padding-right:14px}}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  .dsf{margin:15px 0 30px}
  .dsf-topline{align-items:center;gap:12px;margin-bottom:15px}
  .dsf .dsf-topline h2{font-size:22px}
  .dsf-topline p{font-size:11px;max-width:230px}
  .dsf-mobile-toggle{display:inline-flex!important;align-items:center;gap:7px;white-space:nowrap;background:var(--dsf-ink)!important;color:#fff!important;border:0!important;border-radius:9px!important;padding:10px 12px!important;font-weight:700!important;font-size:12px!important;min-height:40px!important;box-shadow:none!important}
  .dsf-mobile-count{background:var(--dsf-accent);padding:1px 5px;border-radius:10px;font-size:10px;line-height:1.5}
  .dsf-layout{display:block}
  .dsf-sidebar{position:fixed;z-index:999997;inset:0 auto 0 0;width:min(88vw,370px);max-width:370px;height:100dvh;transform:translateX(-104%);transition:transform .22s;box-shadow:5px 0 35px #0002;border-radius:0;overflow:hidden;background:#fff}
  .dsf-drawer-open .dsf-sidebar{transform:translateX(0)}
  .dsf-backdrop{display:block;position:fixed;inset:0;background:#20202686;z-index:999996;opacity:0;pointer-events:none;transition:opacity .2s}
  .dsf-drawer-open .dsf-backdrop{opacity:1;pointer-events:auto}
  .dsf-sidebar-head{padding:20px 18px 12px}
  .dsf-close{display:block!important;font-size:24px!important;line-height:1!important;background:#f6f5f4!important;color:#333!important;width:34px;height:34px;border:0!important;border-radius:9px!important;padding:0!important}
  .dsf-search-wrap{margin:8px 18px 14px}
  .dsf-form{height:100%;display:flex;flex-direction:column}
  .dsf-scroll{flex:1;max-height:none;padding:0 18px;min-height:0}
  .dsf-sidebar-foot{padding:14px 18px;padding-bottom:max(14px,env(safe-area-inset-bottom))}
  .dsf-no-scroll{overflow:hidden}
  .dsf-toolbar{align-items:center;margin-bottom:14px}
  .dsf-results-label{font-size:12px}
  .dsf-sort-label span{display:none}
  .dsf-sort{max-width:170px!important}
  .dsf-grid{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
  .dsf-card-content{padding:11px}
  .dsf-card h3{font-size:12px!important;min-height:36px;margin:3px 0 8px!important}
  .dsf-card-price{font-size:13px;margin-bottom:10px}
  .dsf-add{font-size:10px!important;min-height:35px!important;padding:7px 5px!important}
  .dsf-open{min-width:33px;font-size:16px}
  .dsf-card-foot{gap:5px}
}
@media(max-width:365px){.dsf .dsf-topline h2{font-size:19px}.dsf-grid{gap:9px}.dsf-card-content{padding:9px}.dsf-open{display:none}.dsf-sort{max-width:144px!important;font-size:10px!important}}
@media(prefers-reduced-motion:reduce){.dsf *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Existing-theme card support: preserve WooCommerce hook-based extras such as Quick View. */
.dsf.woocommerce ul.products.dsf-native-grid,.dsf ul.products.dsf-native-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;list-style:none;margin:0!important;padding:0!important;clear:none}
.dsf.woocommerce ul.products.dsf-native-grid:before,.dsf.woocommerce ul.products.dsf-native-grid:after{display:none!important}
.dsf.woocommerce ul.products.dsf-native-grid li.product,.dsf ul.products.dsf-native-grid li.product{width:auto!important;float:none!important;clear:none!important;margin:0!important;min-width:0}
@media(max-width:1100px){.dsf.woocommerce ul.products.dsf-native-grid,.dsf ul.products.dsf-native-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){.dsf.woocommerce ul.products.dsf-native-grid,.dsf ul.products.dsf-native-grid{gap:12px}}

/* v1.0.1 — Astra + Smart Filters shop archive compatibility.
 * Scoped to the opt-in archive replacement; never targets single products. */
body.dsf-astra-archive .site-content > .ast-container{
  display:block;
  width:100%;
  max-width:1500px!important;
  margin-inline:auto!important;
  padding-inline:clamp(16px,2.1vw,32px)!important;
}
body.dsf-astra-archive .site-content #primary{
  display:block;
  float:none!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0;
  margin:0!important;
  padding:0!important;
}
body.dsf-astra-archive .site-content #main,
body.dsf-astra-archive .site-content .ast-woocommerce-container{
  width:100%;
  max-width:none!important;
  min-width:0;
  margin:0;
  padding:0;
}
/* Astra sometimes keeps the old empty Shop sidebar even after a layout change. */
body.dsf-astra-archive .site-content #secondary{display:none!important}
body.dsf-astra-archive .dsf-archive-shell{
  width:100%;
  max-width:1480px;
  margin:0 auto;
  padding:12px 0 26px;
}
body.dsf-astra-archive .dsf-archive-shell .dsf{
  margin:12px auto 30px;
  max-width:100%;
}
/* Compact Astra's archive title/breadcrumb zone; do not hide the breadcrumb. */
body.dsf-astra-archive .ast-archive-description,
body.dsf-astra-archive .ast-archive-entry-banner{
  min-height:0!important;
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:18px!important;
  padding-bottom:12px!important;
}
body.dsf-astra-archive .site-content{
  margin-top:0!important;
  padding-top:0!important;
}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  body.dsf-astra-archive .site-content > .ast-container{
    padding-inline:16px!important;
  }
  body.dsf-astra-archive .dsf-archive-shell{
    padding:7px 0 20px;
  }
  body.dsf-astra-archive .ast-archive-description,
  body.dsf-astra-archive .ast-archive-entry-banner{
    padding-top:12px!important;
    padding-bottom:8px!important;
  }
}

/* v1.1 — polished, accessible filter UI: readable options, no scroll traps. */
.dsf { --dsf-accent:#f47726; --dsf-accent-dark:#c65d19; --dsf-stroke:#e9e4de; --dsf-ink:#282421; --dsf-muted:#77716e; }
.dsf-topline{margin-bottom:23px}
.dsf-layout{grid-template-columns:minmax(254px,284px) minmax(0,1fr);gap:25px}
.dsf-sidebar{position:relative;top:auto;border-radius:16px;box-shadow:0 5px 24px rgba(65,44,29,.045)}
.dsf-sidebar-head{padding:20px 18px 13px;gap:10px}
.dsf-sidebar-head strong{font-size:17px;line-height:1.3}
.dsf-sidebar-head small{font-size:12px;line-height:1.4}
.dsf-active-count{margin-left:auto;flex:none;min-width:25px;min-height:25px;border-radius:50%;background:var(--dsf-tint);color:var(--dsf-accent-dark);font-size:12px;font-weight:750;display:grid;place-items:center}
.dsf-active-count[hidden]{display:none}
.dsf-search-wrap{margin:7px 17px 17px;border-radius:11px;background:#fff}
.dsf-search-wrap input{font-size:13px!important;min-height:44px}
.dsf-scroll{padding-inline:18px;overflow:visible;max-height:none}
.dsf-section{padding:17px 0;border-top:1px solid var(--dsf-stroke)}
.dsf-section summary{font-size:13px;min-height:29px;font-weight:750}
.dsf-options{gap:3px;max-height:none;overflow:visible;padding-top:10px}
.dsf-check{min-height:41px;padding:7px 8px;border:1px solid transparent;border-radius:9px;gap:10px;font-size:12.5px;line-height:1.42;color:#4d4b4b;transition:background .15s,border-color .15s}
.dsf-check:hover{background:#fcf8f4}
.dsf-check:has(input:checked){background:#fff5ee;border-color:#f5decb;color:#42352d}
.dsf-faux-check{width:18px;height:18px;border-radius:5px}
.dsf-check input:checked+.dsf-faux-check:after{left:5px;top:2px}
.dsf-term-count{font-size:11px;color:#9a918d;background:#f7f6f4;border-radius:5px;padding:2px 6px}
.dsf-check:has(input:checked) .dsf-term-count{background:#fce7d8;color:var(--dsf-accent-dark)}
.dsf-option-search{font-size:12px!important;min-height:39px!important;margin-top:12px!important;background:#fff!important;border-radius:9px!important}
.dsf-option-more{display:inline-flex!important;align-items:center;justify-content:center;gap:6px;background:transparent!important;color:var(--dsf-accent-dark)!important;border:0!important;box-shadow:none!important;padding:8px 4px!important;margin:8px 0 0!important;min-height:37px!important;font-size:12px!important;font-weight:750!important;text-align:left!important}
.dsf-option-more[hidden]{display:none!important}
.dsf-option-more:hover{text-decoration:underline!important}
.dsf-swatches{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:14px}
.dsf-swatch{gap:7px;padding:9px 4px;border:1px solid var(--dsf-stroke);border-radius:10px;min-height:82px;justify-content:flex-start;transition:background .15s,border-color .15s,box-shadow .15s}
.dsf-swatch-bubble{width:36px;height:36px;flex:none}
.dsf-swatch-label{font-size:11px;line-height:1.25;color:#605b57;white-space:normal;overflow:visible;text-align:center;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.dsf-swatch:hover,.dsf-swatch:has(input:checked){background:#fff8f2;border-color:#f3c6aa}
.dsf-swatch input:checked+.dsf-swatch-bubble{outline:2px solid var(--dsf-accent);outline-offset:2px}
.dsf-price-inputs{gap:7px}
.dsf-price-inputs label>div{height:43px}
.dsf-sidebar-foot{padding:15px 17px;background:#fff;gap:9px}
.dsf-clear,.dsf-apply{min-height:43px!important;font-size:12px!important;border-radius:10px!important}
.dsf-clear:hover{background:#faf6f2!important}
.dsf-apply-count{display:inline-grid;place-items:center;background:#ffffff30;min-width:24px;border-radius:6px;padding:1px 5px;margin-left:5px;font-weight:800}
.dsf-quick-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:13px}
.dsf-quick{min-height:37px!important;background:#fff!important;color:#66615d!important;border:1px solid var(--dsf-stroke)!important;border-radius:30px!important;padding:7px 13px!important;box-shadow:none!important;font-size:12px!important;font-weight:650!important;transition:border-color .15s,background .15s}
.dsf-quick:hover,.dsf-quick.is-active{border-color:#ecc4a8!important;background:#fff1e7!important;color:var(--dsf-accent-dark)!important}
.dsf-quick.is-active:before{content:'✓';margin-right:6px}
.dsf-toolbar{margin-bottom:13px}
.dsf-results-label{font-size:13px}
.dsf-sort{min-height:42px!important;font-size:12px!important;border-radius:10px!important}
.dsf-chip{font-size:11px!important;min-height:32px!important;padding:6px 11px!important}
.dsf-chips-reset{font-size:11px!important}
@media(max-width:1100px) and (min-width:768px){.dsf-layout{grid-template-columns:240px minmax(0,1fr);gap:18px}.dsf-scroll{padding-inline:13px}.dsf-search-wrap{margin-inline:13px}}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  .dsf-topline{margin-bottom:17px}
  .dsf-sidebar{position:fixed;top:0;overflow:hidden;border-radius:0;width:min(92vw,390px);max-width:390px}
  .dsf-sidebar-head{padding:19px 18px 12px}
  .dsf-close{flex:none}
  .dsf-scroll{overflow-y:auto;overscroll-behavior:contain;max-height:none;padding-inline:18px}
  .dsf-sidebar-foot{padding:12px 16px max(14px,env(safe-area-inset-bottom))}
  .dsf-swatch{min-height:77px}
  .dsf-quick-filters{gap:7px;margin-bottom:12px;overflow:visible}
  .dsf-quick{font-size:11px!important;min-height:35px!important;padding:7px 10px!important}
  .dsf-option-more{min-height:41px!important}
  .dsf-check{min-height:44px}
  .dsf-sort{min-height:40px!important}
}

/* v1.2 — desktop panel host and mobile drawer host (Shadow DOM only). */
.dsf-layout > .dsf-panel-host{display:block;min-width:0;width:100%;align-self:start}
.dsf.dsf-has-shadow .dsf-layout > .dsf-panel-host{min-height:1px}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  .dsf-layout > .dsf-panel-host{height:0;min-height:0;width:0}
  .dsf.dsf-drawer-open .dsf-layout > .dsf-panel-host{position:relative;z-index:2147483000}
}
body.dsf-no-scroll{overflow:hidden!important;touch-action:none}
/* v1.2 — footer styles mirrored into isolated shadow panel. */
.dsf-sidebar-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:15px 17px!important}
.dsf-footer-hint{display:inline-flex;align-items:center;gap:7px;color:#817871;font-size:11px;line-height:1.4;min-width:0}
.dsf-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#5aaf7b;flex:none}
.dsf-footer-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;min-width:0}
.dsf-sidebar-foot .dsf-clear{display:inline-flex!important;align-items:center;justify-content:center;gap:5px;flex:none;border:0!important;border-radius:6px!important;min-height:32px!important;padding:4px 0!important;font-size:11px!important;font-weight:700!important;white-space:nowrap!important;letter-spacing:0!important;line-height:1.25!important;text-transform:none!important;color:#8b5b41!important;background:transparent!important;box-shadow:none!important}
.dsf-sidebar-foot .dsf-clear[hidden]{display:none!important}
.dsf-sidebar-foot .dsf-clear:hover{color:#b64d13!important;text-decoration:underline!important}
.dsf-sidebar-foot .dsf-apply{display:none!important}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  .dsf-sidebar-foot{display:block;padding:13px 17px max(14px,env(safe-area-inset-bottom))!important}
  .dsf-footer-hint{display:none}
  .dsf-footer-actions{display:flex;gap:12px;width:100%}
  .dsf-sidebar-foot .dsf-clear{font-size:12px!important;min-width:74px;min-height:48px!important}
  .dsf-sidebar-foot .dsf-apply{display:flex!important;align-items:center;justify-content:center;gap:5px;flex:1;min-width:0;min-height:49px!important;padding:12px 14px!important;white-space:nowrap!important;line-height:1.1!important;font-size:13px!important;font-weight:800!important;letter-spacing:0!important;text-transform:none!important;border:1px solid #e96a1c!important;border-radius:12px!important;background:#f47726!important;color:white!important;box-shadow:0 3px 10px #f477262b!important}
  .dsf-sidebar-foot .dsf-apply:hover,.dsf-sidebar-foot .dsf-apply:focus-visible{background:#da5b12!important}
  .dsf-apply-count{display:inline!important;background:transparent!important;min-width:0!important;margin:0!important;padding:0!important;color:inherit!important;font:inherit!important;border-radius:0!important}
  .dsf-apply-arrow{flex:none;margin-left:auto}
  .dsf-apply-label,.dsf-apply-suffix{flex:none;white-space:nowrap}
}
/* Prevent third-party generic button / input / label rules from leaking into
   toolbar controls that intentionally stay in light DOM alongside WC cards. */
.dsf .dsf-mobile-toggle,
.dsf .dsf-quick,
.dsf .dsf-chip,
.dsf .dsf-chips-reset,
.dsf .dsf-pagination button,
.dsf .dsf-sort,
.dsf .dsf-empty-reset {
  font-family:inherit!important;
  letter-spacing:normal!important;
  text-transform:none!important;
  line-height:1.35!important;
  font-style:normal!important;
}
.dsf .dsf-sort-label { color:var(--dsf-muted)!important; }
.dsf .dsf-sort-label select { color:#4a4a4a!important; }

/* v1.2.1 — Stable card rendering. Scoped to this plugin's AJAX results ONLY.
   Astra and other themes may apply aggressive generic button/heading CSS; these
   rules deliberately outrank them without affecting site-wide WooCommerce UI. */
.dsf .dsf-output .dsf-stable-grid {
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:21px 17px!important;
  margin:0!important;
  padding:0!important;
  list-style:none!important;
  width:100%!important;
  max-width:none!important;
  align-items:stretch!important;
}
.dsf .dsf-output .dsf-stable-grid > .dsf-product {
  display:flex!important;
  flex-direction:column!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  width:100%!important;
  float:none!important;
  clear:none!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:1px solid #eee8e2!important;
  border-radius:14px!important;
  box-shadow:0 2px 12px rgba(56,40,27,.045)!important;
  color:#282421!important;
  text-align:left!important;
  font-family:Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  transition:box-shadow .2s ease,transform .2s ease;
}
.dsf .dsf-output .dsf-stable-grid > .dsf-product:hover {
  box-shadow:0 9px 26px rgba(56,40,27,.085)!important;
  transform:translateY(-2px);
}
.dsf .dsf-output .dsf-product .dsf-image-link {
  display:block!important;
  width:100%!important;
  position:relative!important;
  aspect-ratio:1 / 1!important;
  flex:none!important;
  overflow:hidden!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:#f7f5f3!important;
}
.dsf .dsf-output .dsf-product .dsf-image-link > img {
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center!important;
  border:0!important;
  border-radius:0!important;
  margin:0!important;
  padding:0!important;
}
.dsf .dsf-output .dsf-product .dsf-card-content {
  display:flex!important;
  flex:1!important;
  flex-direction:column!important;
  align-items:stretch!important;
  min-width:0!important;
  width:100%!important;
  padding:15px 15px 14px!important;
  background:#fff!important;
  text-align:left!important;
}
.dsf .dsf-output .dsf-product .dsf-card-category {
  font:700 10px/1.5 Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  text-transform:uppercase!important;
  letter-spacing:.07em!important;
  color:#ba5a23!important;
  min-height:15px!important;
  margin:0 0 5px!important;
}
.dsf .dsf-output .dsf-product h3 {
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow:hidden!important;
  min-height:40px!important;
  max-height:40px!important;
  width:100%!important;
  margin:0 0 8px!important;
  padding:0!important;
  color:#282421!important;
  font:700 14px/1.45 Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  text-align:left!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
.dsf .dsf-output .dsf-product h3 a {
  display:inline!important;
  margin:0!important;
  padding:0!important;
  color:inherit!important;
  font:inherit!important;
  text-decoration:none!important;
  border:0!important;
  background:transparent!important;
}
.dsf .dsf-output .dsf-product .dsf-card-price {
  display:block!important;
  flex:none!important;
  min-height:23px!important;
  margin:0 0 14px!important;
  padding:0!important;
  color:#292725!important;
  font:800 15px/1.5 Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  letter-spacing:0!important;
  text-align:left!important;
}
.dsf .dsf-output .dsf-product .dsf-card-price * {
  font-family:inherit!important;
  line-height:inherit!important;
  font-size:inherit!important;
  color:inherit!important;
}
.dsf .dsf-output .dsf-product .dsf-card-price del {
  color:#9f9b96!important;
  font-size:12px!important;
  font-weight:500!important;
  margin-right:5px!important;
}
.dsf .dsf-output .dsf-product .dsf-card-price ins{text-decoration:none!important}
.dsf .dsf-output .dsf-product .dsf-card-foot {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:8px!important;
  width:100%!important;
  margin:auto 0 0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.dsf .dsf-output .dsf-product a.dsf-add,
.dsf .dsf-output .dsf-product a.dsf-add.button,
.dsf .dsf-output .dsf-product a.dsf-add.ajax_add_to_cart {
  display:inline-flex!important;
  flex:1 1 auto!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  min-height:42px!important;
  height:auto!important;
  margin:0!important;
  padding:10px 13px!important;
  background:#f47726!important;
  color:#fff!important;
  border:1px solid #f47726!important;
  border-radius:10px!important;
  box-shadow:none!important;
  font:750 12px/1.3 Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  letter-spacing:0!important;
  text-transform:none!important;
  text-align:center!important;
  text-decoration:none!important;
  white-space:normal!important;
  transition:background-color .15s ease!important;
}
.dsf .dsf-output .dsf-product a.dsf-add:hover,
.dsf .dsf-output .dsf-product a.dsf-add:focus-visible {
  background:#d85d16!important;
  color:#fff!important;
  border-color:#d85d16!important;
}
.dsf .dsf-output .dsf-product a.dsf-add.loading{opacity:.7!important;pointer-events:none!important}
.dsf .dsf-output .dsf-product a.dsf-add.added{background:#37805c!important;border-color:#37805c!important}
.dsf .dsf-output .dsf-product .dsf-cart-icon{display:block!important;flex:none!important;width:17px!important;height:17px!important;color:inherit!important}
.dsf .dsf-output .dsf-product .dsf-open {
  display:grid!important;
  place-items:center!important;
  flex:0 0 42px!important;
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:1px solid #e8e3de!important;
  border-radius:10px!important;
  color:#635a54!important;
  font:600 19px/1 Urbanist,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif!important;
  text-decoration:none!important;
}
.dsf .dsf-output .dsf-product .dsf-open:hover{border-color:#f47726!important;color:#d85d16!important}
/* WC inserts this link after add-to-cart; keep it inside the card's bounds. */
.dsf .dsf-output .dsf-product .added_to_cart.wc-forward{font-size:11px!important;color:#b6531c!important}
@media(min-width:1650px){
  .dsf .dsf-output .dsf-stable-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
}
@media(max-width:1100px){
  .dsf .dsf-output .dsf-stable-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
}
@media(max-width:767px){
  .dsf .dsf-output .dsf-stable-grid{gap:11px!important}
  .dsf .dsf-output .dsf-product .dsf-card-content{padding:11px!important}
  .dsf .dsf-output .dsf-product h3{font-size:12px!important;min-height:36px!important;max-height:36px!important}
  .dsf .dsf-output .dsf-product .dsf-card-price{font-size:13px!important;margin-bottom:11px!important}
  .dsf .dsf-output .dsf-product a.dsf-add{min-height:39px!important;font-size:11px!important;padding:8px 7px!important;gap:5px!important}
  .dsf .dsf-output .dsf-product .dsf-open{flex-basis:35px!important;width:35px!important;min-width:35px!important;height:39px!important}
  .dsf .dsf-output .dsf-product .dsf-cart-icon{width:15px!important;height:15px!important}
}
@media(max-width:380px){
  .dsf .dsf-output .dsf-product .dsf-card-content{padding:9px!important}
  .dsf .dsf-output .dsf-product .dsf-open{display:none!important}
}
/* Phones: keep the main purchase action legible on narrow two-column cards.
   The image/title already link to the product, so the extra arrow can hide. */
@media(max-width:520px){
  .dsf .dsf-output .dsf-product .dsf-open{display:none!important}
  .dsf .dsf-output .dsf-product a.dsf-add,
  .dsf .dsf-output .dsf-product a.dsf-add.button{
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    flex:1 1 100%!important;
    width:100%!important;
    min-height:40px!important;
    padding:9px 7px!important;
    font-size:11px!important;
    line-height:1.2!important;
  }
  .dsf .dsf-output .dsf-product a.dsf-add span{white-space:nowrap!important}
}

/* v1.2.2 — legible price bounds (also inside Shadow DOM). */
.dsf .dsf-price-note{font-size:13px!important;line-height:1.55;color:#736a63;font-weight:550;margin-top:13px}
.dsf .dsf-price-note .woocommerce-Price-amount,
.dsf .dsf-price-note .woocommerce-Price-currencySymbol{font-size:13px!important;color:inherit!important;font-weight:650}
.dsf .dsf-draft-hint{display:none}
@media (max-width:1100px), (hover:none) and (pointer:coarse) and (max-width:1400px){
  .dsf .dsf-draft-hint{display:block;margin:0 0 10px;color:#77716e;font-size:12px;line-height:1.4;text-align:center}
  .dsf .dsf-sidebar-foot .dsf-apply-count[hidden],
  .dsf .dsf-sidebar-foot .dsf-apply-suffix[hidden]{display:none!important}
  .dsf .dsf-sidebar-foot .dsf-apply{font-size:14px!important}
}
