/* Native Nordisk Maskin multi-select. Structural rules only; visual values are inherited from existing filter design settings. */
/* Hide the source <select multiple> from the very first paint. This selector does not
 * depend on JS adding .nm-multiselect__source, so a native listbox can never affect
 * Builder measurements or flash underneath the custom control during initialization. */
.nm-product-filter-wrapper:not(.nm-multiselect-fallback) select.filter-products[multiple],
select.nm-multiselect__source{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;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none!important}

/* FOUC guard. Keep the wrapper itself in normal flow, but do not expose half-initialized
 * controls. The native multiple-select is already out of flow above, so pending state
 * can no longer leave a false 4-row select height in the Builder. */
.nm-product-filter-wrapper.nm-multiselect-pending .product-filters,
.nm-product-filter-wrapper.nm-multiselect-pending .sorting-filter,
.nm-product-filter-wrapper.nm-multiselect-pending .show-more-filters{visibility:hidden;opacity:0;pointer-events:none}
.nm-product-filter-wrapper.nm-multiselect-ready .product-filters,
.nm-product-filter-wrapper.nm-multiselect-ready .sorting-filter,
.nm-product-filter-wrapper.nm-multiselect-ready .show-more-filters{visibility:visible;opacity:1;pointer-events:auto}

/* Runtime fallback: filter_products.js adds this only if the custom component has still
 * not initialized after the grace period. Never show a native select at the same time
 * as an initialized .nm-multiselect. */
