:root {
    --nsf-navy: #06364a;
    --nsf-navy-2: #0b4b62;
    --nsf-green: #7fc94a;
    --nsf-green-soft: #edf8e6;
    --nsf-text: #17313d;
    --nsf-muted: #6d7f88;
    --nsf-line: #dfe7ea;
    --nsf-surface: #ffffff;
    --nsf-surface-soft: #f7faf9;
    --nsf-shadow: 0 18px 50px rgba(6, 54, 74, .08);
    --nsf-radius-xl: 28px;
    --nsf-radius-lg: 20px;
    --nsf-radius-md: 14px;
}

body.noorin-storefront-listing-route {
    background: #f4f8f7;
}

.nsf-listing,
.nsf-listing * {
    box-sizing: border-box;
}

.nsf-listing {
    position: relative;
    overflow: clip;
    color: var(--nsf-text);
    font-family: Vazirmatn, IRANSansX, Peyda, "Segoe UI", Tahoma, Arial, sans-serif;
    line-height: 1.8;
    background:
        radial-gradient(circle at 88% 8%, rgba(127, 201, 74, .11), transparent 26%),
        radial-gradient(circle at 10% 38%, rgba(6, 54, 74, .06), transparent 24%),
        #f4f8f7;
}

.nsf-listing__container {
    position: relative;
    z-index: 1;
    width: min(1480px, calc(100% - 48px));
    margin: 0 auto;
    padding: 28px 0 64px;
}

.nsf-listing__preview-note {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 14px;
    padding: 7px 12px;
    border: 1px solid rgba(127, 201, 74, .36);
    border-radius: 999px;
    background: rgba(255, 255, 255, .82);
    color: var(--nsf-navy);
    font-size: 12px;
    font-weight: 600;
    backdrop-filter: blur(12px);
}

.nsf-listing__preview-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--nsf-green);
    box-shadow: 0 0 0 5px rgba(127, 201, 74, .14);
}

.nsf-listing-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(320px, .7fr);
    align-items: stretch;
    gap: 22px;
    padding: 34px;
    border: 1px solid rgba(6, 54, 74, .08);
    border-radius: var(--nsf-radius-xl);
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,250,249,.95));
    box-shadow: var(--nsf-shadow);
}

.nsf-listing-hero__content {
    padding: 8px 4px;
}

.nsf-listing-hero__eyebrow {
    display: inline-flex;
    margin-bottom: 10px;
    color: #5ba42a;
    font-size: 12px;
    font-weight: 700;
}

.nsf-listing-hero h1 {
    max-width: 760px;
    margin: 0;
    color: var(--nsf-navy);
    font-size: clamp(30px, 4vw, 56px);
    font-weight: 700;
    line-height: 1.45;
    letter-spacing: -.03em;
}

.nsf-listing-hero p {
    max-width: 760px;
    margin: 14px 0 0;
    color: var(--nsf-muted);
    font-size: 15px;
}

.nsf-listing-hero__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.nsf-listing-hero__stats > div {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 152px;
    padding: 22px;
    border: 1px solid rgba(6, 54, 74, .08);
    border-radius: 20px;
    background: #fff;
}

.nsf-listing-hero__stats strong {
    color: var(--nsf-navy);
    font-size: 26px;
    font-weight: 700;
}

.nsf-listing-hero__stats span {
    color: var(--nsf-muted);
    font-size: 12px;
}

.nsf-listing-toolbar {
    position: sticky;
    top: 46px;
    z-index: 30;
    display: grid;
    grid-template-columns: auto minmax(240px, 1fr) auto auto;
    align-items: center;
    gap: 12px;
    margin-top: 18px;
    padding: 14px;
    border: 1px solid rgba(6, 54, 74, .08);
    border-radius: 18px;
    background: rgba(255,255,255,.91);
    box-shadow: 0 10px 30px rgba(6, 54, 74, .06);
    backdrop-filter: blur(18px);
}

.nsf-listing-toolbar__summary {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 118px;
    padding: 0 4px;
}

.nsf-listing-toolbar__summary strong {
    color: var(--nsf-navy);
    font-size: 18px;
}

.nsf-listing-toolbar__summary span {
    color: var(--nsf-muted);
    font-size: 12px;
}

.nsf-listing-search {
    position: relative;
    display: flex;
    align-items: center;
}

.nsf-listing-search svg {
    position: absolute;
    width: 19px;
    height: 19px;
    color: #78909a;
}

.nsf-listing-search input,
.nsf-listing-sort select {
    width: 100%;
    min-height: 46px;
    border: 1px solid var(--nsf-line);
    border-radius: 12px;
    background: #fff;
    color: var(--nsf-text);
    font: inherit;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.nsf-listing-search input {
    padding: 0 44px 0 14px;
}

.nsf-listing-search input:focus,
.nsf-listing-sort select:focus {
    border-color: rgba(127,201,74,.85);
    box-shadow: 0 0 0 4px rgba(127,201,74,.12);
}

.nsf-listing-sort {
    display: grid;
    grid-template-columns: auto minmax(160px, 1fr);
    align-items: center;
    gap: 9px;
}

.nsf-listing-sort > span {
    color: var(--nsf-muted);
    font-size: 12px;
}

.nsf-listing-sort select {
    padding: 0 12px;
}

.nsf-listing-toolbar__submit,
.nsf-listing-filter__apply {
    min-height: 46px;
    border: 0;
    border-radius: 12px;
    background: var(--nsf-navy);
    color: #fff !important;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.nsf-listing-toolbar__submit {
    padding: 0 20px;
}

.nsf-listing-toolbar__submit:hover,
.nsf-listing-filter__apply:hover {
    background: var(--nsf-navy-2);
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(6,54,74,.16);
}

.nsf-listing__layout {
    display: grid;
    grid-template-columns: 286px minmax(0, 1fr);
    align-items: start;
    gap: 22px;
    margin-top: 22px;
}

.nsf-listing-sidebar {
    position: sticky;
    top: 128px;
    padding: 20px;
    border: 1px solid rgba(6,54,74,.08);
    border-radius: var(--nsf-radius-lg);
    background: rgba(255,255,255,.92);
    box-shadow: 0 14px 38px rgba(6,54,74,.05);
}

.nsf-listing-sidebar__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--nsf-line);
}

.nsf-listing-sidebar__header span {
    color: var(--nsf-muted);
    font-size: 11px;
}

.nsf-listing-sidebar__header h2 {
    margin: 2px 0 0;
    color: var(--nsf-navy);
    font-size: 20px;
    font-weight: 650;
}

.nsf-listing-sidebar__phase {
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--nsf-green-soft);
    color: #4d9125 !important;
    font-weight: 700;
}

.nsf-listing-filter__group {
    border-bottom: 1px solid var(--nsf-line);
}

.nsf-listing-filter__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 16px 0 12px;
    border: 0;
    background: transparent;
    color: var(--nsf-text);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
}

.nsf-listing-filter__toggle svg {
    width: 18px;
    height: 18px;
    transition: transform .28s ease;
}

.nsf-listing-filter__group:not(.is-open) .nsf-listing-filter__toggle svg {
    transform: rotate(90deg);
}

.nsf-listing-filter__content {
    max-height: 420px;
    overflow: auto;
    padding: 0 0 14px;
    transition: max-height .3s ease, opacity .25s ease;
}

.nsf-listing-filter__group:not(.is-open) .nsf-listing-filter__content {
    max-height: 0;
    padding-bottom: 0;
    opacity: 0;
    overflow: hidden;
}

.nsf-listing-radio {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 9px;
    min-height: 38px;
    color: #3f5863;
    cursor: pointer;
}

.nsf-listing-radio input {
    width: 16px;
    height: 16px;
    accent-color: var(--nsf-green);
}

.nsf-listing-radio small {
    color: #98a7ae;
}

.nsf-listing-filter__apply {
    width: 100%;
    margin-top: 16px;
}

.nsf-listing-sidebar__note {
    margin-top: 16px;
    padding: 13px;
    border-radius: 13px;
    background: var(--nsf-surface-soft);
}

.nsf-listing-sidebar__note strong {
    color: var(--nsf-navy);
    font-size: 12px;
}

.nsf-listing-sidebar__note p {
    margin: 4px 0 0;
    color: var(--nsf-muted);
    font-size: 11px;
}

.nsf-listing__results {
    position: relative;
    min-width: 0;
}

.nsf-listing__loading {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 12px;
    background: rgba(244,248,247,.82);
    color: var(--nsf-navy);
    backdrop-filter: blur(8px);
}

.nsf-listing__loading[hidden] {
    display: none;
}

.nsf-listing__spinner {
    width: 40px;
    height: 40px;
    border: 3px solid rgba(6,54,74,.12);
    border-top-color: var(--nsf-green);
    border-radius: 50%;
    animation: nsf-spin .7s linear infinite;
}

@keyframes nsf-spin { to { transform: rotate(360deg); } }

.nsf-product-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}

.nsf-product-card {
    position: relative;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(6,54,74,.08);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(6,54,74,.05);
    transition: transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}

.nsf-product-card:hover {
    transform: translateY(-4px);
    border-color: rgba(127,201,74,.42);
    box-shadow: 0 20px 48px rgba(6,54,74,.10);
}

.nsf-product-card__media {
    position: relative;
    display: block;
    aspect-ratio: 1 / .88;
    overflow: hidden;
    background: linear-gradient(180deg, #fbfdfc, #f3f7f6);
}

.nsf-product-card__media img {
    width: 100%;
    height: 100%;
    padding: 18px;
    object-fit: contain;
    transition: transform .38s cubic-bezier(.2,.75,.25,1);
}

.nsf-product-card:hover .nsf-product-card__media img {
    transform: scale(1.035);
}

.nsf-product-card__badges {
    position: absolute;
    top: 13px;
    right: 13px;
    left: 13px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.nsf-product-card__badges span {
    display: inline-flex;
    align-items: center;
    min-height: 25px;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
}

.nsf-product-card__discount {
    background: #fff0ec;
    color: #c94a2d;
}

.nsf-product-card__type {
    margin-right: auto;
    background: rgba(255,255,255,.92);
    color: var(--nsf-navy);
    box-shadow: 0 4px 16px rgba(6,54,74,.07);
}

.nsf-product-card__body {
    padding: 16px;
}

.nsf-product-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 24px;
}

.nsf-product-card__meta > span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 600;
}

