/* Next Frontier Auth v4.3.0 */
:root{--nf-navy:#0f1f3d;--nf-navy-mid:#1a2e5a;--nf-blue:#5894D5;--nf-blue-dark:#204A77;--nf-blue-pale:#dbeafe;--nf-blue-ghost:#f0f6ff;--nf-gray-100:#f3f4f6;--nf-gray-200:#e5e7eb;--nf-gray-400:#9ca3af;--nf-gray-600:#4b5563;--nf-gray-800:#1f2937;--nf-error:#ef4444;--nf-radius:12px;--nf-radius-lg:20px;--nf-shadow-sm:0 1px 3px rgba(0,0,0,.07);--nf-shadow-md:0 4px 20px rgba(0,0,0,.09);--nf-shadow-xl:0 30px 80px rgba(0,0,0,.18)}
.nf-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 22px;border-radius:8px;font-family:'Poppins',sans-serif;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;text-decoration:none;white-space:nowrap;line-height:1}
.nf-btn-primary{background:#5894D5;color:#fff;box-shadow:0 2px 8px rgba(88,148,213,.3)}.nf-btn-primary:hover{background:#4a82c3;transform:translateY(-1px);color:#fff}
.nf-btn-outline{background:transparent;border:1.5px solid var(--nf-navy-mid);color:var(--nf-navy-mid)}.nf-btn-outline:hover{background:var(--nf-navy-mid);color:#fff}
.nf-btn-navy{background:var(--nf-navy);color:#fff}.nf-btn-navy:hover{background:var(--nf-navy-mid);color:#fff}
.nf-btn-lg{padding:14px 32px;font-size:1rem;border-radius:10px}.nf-btn-full{width:100%}
.nf-form-group{margin-bottom:18px}
.nf-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:600px){.nf-form-row{grid-template-columns:1fr}}
.nf-label{display:block;font-size:.82rem;font-weight:600;color:var(--nf-navy);margin-bottom:6px}.nf-req{color:var(--nf-blue);margin-left:2px}
.nf-input,.nf-select{width:100%;padding:11px 14px;border:1.5px solid var(--nf-gray-200);border-radius:8px;font-family:'Poppins',sans-serif;font-size:.9rem;color:var(--nf-gray-800);background:#fff;outline:none;transition:border-color .2s,box-shadow .2s;appearance:none;-webkit-appearance:none}
.nf-input:focus,.nf-select:focus{border-color:var(--nf-blue);box-shadow:0 0 0 3px rgba(88,148,213,.12)}
.nf-input::placeholder{color:var(--nf-gray-400)}
.nf-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234b5563' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;cursor:pointer}
.nf-password-wrap{position:relative}
.nf-pwd-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--nf-gray-400);padding:4px;display:flex;align-items:center;transition:color .2s}.nf-pwd-toggle:hover{color:var(--nf-navy)}.nf-pwd-toggle svg{width:18px;height:18px}
.nf-checkboxes-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:4px}
.nf-checkbox-item{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.85rem;color:var(--nf-gray-600);padding:8px 10px;border-radius:6px;border:1.5px solid var(--nf-gray-200);transition:all .15s;font-family:'Poppins',sans-serif}
.nf-checkbox-item:hover{border-color:var(--nf-blue);background:var(--nf-blue-ghost)}
.nf-checkbox-item input{accent-color:var(--nf-blue);width:14px;height:14px;flex-shrink:0;cursor:pointer}
.nf-form-msg{padding:12px 16px;border-radius:8px;font-size:.88rem;font-weight:500;margin-bottom:18px;line-height:1.5;font-family:'Poppins',sans-serif}
.nf-form-msg.nf-msg-error{background:#fef2f2;border:1px solid #fecaca;color:var(--nf-error)}
.nf-form-msg.nf-msg-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#065f46}
.nf-form-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--nf-gray-400);font-size:.8rem}
.nf-form-divider::before,.nf-form-divider::after{content:'';flex:1;height:1px;background:var(--nf-gray-200)}
.nf-form-footer-text{text-align:center;font-size:.85rem;color:var(--nf-gray-400);margin-top:18px;font-family:'Poppins',sans-serif}
.nf-form-footer-text a{color:var(--nf-blue);font-weight:600;text-decoration:none}.nf-form-footer-text a:hover{text-decoration:underline}
.nf-login-meta{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;gap:8px;flex-wrap:wrap}
.nf-remember{display:flex;align-items:center;gap:7px;font-size:.83rem;color:var(--nf-gray-600);cursor:pointer;font-family:'Poppins',sans-serif}.nf-remember input{accent-color:var(--nf-blue);cursor:pointer}
.nf-forgot-link{font-size:.83rem;color:var(--nf-blue);font-weight:600;text-decoration:none}.nf-forgot-link:hover{text-decoration:underline}
@keyframes nf-spin{to{transform:rotate(360deg)}}.nf-spinner{width:18px;height:18px;animation:nf-spin .7s linear infinite}
.nf-price-locked{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;background:var(--nf-gray-100);border-radius:7px;border:1.5px dashed var(--nf-gray-200);font-size:.82rem;font-weight:600;color:var(--nf-gray-600);cursor:pointer;transition:all .2s;font-family:'Poppins',sans-serif}
.nf-price-locked:hover{background:var(--nf-blue-ghost);border-color:var(--nf-blue-pale);color:var(--nf-blue)}
.nf-modal-overlay{position:fixed;inset:0;background:rgba(10,18,38,.62);backdrop-filter:blur(6px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s}
.nf-modal-overlay.nf-open{opacity:1;pointer-events:all}
.nf-modal{background:#fff;border-radius:var(--nf-radius-lg);width:100%;max-width:460px;max-height:90vh;overflow-y:auto;box-shadow:var(--nf-shadow-xl);position:relative;transform:translateY(24px) scale(.97);transition:transform .32s cubic-bezier(.34,1.56,.64,1)}
.nf-modal-overlay.nf-open .nf-modal{transform:translateY(0) scale(1)}
.nf-modal-close{position:absolute;top:18px;right:18px;width:32px;height:32px;border-radius:50%;background:var(--nf-gray-100);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--nf-gray-600);transition:all .2s;z-index:10}
.nf-modal-close:hover{background:var(--nf-gray-200);color:var(--nf-navy)}.nf-modal-close svg{width:14px;height:14px}
.nf-modal-header{padding:20px 32px 0;text-align:center}
.nf-modal-logo{font-family:'Poppins',sans-serif;font-size:1.05rem;font-weight:700;color:var(--nf-navy);margin:0}.nf-modal-logo span{color:var(--nf-blue)}
.nf-logo-img{height:48px;width:auto;display:block;margin:0 auto;object-fit:contain}
.nf-modal-title{font-family:'Poppins',sans-serif;font-size:1.55rem;font-weight:700;color:var(--nf-blue-dark);margin:8px 0 4px}
.nf-modal-sub{font-size:.88rem;color:var(--nf-gray-400);margin:0 0 4px}
.nf-modal-body{padding:24px 32px 32px}
.nf-signin-page-wrap{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:48px 20px}
.nf-signin-page-box{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:20px 40px 32px;text-align:center;max-width:460px;width:100%;box-shadow:var(--nf-shadow-md);font-family:'Poppins',sans-serif}
.nf-signin-page-box .nf-label{text-align:left}.nf-signin-page-box .nf-login-meta{text-align:left}
@media(max-width:520px){.nf-signin-page-box{padding:32px 20px}}
.nf-already-logged-in{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:48px 20px}
.nf-already-box{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:48px 40px;text-align:center;max-width:460px;width:100%;box-shadow:var(--nf-shadow-md);font-family:'Poppins',sans-serif}
.nf-already-icon svg{width:56px;height:56px;margin:0 auto 20px;display:block}
.nf-already-title{font-family:'Poppins',sans-serif;font-size:1.4rem;font-weight:700;color:var(--nf-blue-dark);margin-bottom:10px}
.nf-already-sub{font-size:.9rem;color:var(--nf-gray-600);line-height:1.65;margin-bottom:28px;max-width:340px;margin-left:auto;margin-right:auto}
.nf-already-signout{display:inline-block;margin-top:14px;font-size:.82rem;color:var(--nf-gray-400);text-decoration:none}.nf-already-signout:hover{color:var(--nf-error);text-decoration:underline}
.nf-register-wrap{max-width:660px;margin:0 auto;padding:48px 20px 80px;font-family:'Poppins',sans-serif}
.nf-register-intro{text-align:center;margin-bottom:36px}
.nf-badge{display:inline-flex;background:var(--nf-blue-pale);color:var(--nf-blue);font-size:.78rem;font-weight:700;padding:5px 14px;border-radius:100px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px}
.nf-register-title{font-family:'Poppins',sans-serif;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;color:#204A77;margin-bottom:10px}
.nf-register-sub{font-size:.95rem;color:var(--nf-gray-400)}
.nf-register-card{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:36px;box-shadow:var(--nf-shadow-md)}
.nf-success-card{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:52px 36px;text-align:center;box-shadow:var(--nf-shadow-md);font-family:'Poppins',sans-serif}
.nf-success-icon svg{width:60px;height:60px;margin:0 auto 20px;display:block}
.nf-success-title{font-family:'Poppins',sans-serif;font-size:1.5rem;font-weight:700;color:var(--nf-navy);margin-bottom:10px}
.nf-success-text{font-size:.92rem;color:var(--nf-gray-600);line-height:1.65;max-width:340px;margin:0 auto 28px}
.nf-profile-layout{max-width:1100px;margin:0 auto;padding:48px 24px 80px;display:grid;grid-template-columns:268px 1fr;gap:28px;align-items:start;font-family:'Poppins',sans-serif}
@media(max-width:900px){.nf-profile-layout{grid-template-columns:1fr}}
.nf-profile-sidebar{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);overflow:hidden;box-shadow:var(--nf-shadow-sm);position:sticky;top:88px}
@media(max-width:900px){.nf-profile-sidebar{position:static}}
.nf-avatar-section{background:linear-gradient(135deg,var(--nf-navy) 0%,var(--nf-navy-mid) 100%);padding:28px 20px;text-align:center}
.nf-avatar{width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;font-family:'Poppins',sans-serif;font-size:1.4rem;font-weight:700;color:#fff;margin:0 auto 12px;border:2px solid rgba(255,255,255,.18)}
.nf-avatar-name{font-weight:600;font-size:.95rem;color:#fff;margin-bottom:3px}
.nf-avatar-business{font-size:.78rem;color:rgba(255,255,255,.6);margin-bottom:12px}
.nf-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:100px;font-size:.75rem;font-weight:600}
.nf-status-approved{background:rgba(16,185,129,.18);color:#6ee7b7}.nf-status-pending{background:rgba(245,158,11,.18);color:#fcd34d}
.nf-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.nf-sidebar-nav{padding:10px 0}
.nf-sidebar-item{display:flex;align-items:center;gap:10px;padding:11px 18px;font-size:.87rem;font-weight:500;color:var(--nf-gray-600);cursor:pointer;transition:all .15s;border-left:3px solid transparent;background:none;border-top:none;border-right:none;border-bottom:none;width:100%;text-align:left;text-decoration:none;font-family:'Poppins',sans-serif}
.nf-sidebar-item:hover{color:var(--nf-navy);background:var(--nf-blue-ghost);border-left-color:var(--nf-blue-pale)}
.nf-sidebar-item.active{color:var(--nf-blue);background:var(--nf-blue-ghost);border-left-color:var(--nf-blue);font-weight:600}
.nf-nav-icon{width:17px;height:17px;flex-shrink:0}
.nf-sidebar-divider{height:1px;background:var(--nf-gray-200);margin:6px 18px}
.nf-sidebar-signout{color:var(--nf-error) !important}.nf-sidebar-signout:hover{background:#fef2f2 !important}
.nf-profile-tab{display:none}.nf-profile-tab.active{display:block}
.nf-profile-card{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:26px 28px;margin-bottom:18px;box-shadow:var(--nf-shadow-sm)}
.nf-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;padding-bottom:14px;border-bottom:1px solid var(--nf-gray-200)}
.nf-card-title{font-family:'Poppins',sans-serif;font-size:1.1rem;font-weight:700;color:var(--nf-navy)}
.nf-card-sub{font-size:.8rem;color:var(--nf-gray-400);margin-top:2px}
.nf-access-banner{background:linear-gradient(135deg,var(--nf-navy) 0%,#1e3a8a 100%);border-radius:var(--nf-radius);padding:18px 22px;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;color:#fff;flex-wrap:wrap;gap:14px}
.nf-access-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:rgba(255,255,255,.55);margin-bottom:3px}
.nf-access-value{font-size:.92rem;font-weight:600}
.nf-access-stats{display:flex;gap:20px}.nf-access-stat{text-align:center}
.nf-access-num{font-family:'Poppins',sans-serif;font-size:1.4rem;font-weight:700;line-height:1}
.nf-access-lbl{font-size:.7rem;color:rgba(255,255,255,.55);margin-top:2px}
.nf-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
@media(max-width:600px){.nf-stats-row{grid-template-columns:1fr}}
.nf-stat-card{background:#fff;border-radius:var(--nf-radius);border:1px solid var(--nf-gray-200);padding:18px 20px;box-shadow:var(--nf-shadow-sm)}
.nf-stat-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--nf-gray-400);margin-bottom:7px}
.nf-stat-value{font-family:'Poppins',sans-serif;font-size:1.75rem;font-weight:700;color:var(--nf-navy);line-height:1;margin-bottom:4px}
.nf-stat-text{font-size:1rem !important}.nf-stat-sub{font-size:.76rem;color:var(--nf-gray-400)}
.nf-quick-links{display:grid;grid-template-columns:repeat(2,1fr);gap:11px}
@media(max-width:600px){.nf-quick-links{grid-template-columns:1fr}}
.nf-quick-link{display:flex;align-items:center;gap:13px;padding:15px 16px;background:var(--nf-blue-ghost);border-radius:var(--nf-radius);border:1px solid var(--nf-blue-pale);cursor:pointer;transition:all .2s;text-decoration:none;font-family:'Poppins',sans-serif;width:100%;text-align:left}
.nf-quick-link:hover{background:var(--nf-blue-pale);border-color:#93c5fd;transform:translateY(-1px)}
.nf-quick-icon{width:38px;height:38px;background:var(--nf-blue);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.nf-quick-icon svg{width:18px;height:18px}
.nf-quick-label{font-size:.87rem;font-weight:600;color:var(--nf-navy)}
.nf-quick-sub{font-size:.74rem;color:var(--nf-gray-400);margin-top:1px}
.nf-table-wrap{overflow-x:auto}
.nf-orders-table{width:100%;border-collapse:collapse}
.nf-orders-table th{text-align:left;padding:9px 14px;font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--nf-gray-400);background:var(--nf-gray-100);border-bottom:1px solid var(--nf-gray-200)}
.nf-orders-table td{padding:13px 14px;font-size:.87rem;color:var(--nf-gray-600);border-bottom:1px solid var(--nf-gray-100)}
.nf-orders-table tr:last-child td{border-bottom:none}
.nf-orders-table tbody tr:hover td{background:var(--nf-blue-ghost)}
.nf-order-num{font-weight:600;color:var(--nf-navy)}.nf-order-amount{font-weight:600;color:var(--nf-navy)}
.nf-order-status{display:inline-flex;padding:3px 9px;border-radius:100px;font-size:.74rem;font-weight:600}
.nf-status-completed,.nf-status-delivered{background:#d1fae5;color:#065f46}
.nf-status-processing{background:#dbeafe;color:#1e40af}
.nf-status-pending,.nf-status-on-hold{background:#fef3c7;color:#92400e}
.nf-status-cancelled{background:#fee2e2;color:#991b1b}
.nf-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:600px){.nf-info-grid{grid-template-columns:1fr}}
.nf-info-label{font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--nf-gray-400);margin-bottom:4px}
.nf-info-value{font-size:.93rem;font-weight:500;color:var(--nf-navy)}
.nf-empty-state{text-align:center;padding:44px 20px;color:var(--nf-gray-400)}
.nf-empty-icon svg{width:44px;height:44px;margin:0 auto 14px;display:block;color:var(--nf-gray-200)}
.nf-empty-title{font-size:1rem;font-weight:600;color:var(--nf-gray-600);margin-bottom:5px}.nf-empty-text{font-size:.84rem}
.nf-notif-item{display:flex;align-items:center;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--nf-gray-100);gap:16px}
.nf-notif-item:last-child{border-bottom:none}
.nf-notif-title{font-size:.9rem;font-weight:600;color:var(--nf-navy);margin-bottom:2px}
.nf-notif-sub{font-size:.8rem;color:var(--nf-gray-400)}
.nf-toggle{position:relative;width:44px;height:24px;flex-shrink:0;cursor:pointer}
.nf-toggle input{opacity:0;width:0;height:0;position:absolute}
.nf-toggle-slider{position:absolute;inset:0;background:var(--nf-gray-200);border-radius:100px;transition:.3s;cursor:pointer}
.nf-toggle-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.3s;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.nf-toggle input:checked + .nf-toggle-slider{background:var(--nf-blue)}
.nf-toggle input:checked + .nf-toggle-slider::before{transform:translateX(20px)}
.nf-login-required-wrap{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:48px 20px;font-family:'Poppins',sans-serif}
.nf-login-required-box{background:#fff;border-radius:var(--nf-radius-lg);border:1px solid var(--nf-gray-200);padding:48px 40px;text-align:center;max-width:440px;width:100%;box-shadow:var(--nf-shadow-md)}

/* ── CATALOG & CLOSEOUT PAGES ──────────────────────────────────────────────── */
.nf-catalog-wrap{width:100%;max-width:100%;margin:0;padding:32px 40px 100px;font-family:'Poppins',sans-serif;box-sizing:border-box}
.nf-filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px;padding:14px 0;border-bottom:1px solid var(--nf-gray-200)}
.nf-filter-tabs{display:flex;gap:6px;flex-wrap:wrap;flex:1}
.nf-filter-tab{padding:7px 16px;border-radius:100px;font-size:.8rem;font-weight:600;cursor:pointer;border:1.5px solid var(--nf-gray-200);background:#fff;color:var(--nf-gray-600);transition:all .18s;font-family:'Poppins',sans-serif;text-align:center;display:inline-flex;align-items:center;justify-content:center}
.nf-filter-tab:hover{border-color:#5894D5;background:#5894D5;color:#fff}
.nf-filter-tab.active{background:var(--nf-blue);border-color:var(--nf-blue);color:#fff}
.nf-closeout-wrap .nf-filter-tab:hover{border-color:#5894D5;background:#5894D5;color:#fff}
.nf-closeout-wrap .nf-filter-tab.active{background:#5894D5;border-color:#5894D5;color:#fff}
.nf-sort-select{padding:8px 14px;border:1.5px solid var(--nf-gray-200);border-radius:8px;font-family:'Poppins',sans-serif;font-size:.82rem;color:var(--nf-gray-600);outline:none;background:#fff;cursor:pointer}
.nf-results-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.nf-results-count{font-size:.85rem;color:var(--nf-gray-400)}
.nf-almost-gone-count{display:none !important}
.nf-results-count strong{color:var(--nf-gray-800)}
.nf-product-grid{display:grid;gap:20px}
.nf-cols-3{grid-template-columns:repeat(3,1fr)}
.nf-cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:900px){.nf-cols-3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:580px){.nf-cols-3,.nf-cols-2{grid-template-columns:1fr}}
.nf-product-card{background:#fff;border-radius:12px;border:1px solid var(--nf-gray-200);overflow:hidden;transition:all .22s;cursor:pointer;position:relative}
.nf-product-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.1);border-color:var(--nf-blue-pale)}
.nf-closeout-wrap .nf-product-card:hover{border-color:#fed7aa}
.nf-product-card.nf-sold-out{opacity:.6;cursor:default}
.nf-product-card.nf-sold-out:hover{transform:none;box-shadow:none}
.nf-card-image{height:200px;background:#ffffff;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.nf-card-image img{width:100%;height:100%;object-fit:contain;padding:16px;transition:transform .3s}
.nf-product-card:hover .nf-card-image img{transform:scale(1.04)}
.nf-img-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--nf-gray-400)}
.nf-img-placeholder svg{width:40px;height:40px;opacity:.35}
.nf-img-placeholder span{font-size:.74rem}
.nf-card-cat{position:absolute;top:10px;left:10px;background:#5894D5;color:#fff;font-size:.68rem;font-weight:700;padding:3px 10px;border-radius:100px;text-transform:uppercase;letter-spacing:.06em}
.nf-qty-badge{position:absolute;top:10px;right:10px;font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:100px}
.nf-badge-green{background:#d1fae5;color:#065f46}
.nf-badge-yellow{background:#fef3c7;color:#92400e}
.nf-badge-red{background:#fee2e2;color:#991b1b;animation:nf-pulse 2s infinite}
@keyframes nf-pulse{0%,100%{opacity:1}50%{opacity:.65}}
.nf-sold-out-overlay{position:absolute;inset:0;background:rgba(255,255,255,.72);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px)}
.nf-sold-out-label{background:#1f2937;color:#fff;font-size:.82rem;font-weight:700;padding:7px 18px;border-radius:100px;text-transform:uppercase;letter-spacing:.08em}
.nf-card-body{padding:16px}
.nf-card-name{font-size:.93rem;font-weight:700;color:var(--nf-navy);line-height:1.3;margin-bottom:10px}
.nf-card-posted{font-size:.72rem;color:var(--nf-gray-400);margin-bottom:10px;display:flex;align-items:center;gap:5px}
.nf-card-posted svg{width:11px;height:11px}
.nf-card-posted.nf-fresh{color:#10b981}
.nf-card-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.nf-meta-item{background:var(--nf-gray-100);border-radius:7px;padding:8px 10px}
.nf-meta-label{font-size:.64rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--nf-gray-400);margin-bottom:2px}
.nf-meta-value{font-size:.8rem;font-weight:600;color:var(--nf-gray-800);display:flex;align-items:center;gap:4px}
.nf-meta-value svg{width:10px;height:10px;color:var(--nf-gray-400);flex-shrink:0}
.nf-qty-bar-wrap{margin-bottom:12px;padding:0 14px}
.nf-qty-bar-label{display:flex;justify-content:space-between;font-size:.7rem;font-weight:600;color:var(--nf-gray-600);margin-bottom:5px}
.nf-qty-bar-label span:first-child{color:#5894D5;font-weight:700}
.nf-qty-bar{height:5px;background:var(--nf-gray-100);border-radius:100px;overflow:hidden}
.nf-qty-bar-fill{height:100%;border-radius:100px;transition:width .5s}
.nf-bar-green{background:#10b981}.nf-bar-yellow{background:#f59e0b}.nf-bar-red{background:#ef4444}
.nf-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:11px;border-top:1px solid var(--nf-gray-100)}
.nf-card-price{font-size:1rem;font-weight:800;color:var(--nf-navy)}
.nf-card-price .nf-per{font-size:.7rem;font-weight:400;color:var(--nf-gray-400)}
.nf-card-price.nf-locked{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;color:var(--nf-gray-400);background:var(--nf-gray-100);padding:5px 10px;border-radius:6px;border:1.5px dashed var(--nf-gray-200)}
.nf-card-price.nf-locked svg{width:11px;height:11px;flex-shrink:0}
.nf-btn-details{display:inline-flex;align-items:center;gap:5px;padding:6px 13px;background:var(--nf-blue-ghost);border:1.5px solid var(--nf-blue-pale);color:var(--nf-blue);border-radius:7px;font-size:.76rem;font-weight:600;cursor:pointer;transition:all .18s;font-family:'Poppins',sans-serif}
.nf-btn-details:hover{background:var(--nf-blue);color:#fff;border-color:var(--nf-blue)}
.nf-btn-details svg{width:12px;height:12px}
.nf-btn-orange{background:var(--nf-blue-ghost) !important;border-color:var(--nf-blue-pale) !important;color:var(--nf-blue) !important}
.nf-btn-orange:hover{background:var(--nf-blue) !important;color:#fff !important;border-color:var(--nf-blue) !important}
.nf-locked-banner{background:#DEE9F5;border:2px solid #5894D5;border-radius:10px;padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:22px;font-family:'Poppins',sans-serif;text-align:center;min-height:52px}
.nf-locked-banner svg{width:20px;height:20px;color:#204A77;flex-shrink:0}
.nf-locked-banner p{font-size:.84rem;color:#204A77;line-height:1.5}
.nf-locked-banner a{color:#5894D5;font-weight:700;text-decoration:underline}
.nf-urgency-banner{background:#DEE9F5;border:2px solid #5894D5;border-radius:10px;padding:14px 20px;display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:22px;font-family:'Poppins',sans-serif;text-align:center;min-height:52px}
.nf-urgency-banner svg{width:20px;height:20px;color:#204A77;flex-shrink:0}
.nf-urgency-banner p{font-size:.84rem;color:#1f2937;line-height:1.5}
.nf-urgency-banner a{color:#5894D5;font-weight:700;text-decoration:underline}
.nf-pagination{display:flex;gap:8px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.nf-page-btn{padding:8px 16px;border-radius:8px;background:#fff;border:1.5px solid var(--nf-gray-200);color:var(--nf-gray-600);font-family:'Poppins',sans-serif;font-size:.85rem;font-weight:600;text-decoration:none;transition:all .18s}
.nf-page-btn:hover,.nf-page-btn.active{background:var(--nf-blue);border-color:var(--nf-blue);color:#fff}
/* Product modal */
.nf-product-modal{background:#fff;border-radius:20px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 40px 100px rgba(0,0,0,.22);transform:translateY(20px) scale(.97);transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:relative}
.nf-modal-overlay.nf-open .nf-product-modal{transform:none}
.nf-pm-top{padding:22px 24px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-radius:20px 20px 0 0}
.nf-pm-body{padding:22px 24px}
.nf-modal-specs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px}
.nf-spec-item{background:var(--nf-gray-100);border-radius:8px;padding:10px 12px}
.nf-spec-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--nf-gray-400);margin-bottom:3px}
.nf-spec-value{font-size:.88rem;font-weight:600;color:var(--nf-navy)}
.nf-modal-price-row{border-radius:10px;padding:14px 18px;margin-bottom:16px;background:linear-gradient(135deg,var(--nf-navy),#1e3a8a)}
.nf-modal-price-value{font-size:1.5rem;font-weight:800;color:#fff}
.nf-modal-price-unit{font-size:.76rem;color:rgba(255,255,255,.5)}
.nf-modal-price-locked{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.7);font-size:.85rem;font-weight:500}
.nf-modal-price-locked svg{width:18px;height:18px}
.nf-modal-close-x{position:absolute;top:14px;right:14px;width:28px;height:28px;background:rgba(255,255,255,.15);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff}
.nf-modal-close-x svg{width:12px;height:12px}
.nf-modal-loading{text-align:center;padding:48px;color:var(--nf-gray-400);font-family:'Poppins',sans-serif}

/* ── CATALOG PAGE OVERRIDES ─────────────────────────────────────────────────── */

/* Kill WooCommerce/theme giant lock icon that shows for non-approved users */
.nf-catalog-wrap .woocommerce-loop-product__link svg,
.nf-catalog-wrap .price svg,
.nf-catalog-wrap > svg,
.entry-content > svg,
.woocommerce .price > svg {
    display: none !important;
}

/* Ensure product grid always renders as CSS grid regardless of theme */
.nf-product-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 20px !important;
    width: 100% !important;
}
@media(max-width:900px) {
    .nf-product-grid { grid-template-columns: repeat(2,1fr) !important; }
}
@media(max-width:580px) {
    .nf-product-grid { grid-template-columns: 1fr !important; }
}

/* Force card layout - prevent theme from collapsing cards */
.nf-product-card {
    display: flex !important;
    flex-direction: column !important;
    background: #fff !important;
    border-radius: 12px !important;
    border: 1px solid #e5e7eb !important;
    overflow: hidden !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

/* Force card image area */
.nf-card-image {
    width: 100% !important;
    height: 200px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #f3f4f6 !important;
    position: relative !important;
    overflow: hidden !important;
}
.nf-card-image img {
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    padding: 16px !important;
}

/* Force card body */
.nf-card-body {
    padding: 16px !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Meta grid inside cards */
.nf-card-meta {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    margin-bottom: 12px !important;
}

/* Card footer */
.nf-card-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 11px 14px 12px !important;
    border-top: 1px solid #f3f4f6 !important;
    margin-top: auto !important;
}

/* Hide the giant WC price lock SVG specifically */
.nf-catalog-wrap .nf-locked-banner ~ svg,
.woocommerce-placeholder,
.nf-catalog-wrap > .woocommerce > svg {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* Wrapper constraint */
.nf-catalog-wrap {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 32px 24px 100px !important;
    overflow: hidden !important;
}

/* Empty state */
.nf-empty-state {
    grid-column: 1 / -1;
    text-align: center;
    padding: 60px 20px;
    background: #f9fafb;
    border-radius: 12px;
    border: 2px dashed #e5e7eb;
}
.nf-empty-state p {
    font-size: 1rem;
    color: #9ca3af;
    font-family: 'Poppins', sans-serif;
    margin: 0;
}
.nf-empty-state strong {
    display: block;
    font-size: 1.1rem;
    color: #204A77;
    margin-bottom: 8px;
    font-family: 'Poppins', sans-serif;
}

/* Dash placeholder fix - show N/A instead of raw dash */
.nf-meta-value:empty::after {
    content: 'N/A';
    color: #9ca3af;
    font-size: .78rem;
}

/* ── NUCLEAR SVG HIDE — kills giant clock/lock injected by theme or WC ── */
.nf-catalog-wrap > svg,
.nf-catalog-wrap > svg:first-of-type,
.entry-content > svg,
.elementor-widget-container > svg,
.elementor-shortcode > svg,
body > svg,
.site-content > svg,
.page-content > svg,
.wp-block-shortcode > svg,
div.nf-catalog-wrap svg:not(.nf-img-placeholder svg):not(.nf-card-cat + svg):not(.nf-meta-value svg):not(.nf-btn-details svg):not(.nf-qty-badge + svg) {
    /* Only hide top-level orphan SVGs, not ones inside our components */
}

/* More targeted: hide any SVG that is a direct child of the shortcode wrapper */
.nf-catalog-wrap > svg { display: none !important; width: 0 !important; height: 0 !important; overflow: hidden !important; }
.nf-closeout-wrap > svg { display: none !important; width: 0 !important; height: 0 !important; overflow: hidden !important; }

/* Hide WooCommerce placeholder image SVG */
.woocommerce-placeholder { display: none !important; }
img.woocommerce-placeholder { display: none !important; }

/* The clock SVG is likely the nf_posted_date clock icon blown up — constrain ALL svg in wrap */
.nf-catalog-wrap svg { max-width: 40px; max-height: 40px; }
.nf-card-image .nf-img-placeholder svg { width: 40px !important; height: 40px !important; max-width: 40px !important; max-height: 40px !important; }

/* Hard cap on any rogue SVG anywhere in the catalog wrap */
.nf-catalog-wrap svg,
.nf-closeout-wrap svg {
    max-width: 100% !important;
}
/* But specifically — block-level SVGs directly in the wrap that have large viewboxes */
.nf-catalog-wrap > svg[viewBox],
.nf-closeout-wrap > svg[viewBox] {
    display: none !important;
}

/* Force white image area — override any theme background-color */
.nf-product-card .nf-card-image,
.nf-product-card .nf-card-image *:not(img):not(span):not(svg) {
    background-color: #ffffff !important;
}
.nf-product-card .nf-card-image img {
    background: #ffffff !important;
}

/* Keep content readable at ultra-wide but fill full screen */
.nf-filter-bar,
.nf-results-bar,
.nf-product-grid,
.nf-pagination,
.nf-locked-banner,
.nf-urgency-banner {
    max-width: 1400px;
    margin-left: auto;
    margin-right: auto;
}

/* ── FULL WIDTH FINAL OVERRIDE ──────────────────────────────────────────────── */
/* Elementor wraps shortcodes in multiple containers all with max-width set.
   We target every possible wrapper class Elementor uses. */
.elementor-section .elementor-container,
.elementor-section.elementor-section-boxed > .elementor-container,
.e-con,
.e-con-inner {
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.elementor-widget-shortcode .elementor-widget-container,
.elementor-widget-shortcode,
.elementor-element:has(.nf-catalog-wrap),
.elementor-element:has(.nf-closeout-wrap) {
    padding: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}
.nf-catalog-wrap,
.nf-closeout-wrap {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 40px !important;
    padding-right: 40px !important;
    box-sizing: border-box !important;
}
/* Hero image — full bleed */
.nf-catalog-wrap > div:first-child,
.nf-closeout-wrap > div:first-child {
    margin-left: -40px !important;
    margin-right: -40px !important;
    width: calc(100% + 80px) !important;
}
@media (max-width: 768px) {
    .nf-catalog-wrap,
    .nf-closeout-wrap {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
    .nf-catalog-wrap > div:first-child,
    .nf-closeout-wrap > div:first-child {
        margin-left: -16px !important;
        margin-right: -16px !important;
        width: calc(100% + 32px) !important;
    }
}

/* ── SIGN IN FOR PRICING BUTTON ─────────────────────────────────────────────── */
.nf-sign-in-price {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: #DEE9F5;
    border: 1.5px solid #5894D5;
    border-radius: 8px;
    color: #204A77;
    font-size: .78rem;
    font-weight: 600;
    font-family: 'Poppins', sans-serif;
    cursor: pointer !important;
    transition: all .18s;
    pointer-events: all !important;
}
.nf-sign-in-price:hover {
    background: #5894D5;
    color: #fff;
    border-color: #5894D5;
}
.nf-sign-in-price svg {
    width: 13px;
    height: 13px;
    flex-shrink: 0;
}
/* Kill old locked span style that made it grey */
.nf-card-price.nf-locked {
    display: none !important;
}
.nf-price-locked {
    display: none !important;
}

/* ── FILTER ROW (tabs + inline sort + search below) ─────────────────────── */
.nf-filter-row {
    margin-bottom: 16px;
}
.nf-filter-top {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 12px 0;
    border-bottom: 1px solid #e5e7eb;
}
.nf-filter-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    flex: 1;
}
.nf-filter-tab {
    padding: 7px 16px;
    border: 1.5px solid #d1d5db;
    border-radius: 100px;
    font-size: .78rem;
    font-weight: 600;
    font-family: 'Poppins', sans-serif;
    color: #374151;
    background: #fff;
    cursor: pointer;
    text-decoration: none;
    transition: all .15s;
    white-space: nowrap;
}
.nf-filter-tab:hover {
    background: #5894D5;
    border-color: #5894D5;
    color: #fff;
}
.nf-filter-tab.active {
    background: #5894D5;
    border-color: #5894D5;
    color: #fff;
}
.nf-sort-inline {
    flex-shrink: 0;
    padding: 7px 28px 7px 10px;
    border: 1.5px solid #d1d5db;
    border-radius: 8px;
    font-size: .8rem;
    font-family: 'Poppins', sans-serif;
    color: #374151;
    background: #fff;
    cursor: pointer;
    min-width: 150px;
    appearance: auto;
}
.nf-search-row {
    padding: 10px 0 4px;
}
.nf-search-wrap {
    position: relative;
    max-width: 100%;
}
.nf-search-wrap input {
    width: 100%;
    padding: 9px 14px 9px 36px;
    border: 1.5px solid #d1d5db;
    border-radius: 10px;
    font-size: .85rem;
    font-family: 'Poppins', sans-serif;
    color: #374151;
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .15s;
}
.nf-search-wrap input:focus {
    border-color: #5894D5;
    box-shadow: 0 0 0 3px rgba(88,148,213,.12);
}
.nf-search-wrap svg {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    color: #9ca3af;
    pointer-events: none;
}

/* ── FILTER TOP: force sort inline, prevent wrapping ──────────────────────── */
.nf-filter-top {
    flex-wrap: nowrap !important;
    align-items: center !important;
}
.nf-filter-tabs {
    flex-wrap: wrap;
    min-width: 0;
}
.nf-sort-inline {
    flex-shrink: 0 !important;
    min-width: 140px !important;
    max-width: 160px !important;
    font-size: .78rem !important;
    padding: 7px 10px !important;
    border-radius: 100px !important;
    border: 1.5px solid #d1d5db !important;
    background: #fff !important;
    cursor: pointer !important;
    font-family: 'Poppins', sans-serif !important;
    color: #374151 !important;
    margin-left: 8px;
}
/* Search form layout */
.nf-search-wrap {
    display: flex !important;
    align-items: center;
    position: relative;
    max-width: 100%;
    width: 100%;
}
.nf-search-wrap > svg:first-child {
    position: absolute;
    left: 12px;
    width: 15px;
    height: 15px;
    color: #9ca3af;
    pointer-events: none;
    z-index: 1;
}
.nf-search-wrap input[type="text"] {
    flex: 1;
    padding: 9px 44px 9px 36px !important;
    border: 1.5px solid #d1d5db;
    border-radius: 10px !important;
    font-size: .85rem;
    font-family: 'Poppins', sans-serif;
    color: #374151;
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .15s;
    width: 100%;
}
.nf-search-wrap input[type="text"]:focus {
    border-color: #5894D5;
    box-shadow: 0 0 0 3px rgba(88,148,213,.12);
}
.nf-search-btn {
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    background: #5894D5;
    border: none;
    border-radius: 6px;
    padding: 5px 7px 3px;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background .15s;
}
.nf-search-btn:hover { background: #204A77; }
.nf-search-btn svg {
    width: 14px;
    height: 14px;
    color: #fff;
    stroke: #fff;
}

/* Banner content alignment */
.nf-locked-banner p,
.nf-urgency-banner p {
    margin: 0;
    font-size: .85rem;
    color: #204A77;
    line-height: 1.5;
}
.nf-locked-banner > svg,
.nf-urgency-banner > svg {
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    color: #204A77;
    stroke: #204A77;
}
.nf-locked-banner a,
.nf-urgency-banner a {
    color: #5894D5;
    font-weight: 600;
    text-decoration: underline;
}

/* Reduce empty space on sides of catalog/closeout wrap */
.nf-catalog-wrap,
.nf-closeout-wrap {
    padding-left: 24px !important;
    padding-right: 24px !important;
}
/* Hero spans full width (compensate for wrap padding) */
.nf-catalog-wrap > div:first-child,
.nf-closeout-wrap > div:first-child {
    margin-left: -24px !important;
    margin-right: -24px !important;
    width: calc(100% + 48px) !important;
}

/* ── MOBILE: sort drops below tabs, centered ─────────────────────────────── */
@media (max-width: 640px) {
    .nf-filter-top {
        flex-wrap: wrap !important;
    }
    .nf-filter-tabs {
        width: 100%;
        flex: none;
    }
    .nf-sort-inline {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 6px auto 0 !important;
        display: block !important;
    }
}

/* ── HERO: remove white gap at top ───────────────────────────────────────── */
.nf-catalog-wrap,
.nf-closeout-wrap {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
/* Kill any theme/Elementor top margin on the shortcode wrapper */
.elementor-widget-shortcode,
.elementor-widget-container,
.wp-block-shortcode {
    padding-top: 0 !important;
    margin-top: 0 !important;
}
.elementor-section,
.elementor-top-section,
.e-con {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* ── SEARCH: remove the blue submit button ───────────────────────────────── */
.nf-search-btn {
    display: none !important;
}
/* Re-adjust input padding now that button is gone */
.nf-search-wrap input[type="text"] {
    padding-right: 14px !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   PATCH 5.4.3
   ══════════════════════════════════════════════════════════════════════════ */

/* 1. White gap at top — Elementor adds padding to its top section/container.
      Target every possible wrapper that could cause the gap. */
.elementor-section:first-of-type,
.elementor-top-section:first-of-type,
.e-con:first-of-type,
.elementor-section:has(.nf-catalog-wrap),
.elementor-section:has(.nf-closeout-wrap),
.e-con:has(.nf-catalog-wrap),
.e-con:has(.nf-closeout-wrap),
.elementor-widget-shortcode,
.elementor-widget-container {
    padding-top: 0 !important;
    margin-top:  0 !important;
}
.nf-catalog-wrap > div:first-child,
.nf-closeout-wrap > div:first-child {
    margin-top: 0 !important;
    border-radius: 0 !important;
}

/* 2. Mobile: sort select drops below tabs, centered */
@media (max-width: 767px) {
    .nf-filter-top {
        flex-wrap: wrap !important;
        justify-content: center;
    }
    .nf-filter-tabs {
        width: 100%;
        justify-content: center;
    }
    .nf-sort-inline {
        order: 2;
        width: auto !important;
        min-width: 140px !important;
        max-width: 200px !important;
        margin: 8px auto 0 !important;
        display: block !important;
    }
}

/* 3. Search bar — hide the blue submit button entirely */
.nf-search-btn {
    display: none !important;
}
.nf-search-wrap input[type="text"] {
    padding-right: 14px !important;
    border-radius: 10px !important;
}

/* ══════════════════════════════════════════════════════════════════════════
   v5.4.3 PATCH
   ══════════════════════════════════════════════════════════════════════════ */

/* Banner sign-in inline button (looks like a link) */
.nf-banner-signin {
    background: none;
    border: none;
    padding: 0;
    margin: 0;
    color: #5894D5;
    font-weight: 600;
    font-family: inherit;
    font-size: inherit;
    cursor: pointer;
    text-decoration: underline;
    display: inline;
}
.nf-banner-signin:hover { color: #204A77; }

/* Desktop/tablet: show tab row, hide mobile dropdown */
.nf-tabs-desktop { display: flex; }
.nf-cat-mobile   { display: none; }

/* Mobile: hide tab row, show dropdown */
@media (max-width: 767px) {
    .nf-tabs-desktop { display: none !important; }
    .nf-cat-mobile   { display: block; position: relative; }

    .nf-filter-top {
        flex-wrap: nowrap !important;
        gap: 8px;
        align-items: center;
    }

    /* Category dropdown button */
    .nf-cat-dropdown-btn {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 7px 14px;
        background: #5894D5;
        border: 1.5px solid #5894D5;
        border-radius: 100px;
        color: #fff;
        font-size: .78rem;
        font-weight: 700;
        font-family: 'Poppins', sans-serif;
        cursor: pointer;
        white-space: nowrap;
        letter-spacing: .04em;
    }
    .nf-cat-dropdown-btn svg {
        width: 14px;
        height: 14px;
        flex-shrink: 0;
        transition: transform .2s;
    }

    /* Dropdown menu */
    .nf-cat-dropdown-menu {
        display: none;
        position: absolute;
        top: calc(100% + 6px);
        left: 0;
        z-index: 999;
        background: #fff;
        border: 1.5px solid #5894D5;
        border-radius: 12px;
        padding: 6px;
        min-width: 180px;
        box-shadow: 0 8px 24px rgba(0,0,0,.12);
    }
    .nf-cat-dropdown-menu.nf-open {
        display: block;
    }
    .nf-cat-dropdown-item {
        display: block;
        padding: 9px 14px;
        font-size: .82rem;
        font-weight: 600;
        font-family: 'Poppins', sans-serif;
        color: #374151;
        text-decoration: none;
        border-radius: 8px;
        transition: background .12s;
    }
    .nf-cat-dropdown-item:hover,
    .nf-cat-dropdown-item.active {
        background: #DEE9F5;
        color: #204A77;
    }

    /* Sort stays to the right of the Category button */
    .nf-sort-inline {
        flex-shrink: 0 !important;
        min-width: 120px !important;
        max-width: 140px !important;
        margin: 0 !important;
        font-size: .75rem !important;
    }
}

/* Close dropdown when clicking outside */

/* ── v5.4.3 PATCH ─────────────────────────────────────────────────────────── */

/* 1. Remove all browser button styling from banner sign-in link */
.nf-banner-signin,
.nf-banner-signin:hover,
.nf-banner-signin:focus,
.nf-banner-signin:active,
.nf-banner-signin:visited {
    background: none !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    padding: 0 !important;
    margin: 0 !important;
    color: #5894D5 !important;
    font-weight: 600 !important;
    font-family: inherit !important;
    font-size: inherit !important;
    cursor: pointer !important;
    text-decoration: underline !important;
    display: inline !important;
    line-height: inherit !important;
    vertical-align: baseline !important;
}
.nf-banner-signin:hover { color: #204A77 !important; }

/* 2. Banner not full-width on desktop/tablet — shrinks to content + 15px padding */
@media (min-width: 768px) {
    .nf-locked-banner,
    .nf-urgency-banner {
        display: inline-flex !important;
        width: auto !important;
        max-width: 100% !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
        box-sizing: border-box;
    }
    /* Wrapper div to center the inline banner */
    .nf-banner-center {
        text-align: center;
        width: 100%;
        margin-bottom: 22px;
    }
    .nf-banner-center .nf-locked-banner,
    .nf-banner-center .nf-urgency-banner {
        margin-bottom: 0;
    }
}

/* 3. UPC / SKU value — force black, not blue, not a tel link on mobile */
.nf-meta-value,
.nf-meta-value a,
.nf-spec-value,
.nf-spec-value a {
    color: inherit !important;
    text-decoration: none !important;
    -webkit-text-fill-color: inherit !important;
}
/* Specifically target auto-detected phone/number links on iOS/Android */
a[href^="tel"],
a[x-apple-data-detectors] {
    color: inherit !important;
    text-decoration: none !important;
    pointer-events: none !important;
}

/* ── Minimum order banner ─────────────────────────────────────────────────── */
.nf-min-order-banner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: transparent;
    color: #5894D5;
    padding: 10px 20px 6px;
    margin-bottom: 4px;
    font-family: 'Poppins', sans-serif;
}
.nf-min-order-banner svg {
    color: #5894D5;
    fill: #5894D5;
}
.nf-min-order-banner span {
    font-size: .95rem;
    font-weight: 700;
    color: #5894D5;
    font-style: normal;
}
.nf-min-order-banner em {
    font-style: italic;
    font-weight: 700;
    color: #5894D5;
    font-family: 'Poppins', sans-serif;
}

/* ── Per-unit / case calc pricing ─────────────────────────────────────────── */
.nf-case-calc {
    display: block;
    font-size: .78rem;
    color: #204A77;
    font-weight: 600;
    margin-top: 3px;
    font-family: 'Poppins', sans-serif;
    white-space: nowrap;
}
.nf-card-price {
    display: block;
}

/* ── Product page case calc ─────────────────────────────────────────────── */
.nfp-case-calc {
    font-size: .78rem;
    color: #6b7280;
    font-weight: 500;
    margin-top: 3px;
    font-family: 'Poppins', sans-serif;
}

/* ── Price wrap — stacks unit price + case calc vertically ── */
.nf-price-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.nf-card-price {
    display: flex;
    align-items: baseline;
    gap: 2px;
    font-size: 1.1rem;
    font-weight: 800;
    color: #1d2327;
    line-height: 1.2;
}
.nf-per {
    font-size: .78rem;
    font-weight: 600;
    color: #6b7280;
}
.nf-case-calc {
    font-size: .78rem;
    font-weight: 600;
    color: #204A77;
    white-space: nowrap;
    display: block;
}

/* ── Resale Certificate — Profile Page ─────────────────────────────────────── */
.nf-cert-uploaded-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:10px;flex-wrap:wrap;margin-bottom:14px}
.nf-cert-status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.nf-cert-status-label{font-size:.88rem;font-weight:700;color:#065f46}
.nf-cert-filename{font-size:.8rem;color:#4b5563;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nf-cert-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.nf-cert-download-btn{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;padding:7px 14px}
.nf-cert-no-file-row{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fffbeb;border:1.5px solid #fde68a;border-radius:10px;margin-bottom:14px}
.nf-cert-drop-zone{border:2px dashed var(--nf-gray-200);border-radius:10px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .2s;background:#fafafa}
.nf-cert-drop-zone:hover,.nf-cert-drop-zone.nf-cert-drag-over{border-color:var(--nf-blue);background:var(--nf-blue-ghost)}
.nf-cert-drop-inner{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--nf-gray-400);pointer-events:none}
.nf-cert-drop-text{font-size:.88rem;font-weight:500;color:var(--nf-gray-600)}
.nf-cert-browse{color:var(--nf-blue);font-weight:700;cursor:pointer;pointer-events:all}
.nf-cert-drop-sub{font-size:.77rem;color:var(--nf-gray-400)}

/* ── Resale Certificate — Registration Form ─────────────────────────────────── */
.nf-label-optional{font-size:.75rem;font-weight:400;color:var(--nf-gray-400);margin-left:4px}
.nf-cert-reg-drop{border:1.5px dashed var(--nf-gray-200);border-radius:8px;padding:11px 14px;background:#fafafa;cursor:pointer;transition:all .2s;display:flex;align-items:center}
.nf-cert-reg-drop:hover,.nf-cert-reg-drop.nf-cert-drag-over{border-color:var(--nf-blue);background:var(--nf-blue-ghost)}
.nf-cert-reg-inner{display:flex;align-items:center;gap:8px;font-size:.88rem;color:var(--nf-gray-400);pointer-events:none;width:100%}
.nf-cert-reg-inner span{color:var(--nf-gray-600);font-weight:500}
.nf-cert-reg-browse{color:var(--nf-blue);font-weight:700;pointer-events:all;cursor:pointer}
.nf-cert-reg-selected{display:flex;align-items:center;gap:7px;padding:10px 14px;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:8px;font-size:.84rem;cursor:default}
.nf-cert-reg-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#065f46;font-weight:600}
.nf-cert-reg-clear{background:none;border:none;cursor:pointer;font-size:1.1rem;color:#9ca3af;line-height:1;padding:0 2px;flex-shrink:0}.nf-cert-reg-clear:hover{color:var(--nf-error)}
.nf-cert-reg-hint{font-size:.74rem;color:var(--nf-gray-400);margin-top:5px}

/* ── Retail link View Now ─────────────────────────────────────────────────── */
.nf-retail-link {
    color: #204A77;
    font-weight: 800;
    font-size: .84rem;
    text-decoration: none;
    font-family: 'Poppins', sans-serif;
}
.nf-retail-link:hover { text-decoration: underline; color: #204A77; }

/* ── Closeout pagination spacing ─────────────────────────────────────────── */
.nf-closeout-wrap .nf-pagination {
    margin-top: -100px !important;
    margin-bottom: 24px !important;
}
