.ppf-shell{--ppf-bg:#06150f;--ppf-panel:rgba(5,22,15,.82);--ppf-line:rgba(95,252,167,.22);--ppf-muted:rgba(255,255,255,.58);display:grid;grid-template-columns:var(--ppf-sidebar-width) minmax(0,1fr);gap:34px;align-items:start;width:100%;position:relative;color:#fff}
.ppf-sidebar{position:sticky;top:var(--ppf-sticky-offset);align-self:start;min-width:0;height:max-content;max-height:calc(100vh - var(--ppf-sticky-offset) - 16px);z-index:20}.ppf-sidebar-inner{position:relative;max-height:calc(100vh - var(--ppf-sticky-offset) - 16px);overflow-y:auto;overflow-x:hidden;background:linear-gradient(180deg,rgba(7,27,19,.94),rgba(3,15,10,.96));border:1px solid var(--ppf-line);border-radius:26px;padding:24px 20px 18px;box-shadow:0 24px 60px rgba(0,0,0,.22);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);scrollbar-width:thin;scrollbar-color:rgba(95,252,167,.42) transparent}
.ppf-sidebar-inner::-webkit-scrollbar{width:5px}.ppf-sidebar-inner::-webkit-scrollbar-thumb{background:rgba(95,252,167,.42);border-radius:8px}
.ppf-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 3px 17px}.ppf-eyebrow{display:block;color:var(--ppf-accent);font-size:10px;font-weight:800;letter-spacing:.13em;margin-bottom:4px}.ppf-sidebar-head h3{margin:0;color:#fff;font-size:25px;line-height:1.1;font-weight:750}.ppf-mobile-close{display:none;border:0;background:transparent;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:0}
.ppf-filter-section{padding:18px 3px;border-top:1px solid rgba(255,255,255,.08)}.ppf-compact-section{padding-top:15px;padding-bottom:15px}.ppf-section-title,.ppf-section-toggle{font-size:13px;font-weight:700;color:#fff}.ppf-section-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;background:none;border:0;padding:0;cursor:pointer}.ppf-section-toggle b{color:var(--ppf-accent);font-size:14px;transition:transform .25s}.ppf-section-toggle[aria-expanded="false"] b{transform:rotate(180deg)}.ppf-section-body{margin-top:14px}.ppf-section-toggle[aria-expanded="false"]+.ppf-section-body{display:none}
.ppf-search-wrap{display:flex;align-items:center;gap:8px;margin-top:10px;border:1px solid rgba(95,252,167,.28);border-radius:13px;background:rgba(0,0,0,.16);padding:0 12px}.ppf-search-wrap span{color:var(--ppf-accent);font-size:20px}.ppf-search{width:100%;height:42px!important;padding:0!important;border:0!important;outline:0!important;background:transparent!important;color:#fff!important;box-shadow:none!important;font-size:13px!important}.ppf-search::placeholder{color:rgba(255,255,255,.37)}
.ppf-check-list{display:flex;flex-direction:column;gap:10px}.ppf-check{display:flex;align-items:center;gap:9px;cursor:pointer;color:rgba(255,255,255,.82);font-size:13px;line-height:1.25}.ppf-check input{position:absolute;opacity:0;pointer-events:none}.ppf-box{width:17px;height:17px;flex:0 0 17px;border:1px solid rgba(255,255,255,.25);border-radius:5px;position:relative;background:rgba(255,255,255,.02);transition:.2s}.ppf-check input:checked+.ppf-box{background:var(--ppf-accent);border-color:var(--ppf-accent)}.ppf-check input:checked+.ppf-box:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #07140f;border-width:0 2px 2px 0;transform:rotate(45deg)}.ppf-check-label{flex:1}.ppf-check small{color:rgba(255,255,255,.32);font-size:11px}
.ppf-price-values{display:flex;justify-content:space-between;font-size:12px;color:rgba(255,255,255,.82);margin-bottom:12px}.ppf-price-values b{font-weight:650}.ppf-range-wrap{height:24px;position:relative}.ppf-range-track,.ppf-range-fill{position:absolute;top:10px;left:0;right:0;height:4px;border-radius:10px}.ppf-range-track{background:rgba(255,255,255,.12)}.ppf-range-fill{background:var(--ppf-accent)}.ppf-range{position:absolute;left:0;top:0;width:100%;height:24px;margin:0!important;background:transparent!important;pointer-events:none;-webkit-appearance:none;appearance:none;border:0!important;padding:0!important}.ppf-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:50%;background:var(--ppf-accent);border:3px solid #0d2319;box-shadow:0 0 0 1px var(--ppf-accent);cursor:pointer}.ppf-range::-moz-range-thumb{pointer-events:auto;width:14px;height:14px;border-radius:50%;background:var(--ppf-accent);border:3px solid #0d2319;box-shadow:0 0 0 1px var(--ppf-accent);cursor:pointer}
.ppf-switch-row{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:13px;font-weight:650;cursor:pointer}.ppf-switch-row input{display:none}.ppf-switch-row i{width:40px;height:22px;background:rgba(255,255,255,.13);border-radius:99px;position:relative;transition:.2s}.ppf-switch-row i:after{content:"";width:16px;height:16px;background:#fff;border-radius:50%;position:absolute;left:3px;top:3px;transition:.2s}.ppf-switch-row input:checked+i{background:var(--ppf-accent)}.ppf-switch-row input:checked+i:after{left:21px;background:#07140f}
.ppf-discount-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.ppf-discount-grid button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);color:rgba(255,255,255,.72);border-radius:9px;padding:8px 3px;font-size:11px;cursor:pointer}.ppf-discount-grid button.active{border-color:var(--ppf-accent);background:rgba(95,252,167,.13);color:var(--ppf-accent)}
.ppf-sort,.ppf-mobile-sort{width:100%;height:42px;border-radius:12px!important;border:1px solid rgba(95,252,167,.25)!important;background:#071b13!important;color:#fff!important;padding:0 12px!important;box-shadow:none!important;font-size:12px}.ppf-sidebar-actions{padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.ppf-reset{width:100%;border:1px solid rgba(255,255,255,.16);background:transparent;color:rgba(255,255,255,.75);border-radius:12px;padding:11px 12px;cursor:pointer;font-weight:650}.ppf-reset:hover{border-color:var(--ppf-accent);color:var(--ppf-accent)}.ppf-mobile-apply{display:none}
.ppf-content{min-width:0;position:relative}.ppf-content-top{min-height:38px;display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px}.ppf-result-summary{font-size:13px;color:rgba(255,255,255,.65)}.ppf-result-summary strong{font-size:15px;color:var(--ppf-accent)}.ppf-active-filters{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.ppf-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 8px;background:rgba(95,252,167,.09);border:1px solid rgba(95,252,167,.18);border-radius:30px;font-size:10px;color:rgba(255,255,255,.74)}
.ppf-results{position:relative}.ppf-results ul.products{margin-top:0!important}.ppf-loading{display:none;position:absolute;z-index:20;left:50%;top:110px;transform:translateX(-50%);gap:6px;padding:12px 16px;background:rgba(5,20,14,.8);border:1px solid rgba(95,252,167,.25);border-radius:99px;backdrop-filter:blur(8px)}.ppf-shell.is-loading .ppf-loading{display:flex}.ppf-shell.is-loading .ppf-results{opacity:.38;pointer-events:none}.ppf-loading span{width:7px;height:7px;border-radius:50%;background:var(--ppf-accent);animation:ppf-bounce .8s infinite alternate}.ppf-loading span:nth-child(2){animation-delay:.15s}.ppf-loading span:nth-child(3){animation-delay:.3s}@keyframes ppf-bounce{to{transform:translateY(-5px);opacity:.45}}
.ppf-empty{grid-column:1/-1;text-align:center;padding:65px 20px;border:1px dashed rgba(95,252,167,.24);border-radius:24px;background:rgba(4,18,12,.48);color:rgba(255,255,255,.65)}.ppf-empty span{font-size:38px;color:var(--ppf-accent)}.ppf-empty h3{color:#fff;margin:8px 0 4px}.ppf-empty p{margin:0}
.ppf-pages{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:34px}.ppf-pages button{min-width:38px;height:38px;border-radius:11px;border:1px solid rgba(95,252,167,.18);background:rgba(6,24,16,.7);color:#fff;cursor:pointer}.ppf-pages button.active,.ppf-pages button:hover{background:var(--ppf-accent);border-color:var(--ppf-accent);color:#07140f}.ppf-pages span{color:rgba(255,255,255,.45)}
.ppf-mobile-tools,.ppf-overlay{display:none}
@media (max-width:900px){
 .ppf-shell{display:block}.ppf-mobile-tools{display:flex;align-items:center;gap:10px;margin-bottom:18px;position:sticky;top:8px;z-index:45;padding:8px;border:1px solid rgba(95,252,167,.17);border-radius:16px;background:rgba(5,20,14,.88);backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(0,0,0,.16)}.ppf-mobile-open{height:43px;flex:1;border:0;border-radius:11px;background:var(--ppf-accent);color:#07140f;font-weight:800;cursor:pointer}.ppf-active-count:not(:empty){display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:19px;padding:0 5px;background:#07140f;color:var(--ppf-accent);border-radius:99px;margin-left:5px;font-size:10px}.ppf-mobile-sort{flex:1;max-width:48%;height:43px}
 .ppf-sidebar{position:fixed;z-index:100001;left:0;top:0;bottom:0;width:min(90vw,360px);transform:translateX(-105%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}.ppf-shell.ppf-open .ppf-sidebar{transform:translateX(0)}.ppf-sidebar-inner{position:absolute;inset:0;max-height:none;border-radius:0 25px 25px 0;padding:24px 20px 20px;overflow:auto}.ppf-mobile-close{display:block}.ppf-overlay{display:block;position:fixed;z-index:100000;inset:0;background:rgba(0,0,0,.66);opacity:0;visibility:hidden;transition:.25s;backdrop-filter:blur(3px)}.ppf-shell.ppf-open .ppf-overlay{opacity:1;visibility:visible}.ppf-shell.ppf-open{z-index:100000}.ppf-shell.ppf-open~*{}body.ppf-lock{overflow:hidden}
 .ppf-desktop-sort-section{display:none}.ppf-mobile-apply{display:block;width:100%;margin-top:9px;border:0;border-radius:12px;background:var(--ppf-accent);color:#07140f;padding:13px 12px;font-weight:800;cursor:pointer}.ppf-content-top{margin-bottom:10px}.ppf-active-filters{justify-content:flex-start}.ppf-content-top{flex-direction:column}.ppf-result-summary{order:2}
}
@media (max-width:520px){.ppf-mobile-tools{gap:7px}.ppf-mobile-open,.ppf-mobile-sort{font-size:11px}.ppf-sidebar{width:92vw}.ppf-sidebar-inner{padding-left:17px;padding-right:17px}.ppf-content-top{min-height:0}.ppf-active-filters{display:none}}


/* v1.0.1 – WooCommerce card/grid compatibility.
   The shortcode is now a .woocommerce context so the site's existing
   WooCommerce card CSS applies exactly like on the original product page. */
.ppf-results ul.products{
    display:grid !important;
    grid-template-columns:repeat(var(--ppf-cols-desktop,3),minmax(0,1fr)) !important;
    gap:38px 34px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}
.ppf-results ul.products::before,
.ppf-results ul.products::after{display:none !important;content:none !important;}
.ppf-results ul.products li.product{
    float:none !important;
    clear:none !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
}
@media (max-width:1100px) and (min-width:901px){
    .ppf-results ul.products{grid-template-columns:repeat(var(--ppf-cols-tablet,2),minmax(0,1fr)) !important;}
}
@media (max-width:900px){
    .ppf-results ul.products{grid-template-columns:repeat(var(--ppf-cols-tablet,2),minmax(0,1fr)) !important;gap:24px 18px !important;}
}
@media (max-width:520px){
    .ppf-results ul.products{grid-template-columns:repeat(var(--ppf-cols-mobile,2),minmax(0,1fr)) !important;gap:18px 12px !important;}
}

/* v1.0.2 – desktop sticky filter rail.
   The grid item itself is sticky, so it stays visible while product results scroll. */
@media (min-width:901px){
    .ppf-shell{overflow:visible !important;}
    .ppf-sidebar{
        position:-webkit-sticky !important;
        position:sticky !important;
        top:var(--ppf-sticky-offset) !important;
        align-self:start !important;
        height:max-content !important;
        max-height:calc(100vh - var(--ppf-sticky-offset) - 16px) !important;
    }
    .ppf-sidebar-inner{
        position:relative !important;
        top:auto !important;
        max-height:calc(100vh - var(--ppf-sticky-offset) - 16px) !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
    }
}

@media (max-width:900px){
    .ppf-sidebar{
        position:fixed !important;
        top:0 !important;
        bottom:0 !important;
        max-height:none !important;
        height:auto !important;
        align-self:auto !important;
    }
    .ppf-sidebar-inner{max-height:none !important;}
}

/* v1.0.3 – product card overlay: pure black fade only.
   Removes the previous grey veil so product photography stays crisp. */
.ppf-results.woocommerce ul.products li.product::after,
.ppf-results .woocommerce ul.products li.product::after,
.ppf-results ul.products li.product::after {
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:62% !important;
    pointer-events:none !important;
    background:linear-gradient(
        to top,
        rgba(0,0,0,.98) 0%,
        rgba(0,0,0,.84) 20%,
        rgba(0,0,0,.52) 42%,
        rgba(0,0,0,.18) 65%,
        rgba(0,0,0,0) 100%
    ) !important;
    border-radius:0 0 28px 28px !important;
    z-index:1 !important;
}