.nsf-product-card__meta i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.nsf-product-card__meta .is-in-stock { color: #4a9227; }
.nsf-product-card__meta .is-in-stock i { background: var(--nsf-green); box-shadow: 0 0 0 4px rgba(127,201,74,.12); }
.nsf-product-card__meta .is-out-of-stock { color: #bd4430; }
.nsf-product-card__meta .is-out-of-stock i { background: #e46a55; }
.nsf-product-card__meta small { color: #93a2a9; font-size: 9px; }

.nsf-product-card h2 {
    min-height: 58px;
    margin: 10px 0 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.95;
}

.nsf-product-card h2 a {
    color: var(--nsf-text);
    text-decoration: none;
}

.nsf-product-card__rating {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    color: #e4a72f;
    font-size: 11px;
}

.nsf-product-card__rating strong { color: var(--nsf-text); font-weight: 600; }
.nsf-product-card__rating small { color: var(--nsf-muted); }

.nsf-product-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--nsf-line);
}

.nsf-product-card__price {
    color: var(--nsf-navy);
    font-size: 13px;
    font-weight: 650;
}

.nsf-product-card__price del {
    display: block;
    color: #9ba8ae;
    font-size: 10px;
    font-weight: 400;
}

.nsf-product-card__price ins { text-decoration: none; }

.nsf-product-card__action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: var(--nsf-navy);
    color: #fff;
    transition: transform .2s ease, background .2s ease;
}

.nsf-product-card__action:hover {
    background: var(--nsf-navy-2);
    transform: translateX(-2px);
}

.nsf-product-card__action svg { width: 18px; height: 18px; }

.nsf-listing-pagination {
    margin-top: 28px;
}

.nsf-listing-pagination ul {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.nsf-listing-pagination a,
.nsf-listing-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 11px;
    border: 1px solid var(--nsf-line);
    border-radius: 11px;
    background: #fff;
    color: var(--nsf-text);
    text-decoration: none;
}

.nsf-listing-pagination .current {
    border-color: var(--nsf-navy);
    background: var(--nsf-navy);
    color: #fff;
}

.nsf-listing-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 420px;
    padding: 30px;
    border: 1px solid var(--nsf-line);
    border-radius: 22px;
    background: #fff;
    text-align: center;
}

.nsf-listing-empty__icon {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: var(--nsf-green-soft);
    color: #579b2b;
    font-size: 30px;
}

.nsf-listing-empty h2 {
    margin: 16px 0 4px;
    color: var(--nsf-navy);
    font-size: 20px;
}