.nm-product-filter-wrapper.nm-multiselect-fallback .product-filters,
.nm-product-filter-wrapper.nm-multiselect-fallback .sorting-filter,
.nm-product-filter-wrapper.nm-multiselect-fallback .show-more-filters{visibility:visible;opacity:1;pointer-events:auto}
.nm-product-filter-wrapper.nm-multiselect-fallback select.filter-products[multiple]:not(.nm-multiselect__source){position:static!important;display:block!important;width:100%!important;max-width:100%!important;height:auto!important;min-height:34px!important;margin:0!important;padding:6px 10px!important;overflow:auto!important;clip:auto!important;clip-path:none!important;white-space:normal!important;opacity:1!important;pointer-events:auto!important}
.nm-multiselect{position:relative;display:inline-block;vertical-align:middle;width:100%;max-width:100%;box-sizing:border-box;font-size:13px;user-select:none;z-index:2}
.nm-multiselect *{box-sizing:border-box}
.nm-multiselect__control{position:relative;overflow:visible;margin:0;padding:0 5px;width:100%;min-height:25px;height:auto;border:1px solid #aaa;background:#fff;cursor:text;display:flex;align-items:center;flex-wrap:wrap}
.nm-multiselect__values{display:flex;align-items:center;flex-wrap:wrap;width:100%;min-width:0}
.nm-multiselect__input{flex:1 1 40px;min-width:25px;width:25px;max-width:100%;margin:1px 0;padding:0;height:25px;outline:0;border:0!important;background:transparent!important;box-shadow:none!important;color:#999;font-size:100%;font-family:inherit;line-height:normal;border-radius:0!important}
.nm-multiselect__input::placeholder{color:inherit;opacity:1}
/* v522: after choosing a value, the search field must not occupy a second row.
 * Visually collapse it while closed, but keep it focusable for keyboard users;
 * focusing the field reopens the picker, and clicking the control does too. */
.nm-multiselect.has-selection:not(.is-open) .nm-multiselect__input{
 position:absolute!important;width:1px!important;min-width:1px!important;max-width:1px!important;
 height:1px!important;min-height:1px!important;margin:0!important;padding:0!important;
 border:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
 clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important;
}
.nm-multiselect__chip{position:relative;display:inline-flex;align-items:center;max-width:100%;margin:3px 5px 3px 0;padding:3px 20px 3px 5px;border:1px solid #aaa;border-radius:3px;background:#eee;color:#333;line-height:13px;cursor:default;white-space:normal;overflow-wrap:anywhere}
.nm-multiselect__chip-label{min-width:0;overflow-wrap:anywhere}
.nm-multiselect__chip-remove{position:absolute;top:2px;right:3px;display:flex;align-items:center;justify-content:center;width:14px;height:14px;padding:0;margin:0;border:0!important;background:transparent!important;box-shadow:none!important;color:#777;font:700 15px/14px Arial,sans-serif;cursor:pointer;text-decoration:none}
.nm-multiselect__dropdown{display:none;position:fixed;z-index:1000001;width:100%;border:1px solid #aaa;border-top:0;background:#fff;box-shadow:0 4px 5px rgba(0,0,0,.15);overflow:hidden}
.nm-multiselect.is-open .nm-multiselect__dropdown{display:block}
.nm-multiselect.is-up .nm-multiselect__dropdown{border-top:1px solid #aaa}
.nm-multiselect__options{color:#444;position:relative;overflow-x:hidden;overflow-y:auto;margin:0;padding:0;max-height:240px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.nm-multiselect__option{display:block;margin:0;padding:5px 6px;list-style:none;line-height:15px;overflow-wrap:anywhere;cursor:pointer;touch-action:manipulation}
.nm-multiselect__option.is-highlighted{background:#3875d7;color:#fff}
.nm-multiselect__option.is-selected{color:#ccc;cursor:default}
.nm-multiselect__option.is-disabled{color:#ccc;cursor:default}
.nm-multiselect.is-disabled{opacity:.5;cursor:default}
.nm-multiselect.is-disabled .nm-multiselect__control,.nm-multiselect.is-disabled .nm-multiselect__input{cursor:default}
.nm-multiselect:focus-within .nm-multiselect__control{outline:2px solid currentColor;outline-offset:1px}
.nm-multiselect__chip-remove:focus-visible,.nm-multiselect__option:focus-visible,.nm-multiselect__input:focus-visible{outline:2px solid currentColor;outline-offset:1px}

.nm-multiselect.is-loading .nm-multiselect__control{cursor:progress}.nm-multiselect.is-loading .nm-multiselect__dropdown{cursor:progress}
[dir="rtl"] .nm-multiselect__values{direction:rtl}[dir="rtl"] .nm-multiselect__chip{margin:3px 0 3px 5px;padding:3px 5px 3px 20px}[dir="rtl"] .nm-multiselect__chip-remove{right:auto;left:3px}


/* v453: Filters must have usable widths on a narrow visual viewport. The
 * archive settings still govern each control's own max-width and typography;
 * only the intrinsic flex distribution is replaced by a responsive grid. */
@media screen and (max-width:768px) {
    .nm-product-filter-wrapper .product-filters {
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));
        gap:12px;
        width:100%;
        min-width:0;
        max-width:100%;
    }
    .nm-product-filter-wrapper .product-filters>.inner-filter-wrapper {
        width:100%;
        min-width:0;
        flex:none;
    }
    .nm-product-filter-wrapper .nm-multiselect__chip {
        max-width:100%;
    }
}
/* iPhone Safari zooms the entire page when focusing form fields smaller than
 * 16px. Keep custom Builder font sizes in storage; only raise the interactive
 * field's rendered font size on touch WebKit. Never disable user zoom. */
@supports (-webkit-touch-callout:none) {
    @media (hover:none) and (pointer:coarse) {
        .nm-product-filter-wrapper .nm-multiselect__input,
        .nm-product-filter-wrapper .sorting-filter select,
        .nm-product-filter-wrapper.nm-multiselect-fallback select.filter-products[multiple]:not(.nm-multiselect__source) {
            font-size:max(16px,1em)!important;
        }
    }
}

/* v459: Structural placeholder is inert unless the shared-controls row is selected. */
.nm-product-filter-actions-break{display:none}
/* V489: tapping the multi-filter on touch phones opens its options instead of
 * focusing the nested search input and displaying a software keyboard. */
@media(max-width:768px) and (pointer:coarse){
 .nm-product-filter-wrapper .nm-multiselect__input{pointer-events:none;caret-color:transparent;}
 .nm-product-filter-wrapper .nm-multiselect__control{cursor:pointer;}
}

/* v525: while the multi-select is open, keep selected chips above a full-row search input.
   Unlike an unconditional 100% width on input, this preserves the compact, closed state. */
.nm-product-filter-wrapper .nm-multiselect.is-open .nm-multiselect__values{display:flex;flex-wrap:wrap;align-items:center;min-width:0;width:100%;}
.nm-product-filter-wrapper .nm-multiselect.is-open .nm-multiselect__input{display:block!important;flex:0 0 100%!important;order:99;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box!important;margin-left:0!important;margin-right:0!important;position:relative!important;opacity:1!important;clip:auto!important;clip-path:none!important;}
