/* Inherit the site's font through each form and typography element.
 * Keep specificity below Elementor's per-widget typography selectors.
 * No named font, external font request, or !important override is used.
 */
.elementor-widget-product-loop-filter,
.elementor-widget-product-loop-filter > .elementor-widget-container,
.elementor-widget-product-loop-filter .plf-form,
.plf-form .plf-header,
.plf-form .plf-heading,
.plf-form .plf-mark,
.plf-form .plf-body,
.plf-form .plf-group,
.plf-form .plf-label,
.plf-form .plf-price,
.plf-form .plf-hint,
.plf-form .plf-options,
.plf-form .plf-choice,
.plf-form .plf-actions,
.plf-form .plf-input,
.plf-form .plf-submit,
.plf-form .plf-clear,
.plf-form label,
.plf-form legend,
.plf-form fieldset,
.plf-form span,
.plf-form small,
.plf-form option {
    font-family: inherit;
}
.plf-form{--plf-accent:#47578A;box-sizing:border-box;width:100%;padding:24px;border:1px solid #e4e9e7;border-radius:18px;background:#fff;color:#243a35;font-size:14px;line-height:1.8;box-shadow:0 5px 24px #47578A10;text-align:start}
.plf-form *{box-sizing:border-box}.plf-header{display:flex;align-items:center;gap:10px;padding-bottom:18px;margin-bottom:22px;border-bottom:1px solid #e9eeeb}.plf-form .plf-heading{padding:0;margin:0;color:#193e35;font-size:18px;font-weight:700;line-height:1.6}.plf-mark{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;background:#47578A;color:#fff;border-radius:10px;font-size:24px}.plf-body{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}.plf-form .plf-group{display:block;min-width:0;width:100%;margin:0;padding:0 0 18px;border:0;border-bottom:1px solid #edf0ee}.plf-form .plf-label{display:block;float:none;width:100%;margin:0 0 10px;padding:0;color:#29413a;font-size:14px;font-weight:600}.plf-label small{font-weight:400;font-size:11px;color:#73867e}.plf-form .plf-input{display:block;width:100%;max-width:100%;min-width:0;height:44px;margin:0;padding:9px 12px;border:1px solid #dce4df;border-radius:9px;background:#fafcfb;color:#253e35;font:inherit;font-size:13px;line-height:1.5;box-shadow:none}.plf-form select.plf-input{padding-inline-end:24px}.plf-form .plf-input:focus{border-color:#47578A;outline:2px solid #47578A40;outline-offset:2px;background:#fff}.plf-input::placeholder{color:#8a9691;opacity:1}.plf-price{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.plf-price label{min-width:0}.plf-hint{display:block;color:#7d8b84;font-size:12px;margin-bottom:5px}.plf-price input{direction:ltr;text-align:start}.plf-options{display:flex;flex-direction:column;gap:9px;max-height:220px;overflow-y:auto;overscroll-behavior:contain;padding:2px 3px;scrollbar-width:thin}.plf-form .plf-choice{display:flex;align-items:center;gap:10px;min-height:28px;margin:0;font-size:13px;font-weight:400;cursor:pointer;color:#40564d}.plf-form input[type=checkbox]{appearance:auto;display:inline-block;flex:0 0 17px;width:17px;height:17px;min-height:0;margin:0;accent-color:var(--plf-accent);cursor:pointer}.plf-toggles .plf-choice+.plf-choice{margin-top:12px}.plf-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:22px}.plf-form .plf-submit{display:block;width:100%;min-height:46px;padding:11px 20px;border:1px solid transparent;border-radius:10px;background:#47578A;color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .15s}.plf-form .plf-submit:hover{background:#47578A}.plf-form .plf-clear{color:#7c8d85;font-size:12px;text-decoration:none}.plf-form .plf-clear:hover{color:#47578A;text-decoration:underline}.plf-submit:focus-visible,.plf-clear:focus-visible,.plf-form input[type=checkbox]:focus-visible{outline:2px solid #47578A;outline-offset:3px}@media(max-width:767px){.plf-form{padding:18px;border-radius:14px}.plf-body{grid-template-columns:minmax(0,1fr)}}

/* Set the family once on the widget root. Elementor typography controls
 * target the individual elements and can override this inherited value. */
.plf-shell[data-plf-font="global"]{
    font-family:var(--e-global-typography-text-font-family,var(--plf-theme-font,inherit));
}
.plf-shell[data-plf-font="inherit"]{
    font-family:var(--plf-theme-font,inherit);
}
.plf-shell[data-plf-font="custom"]{
    font-family:inherit;
}
.plf-shell input,
.plf-shell select,
.plf-shell button,
.plf-shell textarea{
    font-family:inherit;
}
.plf-shell .plf-input::placeholder{font-family:inherit;font-size:13px;font-weight:400;line-height:normal;color:#687c72;opacity:1;text-align:start}
.plf-shell .plf-price .plf-input{direction:inherit;text-align:start;min-height:48px;height:auto;padding:12px 10px}
.plf-shell .plf-price{gap:10px}
.plf-shell{position:relative;min-width:0;width:100%;max-width:100%;box-sizing:border-box}
.plf-mobile-toggle{display:none}
@media(max-width:1024px){
 .elementor-element.elementor-widget-product-loop-filter{position:static!important;inset:auto!important;transform:none!important;float:none!important;z-index:auto!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;min-height:0!important;margin-block:0!important;align-self:stretch!important}
 .elementor-widget-product-loop-filter>.elementor-widget-container,.plf-shell,.plf-shell .plf-form{position:static!important;inset:auto!important;transform:none!important;float:none!important;z-index:auto!important;min-width:0!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:none!important;margin-block:0!important}
 .plf-shell .plf-body{grid-template-columns:minmax(0,1fr)}
 .plf-shell.plf-ready[data-plf-mobile="collapse"] .plf-mobile-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;margin:0;padding:12px 16px;border:1px solid #dce4df;border-radius:10px;background:#fff;color:#29413a;font:inherit;cursor:pointer;box-sizing:border-box}
 .plf-shell.plf-ready[data-plf-mobile="collapse"][data-plf-expanded="false"] .plf-form{display:none!important}
 .plf-shell.plf-ready[data-plf-mobile="collapse"][data-plf-expanded="true"] .plf-form{display:block;margin-top:10px!important}
 .plf-mobile-toggle:focus-visible{outline:2px solid #47578A;outline-offset:2px}
}
@media(max-width:359px){.plf-shell .plf-price{grid-template-columns:minmax(0,1fr)}}

/* The filter follows document scrolling at every viewport size, including desktop. */
.elementor-element.elementor-widget-product-loop-filter,
.elementor-widget-product-loop-filter > .elementor-widget-container,
.elementor-widget-product-loop-filter .plf-shell,
.elementor-widget-product-loop-filter .plf-form {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    translate: none !important;
    float: none !important;
    z-index: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}
.elementor-element.elementor-widget-product-loop-filter {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    align-self: flex-start;
}
/* A spacer cloned by Elementor's Sticky handler must not duplicate panel height. */
.elementor-widget-product-loop-filter.elementor-sticky__spacer {
    display: none !important;
}
.plf-options { overscroll-behavior: auto; }

/* Two-handle price range. Values come from products in the current category. */
.plf-price-values,.plf-price-limits{display:flex;align-items:center;justify-content:space-between;gap:12px}
.plf-price-values{margin:0 0 10px;color:#40564d;font-size:12px}
.plf-price-values strong{color:#193e35;font-weight:700}
.plf-price-limits{margin-top:2px;color:#819087;font-size:10px;direction:ltr}
.plf-range{position:relative;height:32px;margin:2px 0;direction:ltr}
.plf-range-track{position:absolute;inset-inline:0;top:50%;height:5px;border-radius:999px;transform:translateY(-50%);background:linear-gradient(to right,#dce4df 0%,#dce4df var(--plf-from),var(--plf-accent) var(--plf-from),var(--plf-accent) var(--plf-to),#dce4df var(--plf-to),#dce4df 100%)}
.plf-range input[type=range]{position:absolute;inset:0;width:100%;height:32px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;appearance:none;-webkit-appearance:none;pointer-events:none;direction:ltr}
.plf-range input[type=range]::-webkit-slider-runnable-track{height:5px;background:transparent;border:0}
.plf-range input[type=range]::-moz-range-track{height:5px;background:transparent;border:0}
.plf-range input[type=range]::-webkit-slider-thumb{width:18px;height:18px;margin-top:-6.5px;border:3px solid #fff;border-radius:50%;background:var(--plf-accent);box-shadow:0 1px 5px #47578A40;appearance:none;-webkit-appearance:none;pointer-events:auto;cursor:grab}
.plf-range input[type=range]::-moz-range-thumb{width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:var(--plf-accent);box-shadow:0 1px 5px #47578A40;pointer-events:auto;cursor:grab}
.plf-range input[type=range]:focus-visible{outline:none}
.plf-range input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--plf-accent);outline-offset:3px}
.plf-range input[type=range]:focus-visible::-moz-range-thumb{outline:2px solid var(--plf-accent);outline-offset:3px}

/* AJAX result refresh. The grid keeps its Elementor layout; only a short loading state is added. */
.plf-loop-loading{opacity:.45;pointer-events:none;transition:opacity .18s ease}
.plf-shell.plf-is-loading .plf-submit{cursor:wait;opacity:.72}
.plf-shell.plf-is-loading .plf-submit:disabled{pointer-events:none}
.plf-shell.plf-live-ready .plf-submit{display:none}
.plf-shell.plf-live-ready .plf-actions{margin-top:14px}
.plf-shell.plf-is-loading .plf-form{cursor:progress}
.plf-shell.plf-is-loading .plf-header::after{content:'';width:17px;height:17px;margin-inline-start:auto;border:2px solid #d9deeb;border-top-color:var(--plf-accent);border-radius:50%;animation:plf-spin .7s linear infinite}
@keyframes plf-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.plf-shell.plf-is-loading .plf-header::after{animation-duration:1.5s}}

/* Visual brand and color filters (v1.7.0). */
.plf-screen-reader{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.plf-brand-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:260px;padding:2px;overflow-y:auto}
.plf-brand-choice{position:relative;display:block;min-width:0;margin:0;cursor:pointer}
.plf-visual-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.plf-brand-card{position:relative;display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;padding:8px 10px;border:1px solid #e0e6e3;border-radius:10px;background:#fff;transition:border-color .15s,background-color .15s,box-shadow .15s,transform .15s;overflow:hidden}
.plf-brand-logo{display:block;width:auto;max-width:100%;max-height:38px;object-fit:contain;filter:none}
.plf-brand-fallback{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#40564d;font-size:12px;font-weight:600;text-align:center}
.plf-brand-choice:hover .plf-brand-card{border-color:#aeb6cc;background:#f7f8fc}
.plf-brand-choice .plf-visual-input:checked + .plf-brand-card{border-color:var(--plf-accent);background:#f1f3f9;box-shadow:0 0 0 1px var(--plf-accent)}
.plf-brand-choice .plf-visual-input:checked + .plf-brand-card::after{content:'✓';position:absolute;top:5px;inset-inline-end:6px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--plf-accent);color:#fff;font-size:11px;font-weight:700;line-height:1}
.plf-brand-choice .plf-visual-input:focus-visible + .plf-brand-card{outline:2px solid var(--plf-accent);outline-offset:2px}
.plf-color-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;max-height:240px;padding:2px;overflow-y:auto}
.plf-color-choice{position:relative;display:flex;align-items:center;gap:8px;min-width:0;min-height:34px;margin:0;padding:4px 5px;border:1px solid transparent;border-radius:9px;cursor:pointer;color:#40564d;transition:border-color .15s,background-color .15s}
.plf-color-choice:hover{background:#f7f8fc}
.plf-color-choice:has(.plf-visual-input:checked){border-color:#b9c0d2;background:#f1f3f9}
.plf-color-dot{position:relative;display:block;flex:0 0 auto;width:24px;height:24px;border:1px solid #ced7d3;border-radius:50%;background:var(--plf-swatch,#f1f3f2);box-shadow:inset 0 0 0 1px #ffffff80}
.plf-color-missing{background:repeating-linear-gradient(135deg,#f0f2f1 0 5px,#d9dfdc 5px 10px)}
.plf-color-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.plf-color-choice .plf-visual-input:checked + .plf-color-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--plf-accent)}
.plf-color-choice .plf-visual-input:checked + .plf-color-dot::after{content:'✓';position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800;text-shadow:0 1px 2px #0008}
.plf-color-choice .plf-visual-input:focus-visible + .plf-color-dot{outline:2px solid var(--plf-accent);outline-offset:3px}
@supports not selector(:has(*)){.plf-color-choice{border-color:#edf0ee}}
@media(max-width:359px){.plf-brand-options,.plf-color-options{grid-template-columns:minmax(0,1fr)}}