.nsf-listing-empty p { margin: 0; color: var(--nsf-muted); }
.nsf-listing-empty a { margin-top: 14px; color: #4c9225; font-weight: 600; }

@media (max-width: 1180px) {
    .nsf-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nsf-listing-hero { grid-template-columns: 1fr; }
    .nsf-listing-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .nsf-listing__container { width: min(100% - 28px, 760px); }
    .nsf-listing-toolbar {
        top: 46px;
        grid-template-columns: 1fr auto;
    }
    .nsf-listing-toolbar__summary { display: none; }
    .nsf-listing-search { grid-column: 1 / -1; }
    .nsf-listing__layout { grid-template-columns: 1fr; }
    .nsf-listing-sidebar { position: static; }
}

@media (max-width: 640px) {
    .nsf-listing__container { width: calc(100% - 20px); padding-top: 16px; }
    .nsf-listing-hero { padding: 22px 18px; border-radius: 22px; }
    .nsf-listing-hero h1 { font-size: 30px; line-height: 1.55; }
    .nsf-listing-hero p { font-size: 13px; }
    .nsf-listing-hero__stats { grid-template-columns: 1fr 1fr; }
    .nsf-listing-hero__stats > div { min-height: 108px; padding: 14px; }
    .nsf-listing-hero__stats strong { font-size: 19px; }
    .nsf-listing-toolbar {
        grid-template-columns: 1fr;
        padding: 10px;
        border-radius: 15px;
    }
    .nsf-listing-sort { grid-template-columns: 1fr; gap: 4px; }
    .nsf-listing-toolbar__submit { width: 100%; }
    .nsf-listing-sidebar { padding: 16px; border-radius: 18px; }
    .nsf-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .nsf-product-card { border-radius: 16px; }
    .nsf-product-card__media { aspect-ratio: 1 / 1; }
    .nsf-product-card__media img { padding: 10px; }
    .nsf-product-card__body { padding: 12px; }
    .nsf-product-card h2 { min-height: 76px; font-size: 12px; line-height: 1.9; }
    .nsf-product-card__meta small { display: none; }
    .nsf-product-card__rating { display: none; }
    .nsf-product-card__footer { margin-top: 10px; padding-top: 10px; }
    .nsf-product-card__price { font-size: 11px; }
    .nsf-product-card__action { flex-basis: 34px; width: 34px; height: 34px; }
    .nsf-product-card__type { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    .nsf-listing *, .nsf-listing *::before, .nsf-listing *::after {
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* =========================================================
   PLP Phase 2 — product cards, skeleton and quick actions
   ========================================================= */
.nsf-product-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    overflow: hidden;
    border: 1px solid rgba(6,54,74,.09);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(6,54,74,.045);
    transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease;
}
.nsf-product-card:hover {
    transform: translateY(-3px);
    border-color: rgba(6,54,74,.15);
    box-shadow: 0 20px 46px rgba(6,54,74,.09);
}
.nsf-product-card__media-wrap { position: relative; padding: 10px 10px 0; }
.nsf-product-card__media {
    position: relative;
    display: grid;
    place-items: center;
    aspect-ratio: 1 / .92;
    overflow: hidden;
    border-radius: 15px;
    background: linear-gradient(145deg,#f8faf9,#f1f6f4);
}
.nsf-product-card__media img {
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    padding: 14px;
    object-fit: contain;
    opacity: 0;
    transform: scale(.985);
    transition: opacity .3s ease, transform .45s ease;
}
.nsf-product-card__media img.is-loaded { opacity: 1; }
.nsf-product-card:hover .nsf-product-card__media img { transform: scale(1.025); }
.nsf-product-card__image-loader {
    position: absolute;
    inset: 0;
    background: linear-gradient(100deg,rgba(232,239,237,.55) 20%,rgba(255,255,255,.9) 40%,rgba(232,239,237,.55) 60%);
    background-size: 220% 100%;
    animation: nsf-shimmer 1.25s linear infinite;
}
.nsf-product-card__media img.is-loaded + .nsf-product-card__image-loader,
.nsf-product-card__media:has(img.is-loaded) .nsf-product-card__image-loader { display:none; }
@keyframes nsf-shimmer { to { background-position-x: -220%; } }
.nsf-product-card__badges { position:absolute; z-index:3; top:12px; right:12px; display:flex; flex-wrap:wrap; gap:6px; }
.nsf-product-card__discount,.nsf-product-card__type { display:inline-flex; align-items:center; min-height:25px; padding:3px 8px; border-radius:999px; font-size:10px; font-weight:650; backdrop-filter:blur(8px); }
.nsf-product-card__discount { background:#fff0ec; color:#c43e22; }
.nsf-product-card__type { background:rgba(237,248,230,.92); color:#4d8c28; }
.nsf-product-card__quick-actions { position:absolute; z-index:4; top:18px; left:18px; display:flex; flex-direction:column; gap:7px; opacity:0; transform:translateX(-7px); transition:opacity .22s ease,transform .22s ease; }
.nsf-product-card:hover .nsf-product-card__quick-actions,.nsf-product-card:focus-within .nsf-product-card__quick-actions { opacity:1; transform:none; }
.nsf-product-card__quick-actions button { display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid rgba(6,54,74,.1); border-radius:11px; background:rgba(255,255,255,.94); color:var(--nsf-navy); cursor:pointer; box-shadow:0 8px 20px rgba(6,54,74,.08); transition:.2s ease; }
.nsf-product-card__quick-actions button:hover,.nsf-product-card__quick-actions button.is-active { border-color:rgba(127,201,74,.45); background:var(--nsf-green-soft); color:#4f9628; transform:translateY(-1px); }
.nsf-product-card__quick-actions svg { width:17px; height:17px; }
.nsf-product-card__body { display:flex; flex:1; flex-direction:column; padding:15px 17px 17px; }
.nsf-product-card__meta { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:22px; color:var(--nsf-muted); font-size:10px; }
.nsf-product-card__meta > span { display:inline-flex; align-items:center; gap:6px; }
.nsf-product-card__meta i { width:6px; height:6px; border-radius:50%; background:#e04b3c; box-shadow:0 0 0 4px rgba(224,75,60,.08); }
.nsf-product-card__meta .is-in-stock { color:#4c8e29; }
.nsf-product-card__meta .is-in-stock i { background:var(--nsf-green); box-shadow:0 0 0 4px rgba(127,201,74,.12); }
.nsf-product-card h2 { margin:10px 0 0; font-size:14px; font-weight:620; line-height:1.9; }
.nsf-product-card h2 a { display:-webkit-box; overflow:hidden; color:var(--nsf-text); text-decoration:none; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.nsf-product-card__specs { display:grid; gap:0; margin:12px 0 0; padding:8px 0; border-top:1px solid #edf1f2; border-bottom:1px solid #edf1f2; }
.nsf-product-card__specs > div { display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:27px; }
.nsf-product-card__specs dt { overflow:hidden; color:#788b94; font-size:9.5px; white-space:nowrap; text-overflow:ellipsis; }
.nsf-product-card__specs dd { margin:0; color:#294550; font-size:10.5px; font-weight:600; text-align:left; }
.nsf-product-card__specs dd small { color:#8da0a8; font-size:9px; font-weight:400; }
.nsf-product-card__excerpt { display:-webkit-box; overflow:hidden; min-height:48px; margin:11px 0 0; color:var(--nsf-muted); font-size:10.5px; line-height:1.8; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.nsf-product-card__rating-row { min-height:26px; margin-top:8px; }
.nsf-product-card__rating { display:inline-flex; align-items:center; gap:4px; font-size:10px; }
.nsf-product-card__rating span { color:#f2ad32; font-size:13px; }
.nsf-product-card__rating strong { color:#536b75; font-weight:600; }
.nsf-product-card__rating small,.nsf-product-card__rating-empty { color:#9aa8ae; font-size:9.5px; }
.nsf-product-card__footer { display:flex; align-items:flex-end; justify-content:space-between; gap:10px; margin-top:auto; padding-top:11px; }
.nsf-product-card__price { min-width:0; color:var(--nsf-navy); font-size:13px; font-weight:650; }
.nsf-product-card__price del { display:block; color:#98a5aa; font-size:9px; font-weight:400; }
.nsf-product-card__price ins { text-decoration:none; }
.nsf-product-card__primary-action { display:inline-flex; align-items:center; justify-content:center; min-height:37px; padding:0 12px; border-radius:10px; background:var(--nsf-navy); color:#fff!important; font-size:10px; font-weight:600; text-decoration:none!important; white-space:nowrap; transition:.2s ease; }
.nsf-product-card__primary-action:hover { background:var(--nsf-navy-2); transform:translateY(-1px); }

.nsf-listing__loading { position:absolute; inset:0; z-index:12; align-items:flex-start; justify-content:flex-start; padding:0; background:rgba(244,248,247,.94); backdrop-filter:blur(4px); }
.nsf-listing__skeleton-grid { display:grid; width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.nsf-listing__skeleton-card { display:grid; gap:12px; min-height:430px; padding:11px 11px 18px; border:1px solid rgba(6,54,74,.07); border-radius:20px; background:#fff; }
.nsf-listing__skeleton-card > span { display:block; height:13px; border-radius:7px; background:linear-gradient(100deg,#edf2f0 20%,#fafcfc 42%,#edf2f0 64%); background-size:220% 100%; animation:nsf-shimmer 1.2s linear infinite; }
.nsf-listing__skeleton-card > span:nth-child(3) { width:76%; }
.nsf-listing__skeleton-card > span:nth-child(4) { width:52%; }
.nsf-listing__skeleton-media { width:100%!important; height:auto!important; aspect-ratio:1/.92; border-radius:15px!important; }

.nsf-listing-toast { position:fixed; z-index:100003; right:24px; bottom:24px; max-width:min(360px,calc(100% - 32px)); padding:11px 15px; border:1px solid rgba(6,54,74,.1); border-radius:12px; background:var(--nsf-navy); color:#fff; font-size:11px; box-shadow:0 18px 50px rgba(6,54,74,.2); }
.nsf-listing-compare-tray { position:fixed; z-index:100001; right:50%; bottom:20px; display:flex; align-items:center; justify-content:space-between; gap:24px; width:min(620px,calc(100% - 32px)); padding:13px 15px; border:1px solid rgba(127,201,74,.3); border-radius:16px; background:rgba(255,255,255,.96); box-shadow:0 20px 60px rgba(6,54,74,.18); transform:translateX(50%); backdrop-filter:blur(16px); }
.nsf-listing-compare-tray[hidden] { display:none; }
.nsf-listing-compare-tray strong { display:block; color:var(--nsf-navy); font-size:12px; }
.nsf-listing-compare-tray span { color:var(--nsf-muted); font-size:10px; }
.nsf-listing-compare-tray__actions { display:flex; gap:8px; }
.nsf-listing-compare-tray button,.nsf-listing-compare-tray a { display:inline-flex; align-items:center; justify-content:center; min-height:36px; padding:0 12px; border:1px solid var(--nsf-line); border-radius:9px; background:#fff; color:var(--nsf-navy); font:inherit; font-size:10px; text-decoration:none; cursor:pointer; }
.nsf-listing-compare-tray a { border-color:var(--nsf-navy); background:var(--nsf-navy); color:#fff; }

.nsf-quick-view { position:fixed; inset:0; z-index:100002; }
.nsf-quick-view[hidden] { display:none; }
.nsf-quick-view__backdrop { position:absolute; inset:0; background:rgba(4,27,37,.54); backdrop-filter:blur(7px); }
.nsf-quick-view__dialog { position:absolute; top:50%; left:50%; display:grid; grid-template-columns:minmax(260px,.85fr) minmax(320px,1.15fr); width:min(900px,calc(100% - 32px)); max-height:calc(100vh - 56px); overflow:auto; border:1px solid rgba(255,255,255,.5); border-radius:24px; background:#fff; box-shadow:0 30px 100px rgba(2,26,36,.32); transform:translate(-50%,-50%); animation:nsf-qv-in .22s ease both; }
@keyframes nsf-qv-in { from { opacity:0; transform:translate(-50%,-47%) scale(.98); } }
.nsf-quick-view__close { position:absolute; z-index:3; top:14px; left:14px; display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--nsf-line); border-radius:11px; background:#fff; color:var(--nsf-navy); font-size:22px; cursor:pointer; }
.nsf-quick-view__media { display:grid; place-items:center; min-height:430px; padding:34px; background:linear-gradient(145deg,#f6f9f8,#eef5f2); }
.nsf-quick-view__media img { width:100%; height:360px; object-fit:contain; }
.nsf-quick-view__content { display:flex; flex-direction:column; padding:44px 36px 34px; }
.nsf-quick-view__stock { align-self:flex-start; padding:4px 9px; border-radius:999px; background:var(--nsf-green-soft); color:#4d8c28; font-size:10px; }
.nsf-quick-view__stock.is-out { background:#fff0ee; color:#bd4533; }
.nsf-quick-view h2 { margin:13px 0 0; color:var(--nsf-navy); font-size:22px; font-weight:650; line-height:1.7; }
.nsf-quick-view p { color:var(--nsf-muted); font-size:11px; line-height:1.9; }
.nsf-quick-view dl { display:grid; gap:0; margin:12px 0 0; }
.nsf-quick-view dl > div { display:flex; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid #edf1f2; }
.nsf-quick-view dt { color:#738790; font-size:10px; }
.nsf-quick-view dd { margin:0; color:#294650; font-size:11px; font-weight:600; }
.nsf-quick-view__footer { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:auto; padding-top:22px; }
.nsf-quick-view__footer > div { color:var(--nsf-navy); font-size:17px; font-weight:650; }
.nsf-quick-view__footer a { display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:0 16px; border-radius:11px; background:var(--nsf-navy); color:#fff; font-size:11px; text-decoration:none; }

@media (max-width:1180px) {
    .nsf-listing__skeleton-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:782px) {
    .nsf-product-card { border-radius:15px; }
    .nsf-product-card__media-wrap { padding:6px 6px 0; }
    .nsf-product-card__media { border-radius:11px; }
    .nsf-product-card__media img { padding:8px; }
    .nsf-product-card__quick-actions { top:10px; left:10px; flex-direction:row; opacity:1; transform:none; }
    .nsf-product-card__quick-actions button { width:30px; height:30px; border-radius:9px; }
    .nsf-product-card__quick-actions button[data-nsf-quick-view] { display:none; }
    .nsf-product-card__body { padding:11px 10px 12px; }
    .nsf-product-card__meta small { display:none; }
    .nsf-product-card h2 { font-size:11px; line-height:1.75; }
    .nsf-product-card__specs { margin-top:8px; padding:5px 0; }
    .nsf-product-card__specs > div:nth-child(n+3) { display:none; }
    .nsf-product-card__specs dt { font-size:8px; }
    .nsf-product-card__specs dd { font-size:8.5px; }
    .nsf-product-card__rating-row { display:none; }
    .nsf-product-card__footer { align-items:stretch; flex-direction:column; gap:7px; padding-top:8px; }
    .nsf-product-card__price { font-size:10.5px; }
    .nsf-product-card__primary-action { width:100%; min-height:34px; padding:0 6px; font-size:9px; }
    .nsf-listing__skeleton-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
    .nsf-listing__skeleton-card { min-height:315px; padding:6px; border-radius:15px; }
    .nsf-listing-compare-tray { bottom:12px; gap:10px; padding:10px 11px; }
    .nsf-listing-compare-tray__actions button { display:none; }
    .nsf-quick-view__dialog { grid-template-columns:1fr; }
    .nsf-quick-view__media { min-height:240px; padding:24px; }
    .nsf-quick-view__media img { height:210px; }
    .nsf-quick-view__content { padding:24px 18px 20px; }
}

/* =========================================================
   PLP Phase 3 — Dynamic filters, active chips and mobile sheet
   ========================================================= */

.nsf-listing-mobile-filter,
.nsf-listing-sidebar__close {
    display: none;
}

.nsf-listing-sidebar__header {
    align-items: center;
}

.nsf-listing-sidebar__header > div > span {
    display: block;
    margin-bottom: 3px;
    color: #7a8e96;
    font-size: 9.5px;
    font-weight: 500;
}

.nsf-listing-filter__toggle > span {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 7px;
    min-width: 0;
}

.nsf-listing-filter__toggle > span small {
    flex-basis: 100%;
    color: #8a9aa0;
    font-size: 8px;
    font-weight: 400;
    line-height: 1.4;
}

.nsf-listing-filter__toggle > span em {
    padding: 1px 6px;
    border: 1px solid rgba(6,54,74,.1);
    border-radius: 999px;
    color: #74868d;
    font-size: 8px;
    font-style: normal;
    font-weight: 400;
    direction: ltr;
}

.nsf-listing-filter__group {
    overflow: hidden;
}

.nsf-listing-filter__content {
    display: grid !important;
    grid-template-rows: 1fr;
    opacity: 1;
    transition: grid-template-rows .26s cubic-bezier(.2,.7,.2,1), opacity .2s ease, padding .26s ease;
}

.nsf-listing-filter__content > * {
    min-height: 0;
}

.nsf-listing-filter__group:not(.is-open) .nsf-listing-filter__content {
    grid-template-rows: 0fr;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    pointer-events: none;
}

.nsf-listing-filter__content--stacked {
    gap: 16px;
}

.nsf-listing-switch {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    color: #294650;
    font-size: 10.5px;
    cursor: pointer;
}

.nsf-listing-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nsf-listing-switch__track {
    position: relative;
    flex: 0 0 36px;
    width: 36px;
    height: 20px;
    border: 1px solid #d3ddda;
    border-radius: 999px;
    background: #e9efed;
    transition: .2s ease;
}

.nsf-listing-switch__track::after {
    content: "";
    position: absolute;
    top: 2px;
    right: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 7px rgba(6,54,74,.15);
    transition: transform .22s cubic-bezier(.2,.8,.2,1);
}

.nsf-listing-switch input:checked + .nsf-listing-switch__track {
    border-color: #78bf4a;
    background: #7fc94a;
}

.nsf-listing-switch input:checked + .nsf-listing-switch__track::after {
    transform: translateX(-16px);
}

.nsf-listing-price-fields,
.nsf-listing-spec-range {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: end;
    gap: 7px;
}

.nsf-listing-price-fields label,
.nsf-listing-spec-range label {
    display: grid;
    gap: 5px;
    margin: 0;
}

.nsf-listing-price-fields label > span,
.nsf-listing-spec-range label > span {
    color: #82939a;
    font-size: 8.5px;
}

.nsf-listing-price-fields input,
.nsf-listing-spec-range input,
.nsf-listing-select-field select {
    width: 100%;
    min-height: 38px;
    margin: 0;
    padding: 0 9px;
    border: 1px solid #dbe4e1;
    border-radius: 9px;
    background: #fbfdfc;
    color: #183943;
    font-size: 10px;
    box-shadow: none;
}

.nsf-listing-price-fields input:focus,
.nsf-listing-spec-range input:focus,
.nsf-listing-select-field select:focus {
    border-color: rgba(127,201,74,.75);
    outline: 0;
    box-shadow: 0 0 0 3px rgba(127,201,74,.11);
}

.nsf-listing-price-fields__divider,
.nsf-listing-spec-range > span {
    padding-bottom: 11px;
    color: #91a0a5;
    font-size: 9px;
}

.nsf-listing-filter__range-caption {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 8px;
    color: #8a999f;
    font-size: 8px;
    direction: ltr;
}

.nsf-listing-filter__range-caption small {
    direction: ltr;
}

.nsf-listing-select-field {
    display: block;
    margin: 0;
}

.nsf-listing-checkbox-list {
    display: grid;
    gap: 3px;
    max-height: 230px;
    overflow: auto;
    padding-left: 3px;
    scrollbar-width: thin;
}

.nsf-listing-checkbox {
    display: grid;
    grid-template-columns: 18px minmax(0,1fr) auto;
    align-items: center;
    gap: 8px;
    min-height: 34px;
    margin: 0;
    padding: 5px 6px;
    border-radius: 8px;
    color: #35515a;
    font-size: 10px;
    cursor: pointer;
    transition: background .18s ease;
}

.nsf-listing-checkbox:hover {
    background: #f5f9f7;
}

.nsf-listing-checkbox input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.nsf-listing-checkbox__box {
    display: grid;
    place-items: center;
    width: 17px;
    height: 17px;
    border: 1px solid #cedad6;
    border-radius: 5px;
    background: #fff;
    transition: .18s ease;
}

.nsf-listing-checkbox__box::after {
    content: "";
    width: 7px;
    height: 4px;
    border-right: 1.7px solid #fff;
    border-bottom: 1.7px solid #fff;
    opacity: 0;
    transform: translateY(-1px) rotate(45deg);
}

.nsf-listing-checkbox input:checked + .nsf-listing-checkbox__box {
    border-color: #77bf48;
    background: #7fc94a;
}

.nsf-listing-checkbox input:checked + .nsf-listing-checkbox__box::after {
    opacity: 1;
}

.nsf-listing-checkbox small,
.nsf-listing-radio small {
    color: #97a5aa;
    font-size: 8.5px;
}

.nsf-listing-filter__guidance {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 14px 0;
    padding: 12px;
    border: 1px solid rgba(127,201,74,.2);
    border-radius: 12px;
    background: linear-gradient(145deg,#f8fcf6,#f3f8f5);
}

.nsf-listing-filter__guidance svg {
    flex: 0 0 18px;
    width: 18px;
    color: #72b943;
}

.nsf-listing-filter__guidance strong {
    display: block;
    margin-bottom: 3px;
    color: #1e404a;
    font-size: 10px;
    font-weight: 600;
}

.nsf-listing-filter__guidance p {
    margin: 0;
    color: #71848b;
    font-size: 9px;
    line-height: 1.8;
}

.nsf-listing-filter__actions {
    position: sticky;
    bottom: -1px;
    z-index: 3;
    display: grid;
    gap: 7px;
    margin: 14px -4px -4px;
    padding: 12px 4px 4px;
    background: linear-gradient(to bottom,rgba(255,255,255,0),#fff 22%);
}

.nsf-listing-filter__apply {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding-inline: 14px;
}

.nsf-listing-filter__apply small {
    color: rgba(255,255,255,.7);
    font-size: 8.5px;
    font-weight: 400;
}

.nsf-listing-filter__reset {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    border-radius: 9px;
    color: #73858c;
    font-size: 9.5px;
    text-decoration: none;
}

.nsf-listing-filter__reset:hover {
    background: #f4f7f6;
    color: #183943;
}

.nsf-listing-active-filters {
    display: flex;
    align-items: center;
    gap: 13px;
    margin: -8px 0 18px;
    padding: 10px 13px;
    border: 1px solid rgba(6,54,74,.075);
    border-radius: 13px;
    background: rgba(255,255,255,.76);
    backdrop-filter: blur(12px);
}

.nsf-listing-active-filters__label {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    color: #5d737c;
    font-size: 9.5px;
}

.nsf-listing-active-filters__label small {
    display: grid;
    place-items: center;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border-radius: 999px;
    background: #eaf4e5;
    color: #5b9b36;
    font-size: 8px;
}

.nsf-listing-active-filters__chips {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
}

.nsf-listing-filter-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 29px;
    padding: 0 9px;
    border: 1px solid #dce5e2;
    border-radius: 999px;
    background: #fff;
    color: #35515a;
    font-size: 8.8px;
    text-decoration: none;
    transition: .18s ease;
}

.nsf-listing-filter-chip:hover {
    border-color: rgba(127,201,74,.55);
    color: #315f29;
    transform: translateY(-1px);
}

.nsf-listing-filter-chip svg {
    width: 13px;
    height: 13px;
    color: #93a2a7;
}

.nsf-listing-active-filters__clear {
    margin-right: 2px;
    color: #74868d;
    font-size: 8.8px;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.nsf-listing-filter-backdrop[hidden] {
    display: none;
}

@media (max-width: 900px) {
    html.nsf-filter-lock,
    html.nsf-filter-lock body {
        overflow: hidden !important;
    }

    .nsf-listing-mobile-filter {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        min-height: 40px;
        padding: 0 12px;
        border: 1px solid rgba(6,54,74,.11);
        border-radius: 10px;
        background: #fff;
        color: #173a45;
        font: inherit;
        font-size: 9.5px;
        cursor: pointer;
    }

    .nsf-listing-mobile-filter svg {
        width: 17px;
    }

    .nsf-listing-mobile-filter small {
        display: grid;
        place-items: center;
        min-width: 18px;
        height: 18px;
        padding: 0 4px;
        border-radius: 999px;
        background: #7fc94a;
        color: #fff;
        font-size: 8px;
    }

    .nsf-listing-sidebar {
        position: fixed !important;
        inset: 0 0 0 auto;
        z-index: 100005;
        display: flex;
        flex-direction: column;
        width: min(390px,92vw);
        max-height: 100dvh;
        overflow: hidden;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff;
        box-shadow: -24px 0 70px rgba(4,31,42,.22);
        opacity: 0;
        transform: translateX(105%);
        pointer-events: none;
        transition: transform .32s cubic-bezier(.2,.75,.2,1), opacity .2s ease;
    }

    .nsf-listing-sidebar.is-mobile-open {
        opacity: 1;
        transform: translateX(0);
        pointer-events: auto;
    }

    .nsf-listing-sidebar__header {
        flex: 0 0 auto;
        margin: 0;
        padding: 18px 18px 15px;
        border-bottom: 1px solid #e8eeec;
        background: rgba(255,255,255,.96);
        backdrop-filter: blur(14px);
    }

    .nsf-listing-sidebar__close {
        display: grid;
        place-items: center;
        width: 36px;
        height: 36px;
        padding: 0;
        border: 1px solid #e1e8e5;
        border-radius: 10px;
        background: #f8faf9;
        color: #24454f;
        cursor: pointer;
    }

    .nsf-listing-sidebar__close svg {
        width: 18px;
    }

    .nsf-listing-filter {
        overflow-y: auto;
        padding: 5px 17px 20px;
        overscroll-behavior: contain;
    }

    .nsf-listing-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 100004;
        display: block;
        border: 0;
        background: rgba(5,27,36,.48);
        backdrop-filter: blur(4px);
        animation: nsf-filter-fade .2s ease both;
    }

    @keyframes nsf-filter-fade {
        from { opacity: 0; }
    }

    .nsf-listing-active-filters {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
        overflow: hidden;
    }

    .nsf-listing-active-filters__chips {
        flex-wrap: nowrap;
        width: 100%;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
    }

    .nsf-listing-active-filters__chips::-webkit-scrollbar {
        display: none;
    }

    .nsf-listing-filter-chip {
        flex: 0 0 auto;
        white-space: nowrap;
    }
}

@media (max-width: 782px) {
    .nsf-listing-toolbar {
        grid-template-columns: auto minmax(0,1fr) !important;
    }

    .nsf-listing-mobile-filter {
        grid-column: 1;
        grid-row: 1;
    }

    .nsf-listing-search {
        grid-column: 2;
        grid-row: 1;
    }

    .nsf-listing-sort {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .nsf-listing-toolbar__submit {
        display: none;
    }
}

/* =========================================================
   PLP Phase 4 — AJAX transitions and live updates
   ========================================================= */
.nsf-listing[data-ajax-ready="true"] .nsf-listing-toolbar,
.nsf-listing[data-ajax-ready="true"] .nsf-listing-active-filters,
.nsf-listing[data-ajax-ready="true"] .nsf-listing-sidebar,
.nsf-listing[data-ajax-ready="true"] .nsf-listing__results {
    transition: opacity .22s ease, transform .22s ease;
}
.nsf-listing.is-ajax-loading [data-nsf-fragment="toolbar"],
.nsf-listing.is-ajax-loading [data-nsf-fragment="active-filters"],
.nsf-listing.is-ajax-loading [data-nsf-fragment="sidebar"] {
    opacity: .62;
    pointer-events: none;
}
.nsf-listing.is-ajax-loading .nsf-listing__results {
    min-height: 440px;
}
.nsf-listing.is-ajax-loading .nsf-product-grid,
.nsf-listing.is-ajax-loading .nsf-listing-pagination,
.nsf-listing.is-ajax-loading .nsf-listing-empty {
    opacity: 0;
}
.nsf-listing__results { position: relative; }
.nsf-listing__loading { animation: nsf-ajax-fade .2s ease both; }
@keyframes nsf-ajax-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
    .nsf-listing[data-ajax-ready="true"] * { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* =========================================================
   PLP Phase 5 — Smart discovery and recovery UX
   ========================================================= */

.nsf-listing-search {
    position: relative;
    min-width: 0;
    z-index: 24;
}

.nsf-listing-search__field {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 46px;
    margin: 0;
    border: 1px solid #dfe6e4;
    border-radius: 14px;
    background: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}

.nsf-listing-search__field:focus-within {
    border-color: rgba(26, 123, 92, .48);
    box-shadow: 0 0 0 4px rgba(26, 123, 92, .08);
}

.nsf-listing-search__field > svg {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin-inline-start: 14px;
    color: #64726f;
}

.nsf-listing-search__field input[type="search"] {
    min-width: 0;
    height: 44px;
    padding: 0 10px 0 42px;
    border: 0;
    background: transparent;
    box-shadow: none;
    font-size: 13px;
    font-weight: 400;
}

.nsf-listing-search__clear {
    position: absolute;
    inset-inline-end: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    min-height: 30px;
    padding: 0;
    border-radius: 9px;
    color: #72807d;
    background: #f2f5f4;
}

.nsf-listing-search__clear svg {
    width: 15px;
    height: 15px;
}

.nsf-search-panel {
    position: absolute;
    inset-inline: 0;
    top: calc(100% + 9px);
    z-index: 120;
    overflow: hidden;
    min-width: min(520px, calc(100vw - 32px));
    border: 1px solid #dfe6e4;
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 22px 56px rgba(15, 42, 34, .15);
    backdrop-filter: blur(18px);
    animation: nsf-search-panel-in .18s ease both;
}

@keyframes nsf-search-panel-in {
    from { opacity: 0; transform: translateY(-5px) scale(.99); }
    to { opacity: 1; transform: none; }
}

.nsf-search-panel__state {
    padding: 14px;
}

.nsf-search-panel__heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    color: #4d5c58;
    font-size: 11px;
}

.nsf-search-panel__heading button {
    min-height: auto;
    padding: 4px 7px;
    border-radius: 7px;
    background: transparent;
    color: #73817e;
    font-size: 10px;
}

.nsf-search-panel__recent {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.nsf-search-panel__recent-chip {
    min-height: 32px;
    padding: 5px 11px;
    border: 1px solid #e2e8e6;
    border-radius: 999px;
    background: #f8faf9;
    color: #33413e;
    font-size: 11px;
    font-weight: 400;
}

.nsf-search-panel__recent-chip:hover {
    border-color: rgba(26, 123, 92, .3);
    background: #f0f8f5;
    color: #126f51;
}

.nsf-search-panel__recent-empty {
    color: #87928f;
    font-size: 11px;
}

.nsf-search-panel__state[data-nsf-search-state="loading"],
.nsf-search-panel__state[data-nsf-search-state="empty"] {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 7px;
    min-height: 116px;
    color: #71807c;
    text-align: center;
    font-size: 11px;
}

.nsf-search-panel__state[data-nsf-search-state="empty"] strong {
    color: #263633;
    font-size: 13px;
    font-weight: 600;
}

.nsf-search-panel__spinner {
    width: 24px;
    height: 24px;
    border: 2px solid #dbe7e3;
    border-top-color: #167957;
    border-radius: 50%;
    animation: nsf-search-spin .7s linear infinite;
}

@keyframes nsf-search-spin { to { transform: rotate(360deg); } }

.nsf-search-panel__results {
    display: grid;
    gap: 3px;
    max-height: 420px;
    overflow-y: auto;
}

.nsf-search-suggestion {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    min-height: 68px;
    padding: 7px;
    border-radius: 12px;
    color: inherit;
    transition: background-color .16s ease, transform .16s ease;
}

.nsf-search-suggestion:hover,
.nsf-search-suggestion.is-active {
    background: #f1f7f5;
    transform: translateX(-2px);
}

.nsf-search-suggestion__media {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    overflow: hidden;
    border: 1px solid #edf1f0;
    border-radius: 11px;
    background: #f7f9f8;
}

.nsf-search-suggestion__media img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.nsf-search-suggestion__content {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 5px;
}

.nsf-search-suggestion__content strong {
    overflow: hidden;
    color: #1f302c;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.8;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nsf-search-suggestion__content mark {
    padding: 0 2px;
    border-radius: 3px;
    background: rgba(35, 154, 111, .13);
    color: #126f51;
    font-weight: 600;
}

.nsf-search-suggestion__content > span {
    overflow: hidden;
    color: #7a8783;
    font-size: 10px;
    text-overflow: ellipsis;
    white-space: nowrap;
    direction: auto;
}

.nsf-search-suggestion__side {
    display: flex;
    align-items: flex-end;
    flex-direction: column;
    gap: 5px;
    white-space: nowrap;
}

.nsf-search-suggestion__side small {
    color: #17805c;
    font-size: 9px;
}

.nsf-search-suggestion__side small.is-out { color: #a85b52; }
.nsf-search-suggestion__side > span { color: #263633; font-size: 10px; }

.nsf-search-panel__all {
    width: 100%;
    min-height: 40px;
    margin-top: 8px;
    border-radius: 11px;
    background: #eff7f4;
    color: #126f51;
    font-size: 11px;
    font-weight: 500;
}

.nsf-listing-empty {
    max-width: 650px;
    margin: 48px auto;
    padding: 44px 28px;
    border: 1px solid #e1e8e6;
    border-radius: 24px;
    background: linear-gradient(180deg, #fff 0%, #fbfcfc 100%);
    box-shadow: 0 16px 46px rgba(20, 48, 40, .06);
    text-align: center;
}

.nsf-listing-empty__visual {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 76px;
    height: 76px;
    margin-bottom: 18px;
    border-radius: 22px;
    background: #edf7f3;
    color: #1a7b5c;
}

.nsf-listing-empty__visual svg { width: 48px; height: 48px; }
.nsf-listing-empty__eyebrow { color: #17805c; font-size: 10px; font-weight: 600; }
.nsf-listing-empty h2 { margin: 9px 0 8px; color: #1f302c; font-size: 20px; font-weight: 550; }
.nsf-listing-empty p { max-width: 470px; margin: 0 auto; color: #71807c; font-size: 12px; line-height: 2; }

.nsf-listing-empty__actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 20px;
}

.nsf-listing-empty__actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 7px 15px;
    border-radius: 11px;
    font-size: 11px;
    font-weight: 500;
}

.nsf-listing-empty__primary { background: #123c31; color: #fff !important; }
.nsf-listing-empty__secondary { border: 1px solid #dfe6e4; background: #fff; color: #35433f !important; }

.nsf-listing-empty__hint {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 18px;
    color: #82908c;
    font-size: 10px;
}

.nsf-listing-empty__hint span { color: #17805c; }
.nsf-listing-empty__hint p { margin: 0; font-size: inherit; }

@media (max-width: 782px) {
    .nsf-listing-search { position: sticky; top: calc(var(--wd-admin-bar-h, 0px) + 8px); z-index: 75; width: 100%; }
    .nsf-listing-search__field { min-height: 48px; border-radius: 13px; box-shadow: 0 8px 24px rgba(18, 52, 43, .07); }
    .nsf-search-panel { position: fixed; inset: auto 10px 10px; top: auto; max-height: min(72vh, 620px); min-width: 0; border-radius: 20px; }
    .nsf-search-panel__results { max-height: 52vh; }
    .nsf-search-suggestion { grid-template-columns: 50px minmax(0, 1fr); }
    .nsf-search-suggestion__side { display: none; }
    .nsf-listing-empty { margin: 24px 0; padding: 34px 18px; border-radius: 20px; }
    .nsf-listing-empty h2 { font-size: 17px; }
    .nsf-listing-empty__actions { flex-direction: column; }
    .nsf-listing-empty__actions a { width: 100%; }
    .nsf-listing-empty__hint { align-items: flex-start; flex-direction: column; text-align: right; }
}

@media (prefers-reduced-motion: reduce) {
    .nsf-search-panel,
    .nsf-search-suggestion,
    .nsf-search-panel__spinner { animation: none !important; transition: none !important; }
}

/* =========================================================
   PLP Phase 5.1 — Explicit search commit and stable overlay
   ========================================================= */
.nsf-listing-toolbar {
    isolation: isolate;
}

.nsf-listing-search {
    z-index: 90;
}

.nsf-listing-search__field {
    padding-inline-end: 78px;
    overflow: visible;
}

.nsf-listing-search__field > svg {
    position: static;
    pointer-events: none;
}

.nsf-listing-search__field input[type="search"] {
    padding-inline: 10px;
}

.nsf-listing-search__clear,
.nsf-listing-search__submit {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    cursor: pointer;
}

.nsf-listing-search__clear {
    inset-inline-end: 44px;
}

.nsf-listing-search__submit {
    inset-inline-end: 7px;
    width: 34px;
    min-height: 34px;
    padding: 0;
    border-radius: 10px;
    background: var(--nsf-navy);
    color: #fff;
    box-shadow: 0 7px 16px rgba(6, 54, 74, .16);
    transition: background-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.nsf-listing-search__submit:hover {
    background: var(--nsf-navy-2);
    transform: translateY(calc(-50% - 1px));
    box-shadow: 0 10px 20px rgba(6, 54, 74, .2);
}

.nsf-listing-search__submit:focus-visible,
.nsf-listing-search__clear:focus-visible {
    outline: 2px solid rgba(127, 201, 74, .9);
    outline-offset: 2px;
}

.nsf-listing-search__submit svg {
    position: static;
    width: 17px;
    height: 17px;
    color: currentColor;
}

.nsf-search-panel {
    inset-inline-start: auto;
    inset-inline-end: 0;
    width: clamp(430px, 45vw, 650px);
    min-width: 0;
    max-width: calc(100vw - 52px);
    max-height: min(540px, calc(100vh - 170px));
    overflow: hidden;
    border-color: rgba(18, 60, 49, .14);
    background: #fff;
    box-shadow: 0 24px 64px rgba(9, 40, 31, .2), 0 2px 10px rgba(9, 40, 31, .06);
    backdrop-filter: none;
}

.nsf-search-panel__state {
    min-width: 0;
}

.nsf-search-panel__results {
    max-height: min(390px, calc(100vh - 260px));
    overflow-x: hidden;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: #cbd8d3 transparent;
}

.nsf-search-suggestion {
    grid-template-columns: 58px minmax(0, 1fr) minmax(100px, auto);
    min-width: 0;
    border: 1px solid transparent;
}

.nsf-search-suggestion:hover,
.nsf-search-suggestion.is-active {
    border-color: rgba(26, 123, 92, .12);
    background: #f3f8f6;
    transform: none;
}

.nsf-search-suggestion__content strong {
    white-space: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
}

.nsf-search-panel__state[data-nsf-search-state="loading"] {
    min-height: 88px;
}

.nsf-listing.is-ajax-loading .nsf-search-panel {
    display: none !important;
}

@media (max-width: 782px) {
    .nsf-listing-search__field {
        padding-inline-end: 80px;
    }

    .nsf-search-panel {
        position: fixed;
        inset: auto 10px 10px;
        width: auto;
        max-width: none;
        max-height: min(68vh, 570px);
        border-radius: 18px;
    }

    .nsf-search-panel__results {
        max-height: calc(68vh - 94px);
    }

    .nsf-search-suggestion {
        grid-template-columns: 50px minmax(0, 1fr);
        min-height: 64px;
    }
}


/* =========================================================
   PLP 0.10.2 — Search controls cleanup and mobile filter modal
   ========================================================= */

/* Ensure only the plugin's single clear control is visible. */
.nsf-listing-search__field input[type="text"],
.nsf-listing-search__field input[type="search"] {
    -webkit-appearance: none;
    appearance: none;
}
.nsf-listing-search__field input::-webkit-search-cancel-button,
.nsf-listing-search__field input::-webkit-search-decoration,
.nsf-listing-search__field input::-ms-clear,
.nsf-listing-search__field input::-ms-reveal {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}
.nsf-listing-search__clear[hidden] {
    display: none !important;
}
.nsf-listing-search__field {
    padding-inline: 10px 84px;
}
.nsf-listing-search__field input[type="text"],
.nsf-listing-search__field input[type="search"] {
    width: 100%;
    padding: 0 !important;
}
.nsf-listing-search__clear {
    inset-inline-end: 48px;
    width: 30px;
    height: 30px;
    min-height: 30px;
    border: 0;
    background: #f1f4f3;
    color: #74827f;
}
.nsf-listing-search__submit {
    inset-inline-end: 8px;
}

/* Keep the final action fully visible inside the suggestion surface. */
.nsf-search-panel__state[data-nsf-search-state="results"] {
    display: flex;
    min-height: 0;
    max-height: inherit;
    flex-direction: column;
    padding: 10px 10px 12px;
}
.nsf-search-panel__results {
    flex: 1 1 auto;
    min-height: 0;
    padding: 2px;
}
.nsf-search-panel__all {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    width: 100%;
    min-height: 44px;
    margin: 10px 0 0;
    border: 1px solid rgba(18, 60, 49, .14);
    border-radius: 12px;
    background: #f1f8f5;
    color: #126f51;
    box-shadow: 0 -8px 18px rgba(255,255,255,.92);
}
.nsf-search-panel__all:hover {
    border-color: rgba(18, 111, 81, .26);
    background: #eaf5f0;
}

/* Tablet and mobile: filters leave the product grid completely. */
@media (max-width: 1100px) {
    html.nsf-filter-lock,
    html.nsf-filter-lock body {
        overflow: hidden !important;
        overscroll-behavior: none;
    }

    .nsf-listing__layout {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    .nsf-listing-mobile-filter {
        display: inline-flex !important;
    }

    .nsf-listing-sidebar {
        position: fixed !important;
        inset: 0 0 0 auto;
        z-index: 100005;
        display: flex;
        width: min(430px, 92vw);
        max-width: none;
        height: 100dvh;
        max-height: 100dvh;
        flex-direction: column;
        overflow: hidden;
        margin: 0;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff;
        box-shadow: -28px 0 80px rgba(4, 31, 42, .22);
        opacity: 0;
        visibility: hidden;
        transform: translateX(105%);
        pointer-events: none;
        transition: transform .32s cubic-bezier(.2,.75,.2,1), opacity .2s ease, visibility 0s linear .32s;
    }

    .nsf-listing-sidebar.is-mobile-open {
        opacity: 1;
        visibility: visible;
        transform: translateX(0);
        pointer-events: auto;
        transition-delay: 0s;
    }

    .nsf-listing-sidebar__header {
        position: sticky;
        top: 0;
        z-index: 5;
        flex: 0 0 auto;
        margin: 0;
        padding: 18px 18px 15px;
        border-bottom: 1px solid #e8eeec;
        background: rgba(255,255,255,.98);
        backdrop-filter: blur(14px);
    }

    .nsf-listing-filter {
        display: flex;
        min-height: 0;
        flex: 1 1 auto;
        flex-direction: column;
        overflow-y: auto;
        padding: 4px 18px calc(18px + env(safe-area-inset-bottom));
        overscroll-behavior: contain;
    }

    .nsf-listing-filter__actions {
        position: sticky;
        bottom: calc(-18px - env(safe-area-inset-bottom));
        z-index: 4;
        margin: 16px -18px calc(-18px - env(safe-area-inset-bottom));
        padding: 12px 18px calc(12px + env(safe-area-inset-bottom));
        border-top: 1px solid #e6ecea;
        background: rgba(255,255,255,.98);
        box-shadow: 0 -12px 26px rgba(9,40,31,.08);
        backdrop-filter: blur(12px);
    }

    .nsf-listing-filter-backdrop {
        position: fixed;
        inset: 0;
        z-index: 100004;
        display: block;
        border: 0;
        background: rgba(5,27,36,.48);
        backdrop-filter: blur(4px);
    }

    .nsf-listing-filter-backdrop[hidden] {
        display: none !important;
    }
}

/* Phone: use a near-full-height modal bottom sheet, not a side-by-side column. */
@media (max-width: 782px) {
    .nsf-listing-toolbar {
        grid-template-columns: auto minmax(0, 1fr) !important;
        gap: 8px;
    }

    .nsf-listing-mobile-filter {
        grid-column: 1;
        grid-row: 1;
        min-height: 46px;
        border-radius: 13px;
    }

    .nsf-listing-search {
        grid-column: 2;
        grid-row: 1;
        position: relative;
        top: auto;
        z-index: 90;
    }

    .nsf-listing-sort {
        grid-column: 1 / -1;
        grid-row: 2;
    }

    .nsf-listing-sidebar {
        inset: auto 0 0 0;
        width: 100%;
        height: min(92dvh, 860px);
        max-height: 92dvh;
        border-radius: 24px 24px 0 0 !important;
        box-shadow: 0 -24px 72px rgba(4,31,42,.24);
        transform: translateY(105%);
    }

    .nsf-listing-sidebar.is-mobile-open {
        transform: translateY(0);
    }

    .nsf-listing-sidebar__header {
        padding-top: 14px;
        border-radius: 24px 24px 0 0;
    }

    .nsf-listing-sidebar__header::before {
        content: '';
        position: absolute;
        top: 7px;
        left: 50%;
        width: 42px;
        height: 4px;
        border-radius: 999px;
        background: #d8e0dd;
        transform: translateX(-50%);
    }

    .nsf-listing-filter {
        padding-inline: 16px;
    }

    .nsf-listing-filter__actions {
        margin-inline: -16px;
        padding-inline: 16px;
    }

    .nsf-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .nsf-search-panel {
        inset: auto 8px calc(8px + env(safe-area-inset-bottom));
        max-height: min(72dvh, 620px);
    }

    .nsf-search-panel__state[data-nsf-search-state="results"] {
        max-height: min(72dvh, 620px);
    }
}

@media (max-width: 420px) {
    .nsf-listing-toolbar {
        padding: 8px;
    }
    .nsf-listing-mobile-filter span {
        display: inline;
    }
    .nsf-listing-search__field {
        min-height: 46px;
        padding-inline-start: 9px;
    }
    .nsf-listing-search__field input[type="text"],
    .nsf-listing-search__field input[type="search"] {
        font-size: 12px;
    }
}

/* =========================================================
   PLP 0.10.3 — Final search, mobile filters and card rhythm
   ========================================================= */

/* Search: one visual control, independent from theme input styles. */
.nsf-listing-search__field {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 34px 38px !important;
    align-items: center !important;
    gap: 4px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 5px 6px 5px 12px !important;
    border: 1px solid #d9e4e0 !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.nsf-listing-search__field:focus-within {
    border-color: rgba(86, 164, 50, .72) !important;
    box-shadow: 0 0 0 4px rgba(127, 201, 74, .10) !important;
}

.nsf-listing-search__field input[data-nsf-search-input] {
    all: unset !important;
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    padding: 0 4px !important;
    color: #163942 !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 36px !important;
    text-align: right !important;
    direction: rtl !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    appearance: none !important;
}

.nsf-listing-search__field input[data-nsf-search-input]::placeholder {
    color: #8a9894 !important;
    opacity: 1 !important;
}

.nsf-listing-search__clear,
.nsf-listing-search__submit {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 10px !important;
}

.nsf-listing-search__clear {
    grid-column: 2;
    background: #f1f5f3 !important;
    color: #788680 !important;
}

.nsf-listing-search__submit {
    grid-column: 3;
    background: var(--nsf-navy) !important;
    color: #fff !important;
    box-shadow: 0 7px 18px rgba(6, 54, 74, .16) !important;
}

.nsf-listing-search__submit:hover {
    transform: translateY(-1px) !important;
}

/* Search panel: footer is always separated from the scrollable results. */
.nsf-search-panel {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.nsf-search-panel__state {
    min-height: 0;
}

.nsf-search-panel__state[data-nsf-search-state="results"] {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 10px 10px 4px;
}

.nsf-search-panel__results {
    width: 100%;
    min-height: 0;
    max-height: min(390px, calc(100vh - 310px));
    padding: 2px 4px;
    overflow-y: auto;
    overflow-x: hidden;
}

.nsf-search-panel__footer {
    flex: 0 0 auto;
    padding: 10px;
    border-top: 1px solid #e5ece9;
    background: #fff;
}

.nsf-search-panel__footer[hidden] {
    display: none !important;
}

.nsf-search-panel__all {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 16px !important;
    border: 1px solid rgba(18, 111, 81, .18) !important;
    border-radius: 12px !important;
    background: #eef7f3 !important;
    color: #126f51 !important;
    box-shadow: none !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

.nsf-search-panel__all svg {
    width: 16px;
    height: 16px;
    transform: rotate(180deg);
}

/* Product-card rhythm: no broken text or uncontrolled empty areas. */
.nsf-product-card {
    min-height: 100%;
}

.nsf-product-card__body {
    display: grid !important;
    grid-template-rows: auto minmax(58px, auto) minmax(82px, auto) 26px auto !important;
    align-content: start;
    min-height: 0;
}

.nsf-product-card h2 {
    min-height: 58px;
    margin: 9px 0 0 !important;
    font-size: 13px !important;
    font-weight: 560 !important;
    line-height: 1.8 !important;
}

.nsf-product-card h2 a {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
    line-clamp: 2 !important;
    overflow-wrap: anywhere;
}

.nsf-product-card__details {
    display: flex;
    min-height: 82px;
    align-items: stretch;
    margin-top: 8px;
}

.nsf-product-card__details > * {
    width: 100%;
}

.nsf-product-card__specs {
    margin: 0 !important;
    padding: 7px 0 !important;
}

.nsf-product-card__excerpt {
    min-height: 72px !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    border-top: 1px solid #edf1f2;
    border-bottom: 1px solid #edf1f2;
    -webkit-line-clamp: 3 !important;
}

.nsf-product-card__details-empty {
    display: flex;
    min-height: 72px;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 4px;
    padding: 10px;
    border-top: 1px solid #edf1f2;
    border-bottom: 1px solid #edf1f2;
    color: #82918d;
    text-align: center;
}

.nsf-product-card__details-empty span {
    color: #60716c;
    font-size: 10px;
    font-weight: 500;
}

.nsf-product-card__details-empty small {
    font-size: 9px;
    font-weight: 400;
}

.nsf-product-card__rating-row {
    min-height: 26px !important;
    margin-top: 0 !important;
}

.nsf-product-card__footer {
    align-self: end;
    width: 100%;
}

/* Mobile filter modal: one clean scrolling surface, stable accordions. */
@media (max-width: 1100px) {
    .nsf-listing-sidebar {
        contain: layout paint;
    }

    .nsf-listing-filter__group {
        flex: 0 0 auto;
        overflow: hidden !important;
        border-bottom: 1px solid #e8eeec !important;
        background: #fff;
    }

    .nsf-listing-filter__toggle {
        min-height: 68px;
        padding: 13px 2px !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        line-height: 1.6 !important;
    }

    .nsf-listing-filter__toggle > span {
        display: flex !important;
        min-width: 0;
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 2px !important;
        text-align: right;
    }

    .nsf-listing-filter__toggle > span small {
        color: #8a9995 !important;
        font-size: 9px !important;
        font-weight: 400 !important;
    }

    .nsf-listing-filter__toggle svg {
        flex: 0 0 18px;
        transition: transform .24s ease;
    }

    .nsf-listing-filter__content {
        display: block !important;
        max-height: 1400px !important;
        overflow: hidden !important;
        padding: 0 2px 16px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transition: max-height .28s cubic-bezier(.2,.75,.2,1), opacity .2s ease, padding .28s ease !important;
    }

    .nsf-listing-filter__group:not(.is-open) .nsf-listing-filter__content {
        max-height: 0 !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .nsf-listing-filter__group:not(.is-open) .nsf-listing-filter__toggle svg {
        transform: rotate(90deg) !important;
    }

    .nsf-listing-radio,
    .nsf-listing-checkbox {
        min-height: 42px !important;
        padding: 3px 0 !important;
        font-size: 12px !important;
        line-height: 1.5 !important;
    }

    .nsf-listing-radio span,
    .nsf-listing-checkbox span:not(.nsf-listing-checkbox__box) {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    .nsf-listing-radio small,
    .nsf-listing-checkbox small {
        min-width: 22px;
        color: #93a19d !important;
        text-align: left;
        font-size: 9px !important;
    }

    .nsf-listing-price-fields,
    .nsf-listing-spec-range {
        grid-template-columns: minmax(0, 1fr) 20px minmax(0, 1fr) !important;
        gap: 6px !important;
    }

    .nsf-listing-price-fields input,
    .nsf-listing-spec-range input,
    .nsf-listing-select-field select {
        min-height: 42px !important;
        font-size: 11px !important;
    }

    .nsf-listing-filter__guidance {
        margin: 14px 0 !important;
        padding: 13px !important;
        border-radius: 13px !important;
    }
}

@media (max-width: 782px) {
    .nsf-listing-toolbar {
        overflow: visible !important;
    }

    .nsf-listing-search {
        position: relative !important;
        z-index: 120 !important;
    }

    .nsf-listing-search__field {
        grid-template-columns: minmax(0, 1fr) 32px 36px !important;
        min-height: 46px !important;
        padding: 4px 5px 4px 9px !important;
    }

    .nsf-listing-search__field input[data-nsf-search-input] {
        height: 36px !important;
        font-size: 12px !important;
        line-height: 36px !important;
    }

    .nsf-listing-search__clear,
    .nsf-listing-search__submit {
        width: 32px !important;
        height: 32px !important;
        min-height: 32px !important;
    }

    /* Keep the typed term visible: panel opens below the field, never on top of it. */
    .nsf-search-panel {
        position: absolute !important;
        top: calc(100% + 8px) !important;
        right: 0 !important;
        bottom: auto !important;
        left: auto !important;
        width: min(92vw, 520px) !important;
        max-width: calc(100vw - 20px) !important;
        max-height: min(62dvh, 520px) !important;
        border-radius: 17px !important;
        transform: none !important;
    }

    .nsf-search-panel__results {
        max-height: calc(min(62dvh, 520px) - 82px) !important;
    }

    .nsf-search-suggestion {
        grid-template-columns: 48px minmax(0, 1fr) !important;
        min-height: 62px !important;
        padding: 6px !important;
    }

    .nsf-search-suggestion__content strong {
        font-size: 11px !important;
        line-height: 1.7 !important;
    }

    .nsf-search-panel__all {
        min-height: 44px !important;
    }

    .nsf-listing-sidebar {
        height: min(94dvh, 900px) !important;
        max-height: 94dvh !important;
    }

    .nsf-listing-sidebar__header {
        min-height: 76px;
        padding: 18px 16px 13px !important;
    }

    .nsf-listing-sidebar__header h2 {
        font-size: 18px !important;
        font-weight: 600 !important;
    }

    .nsf-listing-filter {
        padding: 2px 16px calc(18px + env(safe-area-inset-bottom)) !important;
        overflow-x: hidden !important;
    }

    .nsf-listing-filter__actions {
        margin-inline: -16px !important;
    }

    .nsf-product-card__body {
        grid-template-rows: auto minmax(52px, auto) minmax(68px, auto) 24px auto !important;
        padding: 10px 9px 11px !important;
    }

    .nsf-product-card h2 {
        min-height: 52px;
        font-size: 11px !important;
        line-height: 1.75 !important;
    }

    .nsf-product-card__details {
        min-height: 68px;
        margin-top: 6px;
    }

    .nsf-product-card__specs > div {
        min-height: 25px !important;
        gap: 5px !important;
    }

    .nsf-product-card__specs > div:nth-child(n+3) {
        display: none !important;
    }

    .nsf-product-card__specs dt {
        max-width: 58%;
        font-size: 7.8px !important;
    }

    .nsf-product-card__specs dd {
        max-width: 42%;
        overflow: hidden;
        font-size: 8.2px !important;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .nsf-product-card__excerpt,
    .nsf-product-card__details-empty {
        min-height: 62px !important;
    }

    .nsf-product-card__footer {
        margin-top: 0 !important;
    }

    .nsf-product-card__primary-action {
        width: 100%;
        min-height: 36px !important;
        font-size: 9px !important;
    }
}

@media (max-width: 380px) {
    .nsf-product-grid {
        gap: 8px !important;
    }
    .nsf-product-card__media-wrap {
        padding: 7px 7px 0 !important;
    }
    .nsf-product-card__quick-actions {
        top: 10px !important;
        left: 10px !important;
        gap: 4px !important;
    }
    .nsf-product-card__quick-actions button {
        width: 30px !important;
        height: 30px !important;
        border-radius: 9px !important;
    }
}


/* =========================================================
   PLP 0.10.4 — Search panel lifecycle and control alignment
   ========================================================= */

/* The HTML hidden state must always win over the flex panel declaration. */
.nsf-search-panel[hidden] {
    display: none !important;
}

.nsf-search-panel__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    min-height: 46px;
    padding: 8px 12px;
    border-bottom: 1px solid #e7eeeb;
    background: #fff;
    color: #526863;
    font-size: 11px;
    font-weight: 500;
}

.nsf-search-panel__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #dce7e3 !important;
    border-radius: 10px !important;
    background: #f7faf9 !important;
    color: #526863 !important;
    box-shadow: none !important;
}

.nsf-search-panel__close:hover {
    border-color: #c8d9d2 !important;
    background: #eef5f2 !important;
    color: var(--nsf-navy) !important;
}

.nsf-search-panel__close svg,
.nsf-listing-search__clear svg,
.nsf-listing-search__submit svg {
    display: block !important;
    width: 18px !important;
    height: 18px !important;
    pointer-events: none;
}

/* Keep both controls on the left side in RTL and reserve their space. */
.nsf-listing-search__field {
    grid-template-columns: minmax(0, 1fr) 34px 38px !important;
    direction: rtl !important;
}

.nsf-listing-search__field input[data-nsf-search-input] {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding-inline: 8px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.nsf-listing-search__clear {
    grid-column: 2 !important;
    grid-row: 1 !important;
    z-index: 2;
}

.nsf-listing-search__submit {
    grid-column: 3 !important;
    grid-row: 1 !important;
    z-index: 2;
}

.nsf-listing-search__clear::before,
.nsf-listing-search__clear::after,
.nsf-listing-search__submit::before,
.nsf-listing-search__submit::after {
    content: none !important;
    display: none !important;
}

@media (max-width: 782px) {
    .nsf-search-panel__topbar {
        position: sticky;
        top: 0;
        z-index: 3;
        min-height: 50px;
        padding-inline: 14px;
    }
}

/* =========================================================
   PLP 0.11.2 — Search state visibility hotfix
   The native [hidden] attribute must override state flex rules.
   ========================================================= */
.nsf-search-panel [hidden],
.nsf-search-panel__state[hidden] {
    display: none !important;
}


/* Compare compatibility modal 0.11.3 */
.nsf-modal-lock{overflow:hidden!important}.nsf-compatibility-modal{position:fixed;inset:0;z-index:100000;display:grid;place-items:center;padding:20px}.nsf-compatibility-modal__backdrop{position:absolute;inset:0;background:rgba(5,31,40,.5);backdrop-filter:blur(5px)}.nsf-compatibility-modal__dialog{position:relative;width:min(100%,500px);background:#fff;border:1px solid #dce8e4;border-radius:22px;padding:28px;box-shadow:0 28px 90px rgba(4,38,51,.25);text-align:right;color:#173e4d}.nsf-compatibility-modal__close{position:absolute;top:14px;left:14px;width:34px;height:34px;border:1px solid #dce7e4;border-radius:10px;background:#f8fbfa;color:#6d838b;font-size:20px;cursor:pointer}.nsf-compatibility-modal__icon{width:42px;height:42px;border-radius:13px;background:#fff2cf;color:#9a6a00;display:grid;place-items:center;font-weight:800;font-size:20px;margin-bottom:15px}.nsf-compatibility-modal h3{margin:0 0 8px;font-size:19px;color:#073e53}.nsf-compatibility-modal p{margin:0;color:#687d84;font-size:13px;line-height:2}.nsf-compatibility-modal__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.nsf-compatibility-modal__actions button{min-height:44px;border-radius:12px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}.nsf-compatibility-modal__actions button:first-child{border:1px solid #073e53;background:#073e53;color:#fff}.nsf-compatibility-modal__actions button:last-child{border:1px solid #d7e3e0;background:#fff;color:#173e4d}@media(max-width:782px){.nsf-compatibility-modal{padding:12px;align-items:end}.nsf-compatibility-modal__dialog{border-radius:22px 22px 16px 16px;padding:24px 18px 18px}.nsf-compatibility-modal__actions{grid-template-columns:1fr}.nsf-compatibility-modal__actions button{min-height:48px}}

/* Mobile-only filter usability hotfix. No desktop or non-filter selectors. */
@media (max-width: 782px) {
    .nsf-listing-sidebar {
        inset: auto 0 0 !important;
        width: 100vw !important;
        max-width: 100vw !important;
        height: min(96dvh, 920px) !important;
        max-height: 96dvh !important;
        border-radius: 24px 24px 0 0 !important;
    }

    .nsf-listing-sidebar__header {
        min-height: 82px !important;
        padding: 20px 20px 14px !important;
    }

    .nsf-listing-sidebar__header > div > span {
        margin-bottom: 4px !important;
        font-size: 12px !important;
        line-height: 1.6 !important;
    }

    .nsf-listing-sidebar__header h2 {
        font-size: 20px !important;
        line-height: 1.5 !important;
    }

    .nsf-listing-sidebar__close {
        width: 44px !important;
        height: 44px !important;
        border-radius: 12px !important;
    }

    .nsf-listing-filter {
        padding: 4px 20px calc(20px + env(safe-area-inset-bottom)) !important;
    }

    .nsf-listing-filter__toggle {
        min-height: 64px !important;
        padding: 12px 2px !important;
        font-size: 15px !important;
        line-height: 1.7 !important;
    }

    .nsf-listing-filter__toggle > span small {
        font-size: 11px !important;
        line-height: 1.5 !important;
    }

    .nsf-listing-filter__toggle > span em {
        font-size: 10px !important;
    }

    .nsf-listing-filter__toggle svg {
        flex-basis: 22px !important;
        width: 22px !important;
        height: 22px !important;
    }

    .nsf-listing-filter__content {
        padding: 2px 2px 18px !important;
    }

    .nsf-listing-radio,
    .nsf-listing-checkbox {
        min-height: 50px !important;
        gap: 12px !important;
        padding: 7px 4px !important;
        font-size: 14px !important;
        line-height: 1.65 !important;
    }

    .nsf-listing-radio input {
        width: 22px !important;
        height: 22px !important;
    }

    .nsf-listing-checkbox {
        grid-template-columns: 24px minmax(0, 1fr) auto !important;
    }

    .nsf-listing-checkbox__box {
        width: 22px !important;
        height: 22px !important;
        border-radius: 6px !important;
    }

    .nsf-listing-radio small,
    .nsf-listing-checkbox small {
        min-width: 28px !important;
        font-size: 11px !important;
    }

    .nsf-listing-switch {
        min-height: 50px !important;
        gap: 12px !important;
        font-size: 14px !important;
    }

    .nsf-listing-switch__track {
        flex-basis: 46px !important;
        width: 46px !important;
        height: 26px !important;
    }

    .nsf-listing-switch__track::after {
        width: 20px !important;
        height: 20px !important;
    }

    .nsf-listing-switch input:checked + .nsf-listing-switch__track::after {
        transform: translateX(-20px) !important;
    }

    .nsf-listing-price-fields,
    .nsf-listing-spec-range {
        grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr) !important;
        gap: 8px !important;
    }

    .nsf-listing-price-fields label > span,
    .nsf-listing-spec-range label > span {
        font-size: 11px !important;
    }

    .nsf-listing-price-fields input,
    .nsf-listing-spec-range input,
    .nsf-listing-select-field select {
        min-height: 48px !important;
        padding-inline: 12px !important;
        border-radius: 11px !important;
        font-size: 14px !important;
    }

    .nsf-listing-filter__range-caption {
        font-size: 11px !important;
    }

    .nsf-listing-filter__guidance {
        font-size: 13px !important;
    }

    .nsf-listing-filter__guidance strong {
        font-size: 14px !important;
    }

    .nsf-listing-filter__guidance p {
        font-size: 12px !important;
        line-height: 1.9 !important;
    }

    .nsf-listing-filter__actions {
        margin-inline: -20px !important;
        padding: 14px 20px calc(14px + env(safe-area-inset-bottom)) !important;
    }

    .nsf-listing-filter__apply {
        min-height: 52px !important;
        border-radius: 13px !important;
        font-size: 14px !important;
    }

    .nsf-listing-filter__apply small,
    .nsf-listing-filter__reset {
        font-size: 12px !important;
    }

    .nsf-listing-filter__reset {
        min-height: 44px !important;
    }
}

/* Approved product-category hierarchy: parent + child rows */
.nsf-listing-category-tree{display:grid;gap:4px}
.nsf-listing-category-tree__group{display:grid;gap:1px}
.nsf-listing-radio--parent{font-weight:600;color:#284650}
.nsf-listing-category-tree__children{display:grid;gap:0;margin:0 8px 4px 0;padding-right:12px;border-right:1px solid #e2ebe5}
.nsf-listing-radio--child{min-height:34px;font-size:10.5px;color:#60747c}
.nsf-listing-radio--child:before{content:"";width:5px;height:5px;border-radius:50%;background:#c1d0c6;justify-self:center}
.nsf-listing-radio--child{grid-template-columns:7px auto 1fr auto}
.nsf-listing-radio--child input{grid-column:2}
.nsf-listing-radio--child span{grid-column:3}
.nsf-listing-radio--child small{grid-column:4}
@media(max-width:767px){
  .nsf-listing-category-tree__children{margin-right:10px;padding-right:12px}
  .nsf-listing-radio--child{min-height:39px!important;font-size:11.5px!important}
}

/* =========================================================
   PLP 0.15.6 — approved category tree + technical type UX
   ========================================================= */
.nsf-listing-filter__hint{
    margin:0 0 8px;
    padding:9px 10px;
    border-radius:10px;
    background:#f7faf8;
    color:#7a8c91;
    font-size:9.5px;
    line-height:1.8;
}

.nsf-listing-category-tree{
    display:grid;
    gap:8px;
    margin-top:8px;
}

.nsf-listing-category-tree__group{
    display:grid;
    gap:0;
    overflow:hidden;
    border:1px solid #e5ece9;
    border-radius:12px;
    background:#fff;
}

.nsf-listing-radio--all-categories,
.nsf-listing-radio--parent,
.nsf-listing-radio--child{
    direction:rtl;
    grid-template-columns:20px minmax(0,1fr) auto !important;
    gap:9px;
    min-width:0;
}

.nsf-listing-radio--all-categories{
    margin-bottom:8px;
    padding:4px 8px;
    border-radius:10px;
    background:#f8fbf9;
    font-weight:600;
}

.nsf-listing-radio--parent{
    min-height:44px;
    padding:6px 10px;
    background:#f8fbf9;
    color:#24444f;
    font-weight:700;
}

.nsf-listing-radio--child{
    min-height:38px;
    padding:4px 10px;
    color:#536a73;
    font-size:11px;
}

.nsf-listing-radio--all-categories input,
.nsf-listing-radio--parent input,
.nsf-listing-radio--child input{
    grid-column:1 !important;
    align-self:center;
}

.nsf-listing-radio--all-categories span,
.nsf-listing-radio--parent span,
.nsf-listing-radio--child span{
    grid-column:2 !important;
    min-width:0;
    text-align:right;
    line-height:1.75;
    overflow-wrap:anywhere;
}

.nsf-listing-radio--all-categories small,
.nsf-listing-radio--parent small,
.nsf-listing-radio--child small{
    grid-column:3 !important;
    min-width:24px;
    text-align:left;
    white-space:nowrap;
}

.nsf-listing-radio--child::before{
    display:none !important;
    content:none !important;
}

.nsf-listing-category-tree__children{
    display:grid;
    gap:1px;
    margin:0 !important;
    padding:5px 10px 7px 18px !important;
    border:0 !important;
    border-top:1px solid #edf2ef !important;
    background:#fff;
}

.nsf-listing-category-tree__children .nsf-listing-radio--child + .nsf-listing-radio--child{
    border-top:1px dashed #edf1ef;
}

.nsf-listing-category-tree__group.is-empty,
.nsf-listing-radio.is-disabled{
    opacity:.52;
}

.nsf-listing-radio.is-disabled{
    cursor:not-allowed;
}

.nsf-listing-radio.is-disabled input{
    cursor:not-allowed;
}

/* On tablet/mobile the filter panel itself is the only scrolling surface.
   The category hierarchy must expand naturally inside it. */
@media (max-width:1100px){
    .nsf-listing-filter__group--categories .nsf-listing-filter__content{
        max-height:none !important;
        overflow:visible !important;
    }
}

@media (max-width:782px){
    .nsf-listing-filter__group--categories .nsf-listing-filter__content{
        padding:4px 0 18px !important;
    }

    .nsf-listing-category-tree{
        gap:10px;
        margin-top:10px;
    }

    .nsf-listing-category-tree__group{
        border-radius:14px;
    }

    .nsf-listing-radio--all-categories,
    .nsf-listing-radio--parent,
    .nsf-listing-radio--child{
        grid-template-columns:24px minmax(0,1fr) 30px !important;
        gap:10px !important;
    }

    .nsf-listing-radio--all-categories{
        min-height:48px !important;
        margin-bottom:10px;
        padding:6px 10px !important;
        font-size:14px !important;
    }

    .nsf-listing-radio--parent{
        min-height:52px !important;
        padding:7px 11px !important;
        font-size:14px !important;
        line-height:1.65 !important;
    }

    .nsf-listing-category-tree__children{
        padding:5px 12px 8px 22px !important;
    }

    .nsf-listing-radio--child{
        min-height:46px !important;
        padding:5px 8px !important;
        font-size:13px !important;
        line-height:1.7 !important;
    }

    .nsf-listing-filter__hint{
        margin-bottom:10px;
        padding:10px 11px;
        font-size:11px;
        line-height:1.9;
    }
}

/* =========================================================
   PLP 0.15.7 — desktop category filter visual hierarchy
   Desktop only. Mobile/tablet UX remains unchanged.
   ========================================================= */
@media (min-width:1101px){
    .nsf-listing__layout{
        grid-template-columns:316px minmax(0,1fr);
        gap:24px;
    }

    .nsf-listing-sidebar{
        padding:18px;
    }

    .nsf-listing-filter__group--categories .nsf-listing-filter__content{
        max-height:520px;
        overflow-y:auto;
        overflow-x:hidden;
        padding:0 2px 14px 4px;
        scrollbar-width:thin;
        scrollbar-color:#c7d5cf transparent;
    }

    .nsf-listing-filter__group--categories .nsf-listing-filter__content::-webkit-scrollbar{
        width:5px;
    }

    .nsf-listing-filter__group--categories .nsf-listing-filter__content::-webkit-scrollbar-thumb{
        border-radius:999px;
        background:#c7d5cf;
    }

    .nsf-listing-filter__group--categories .nsf-listing-radio--all-categories{
        grid-template-columns:18px minmax(0,1fr) 30px !important;
        min-height:42px;
        margin:2px 0 10px;
        padding:5px 9px;
        border:1px solid #e5ece8;
        border-radius:10px;
        background:#f8fbf9;
        font-size:11.5px;
    }

    .nsf-listing-category-tree{
        gap:10px;
        margin-top:0;
    }

    .nsf-listing-category-tree__group{
        gap:4px;
        overflow:visible;
        padding:0 0 9px;
        border:0;
        border-bottom:1px solid #edf2ef;
        border-radius:0;
        background:transparent;
    }

    .nsf-listing-category-tree__group:last-child{
        padding-bottom:0;
        border-bottom:0;
    }

    .nsf-listing-radio--parent{
        grid-template-columns:18px minmax(0,1fr) 30px !important;
        gap:8px;
        min-height:43px;
        padding:6px 9px;
        border:1px solid #e4ece8;
        border-radius:10px;
        background:#fbfdfc;
        color:#173f4c;
        font-size:11.5px;
        font-weight:700;
        transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
    }

    .nsf-listing-radio--parent:hover{
        border-color:#cfdfd7;
        background:#f7faf8;
    }

    .nsf-listing-radio--parent:has(input:checked){
        border-color:rgba(127,201,74,.46);
        background:#f3f9ee;
        box-shadow:0 0 0 2px rgba(127,201,74,.07);
    }

    .nsf-listing-category-tree__children{
        gap:0;
        margin:2px 11px 0 0 !important;
        padding:1px 11px 1px 0 !important;
        border:0 !important;
        border-right:1px solid #dfe9e4 !important;
        background:transparent;
    }

    .nsf-listing-radio--child{
        grid-template-columns:18px minmax(0,1fr) 28px !important;
        gap:7px;
        min-height:34px;
        padding:3px 5px 3px 0;
        border:0 !important;
        color:#526a73;
        font-size:10.75px;
        line-height:1.65;
        border-radius:7px;
        transition:background .16s ease,color .16s ease;
    }

    .nsf-listing-category-tree__children .nsf-listing-radio--child + .nsf-listing-radio--child{
        border-top:0;
    }

    .nsf-listing-radio--child:hover{
        background:#f8faf9;
        color:#234650;
    }

    .nsf-listing-radio--child:has(input:checked){
        background:#f3f9ee;
        color:#173f4c;
        font-weight:650;
    }

    .nsf-listing-radio--all-categories input,
    .nsf-listing-radio--parent input,
    .nsf-listing-radio--child input{
        width:15px;
        height:15px;
        margin:0;
    }

    .nsf-listing-radio--all-categories span,
    .nsf-listing-radio--parent span,
    .nsf-listing-radio--child span{
        overflow:hidden;
        text-overflow:ellipsis;
        overflow-wrap:normal;
        word-break:normal;
    }

    .nsf-listing-radio--all-categories small,
    .nsf-listing-radio--parent small{
        display:grid;
        place-items:center;
        min-width:26px;
        height:22px;
        padding:0 5px;
        border-radius:999px;
        background:#eef4f1;
        color:#7e9198;
        font-size:9px;
        font-weight:600;
    }

    .nsf-listing-radio--child small{
        min-width:24px;
        color:#9aabb0;
        font-size:9px;
        font-weight:500;
    }

    .nsf-listing-category-tree__group.is-empty,
    .nsf-listing-radio.is-disabled{
        opacity:.42;
    }
}

/* Sales-request pricing */
.nsf-product-card__price .nsf-price-state{display:inline-flex;font-weight:800}.nsf-product-card__price .nsf-price-state--quote{color:#8a5a16}.nsf-product-card__price .nsf-price-state__note{display:block;margin-top:3px;font-size:9px;line-height:1.55;color:#849399}

/* 0.16.1 — Ajax add-to-cart confirmation inside Noorin product cards */
.nsf-product-card__footer{flex-wrap:wrap}
.nsf-product-card__footer>.added_to_cart.wc-forward{
    order:3;
    flex:0 0 100%;
    width:100%;
    min-height:34px;
    margin:2px 0 0!important;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 10px!important;
    border:1px solid #dce6e8;
    border-radius:10px;
    background:#f8fbfa;
    color:var(--nsf-navy)!important;
    font-size:9.5px;
    font-weight:650;
    line-height:1;
    text-decoration:none!important;
    box-shadow:none!important;
    transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.nsf-product-card__footer>.added_to_cart.wc-forward::before{
    content:'✓';
    display:grid;
    place-items:center;
    width:17px;
    height:17px;
    border-radius:50%;
    background:#e7f5de;
    color:#4b8d2a;
    font-size:9px;
    font-weight:900;
}
.nsf-product-card__footer>.added_to_cart.wc-forward:hover{
    border-color:#bdd7c0;
    background:#f1f8ed;
    color:#376f25!important;
}
.nsf-product-card__primary-action.added{background:#345365!important;cursor:default}
@media(max-width:680px){
    .nsf-product-card__footer>.added_to_cart.wc-forward{min-height:32px;font-size:8.8px}
}
