<style id="apx-core-css">#apx6h-root .h6-mega{transition:opacity .22s ease,transform .22s ease,visibility .22s} #apx6h-root .h6-mega-shell{max-width:1280px;margin:0 auto;padding:18px 20px 22px;display:flex;gap:16px;align-items:stretch;min-height:396px;max-height:calc(100vh - 150px)} #apx6h-root .h6-mtabs{width:264px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;overflow:auto;padding:2px 2px 8px;scrollbar-width:thin} #apx6h-root .h6-mtab{position:relative;display:flex;align-items:center;gap:11px;width:100%;text-align:start;padding:10px 12px;border-radius:13px;border:1px solid transparent;background:transparent;cursor:pointer;transition:background .16s,border-color .16s,box-shadow .16s;font-family:inherit;color:var(--h6-ink,#33241c)} #apx6h-root .h6-mtab:hover{background:var(--h6-soft,#f6ecdf)} #apx6h-root .h6-mtab.is-on{background:linear-gradient(135deg,var(--h6-forest,#315b45),#244635);color:#f2ede4;border-color:transparent;box-shadow:0 10px 24px rgba(49,91,69,.30)} #apx6h-root .h6-mtab.is-on::before{content:"";position:absolute;inset-inline-start:0;top:12px;bottom:12px;width:3.5px;border-radius:3px;background:linear-gradient(180deg,#e2b07e,#c59b6b)} #apx6h-root .h6-mtab-ic{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#fff,var(--h6-soft,#f6ecdf));border:1px solid var(--h6-line,#ead9c7);display:grid;place-items:center;flex-shrink:0;transition:transform .2s,background .2s} #apx6h-root .h6-mtab-ic svg{width:20px;height:20px;stroke:var(--h6-gold-d,#a87e4f);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round} #apx6h-root .h6-mtab.is-on .h6-mtab-ic{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.22)} #apx6h-root .h6-mtab.is-on .h6-mtab-ic svg{stroke:#ffd9a8} #apx6h-root .h6-mtab-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px} #apx6h-root .h6-mtab-t b{font-size:13.6px;font-weight:800;line-height:1.45;white-space:nowrap;overflow:hidden;text-overflow:ellipsis} #apx6h-root .h6-mtab-t span{font-size:10.5px;color:#a08c79;font-weight:600} #apx6h-root .h6-mtab.is-on .h6-mtab-t span{color:#cfe0d5} #apx6h-root .h6-mtab-chev{width:14px;height:14px;stroke:#c9b8a5;fill:none;stroke-width:2.2;opacity:0;transform:translateX(5px);transition:opacity .2s,transform .2s;flex-shrink:0} #apx6h-root .h6-mtab.is-on .h6-mtab-chev{opacity:1;transform:none;stroke:#ffd9a8} #apx6h-root .h6-mcontent{flex:1;min-width:0;overflow:auto;padding:2px 6px 8px 2px;display:flex;flex-direction:column;scrollbar-width:thin} #apx6h-root .h6-mc-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:4px 4px 13px} #apx6h-root .h6-mc-head b{font-size:15.5px;font-weight:800;display:block;color:var(--h6-ink,#33241c)} #apx6h-root .h6-mc-head>div>span{font-size:11.8px;color:#8d7b6c;display:block;margin-top:4px} #apx6h-root .h6-mc-all{font-size:12.3px;font-weight:800;color:var(--h6-forest,#315b45);background:#f2f7f3;border:1px solid #cfe0d5;border-radius:10px;padding:8px 13px;white-space:nowrap;transition:background .15s;display:inline-flex;align-items:center;gap:6px;text-decoration:none} #apx6h-root .h6-mc-all:hover{background:#e7f0ea} #apx6h-root .h6-mc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(176px,1fr));gap:10px;align-content:start} #apx6h-root .h6-mcc{position:relative;display:flex;align-items:center;gap:11px;padding:10px 11px;background:#fff;border:1px solid var(--h6-line,#ead9c7);border-radius:14px;transition:transform .18s,border-color .18s,box-shadow .18s;opacity:0;transform:translateY(8px);animation:apxMcIn .4s cubic-bezier(.22,.8,.3,1) forwards;text-decoration:none} #apx6h-root .h6-mcc:hover{transform:translateY(-3px);border-color:#dfc5a4;box-shadow:0 12px 26px rgba(51,36,28,.10)} #apx6h-root .h6-mcc-img{width:52px;height:52px;border-radius:12px;flex-shrink:0;background:linear-gradient(150deg,#faf3ea,#f1e5d2);border:1px solid var(--h6-line,#ead9c7);display:grid;place-items:center;overflow:hidden} #apx6h-root .h6-mcc-img img{width:100%;height:100%;object-fit:contain;padding:4px;display:block} #apx6h-root .h6-mcc-img svg{width:24px;height:24px;stroke:var(--h6-gold-d,#a87e4f);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s} #apx6h-root .h6-mcc:hover .h6-mcc-img svg{transform:scale(1.12) rotate(-5deg)} #apx6h-root .h6-mcc-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px} #apx6h-root .h6-mcc-t b{font-size:12.6px;font-weight:800;line-height:1.6;color:var(--h6-ink,#33241c)} #apx6h-root .h6-mcc-t span{font-size:10.4px;color:#a08c79;font-weight:600} #apx6h-root .h6-mcc-go{width:24px;height:24px;border-radius:8px;background:var(--h6-soft,#f6ecdf);display:grid;place-items:center;opacity:0;transform:translateX(-6px);transition:opacity .2s,transform .2s;flex-shrink:0} #apx6h-root .h6-mcc-go svg{width:13px;height:13px;stroke:var(--h6-gold-d,#a87e4f);fill:none;stroke-width:2.4} #apx6h-root .h6-mcc:hover .h6-mcc-go{opacity:1;transform:none} #apx6h-root .h6-mcc-cta{grid-column:1/-1;background:linear-gradient(135deg,#fbf6ee,#f3e8d7);border:1.5px dashed #d9c4a5;color:var(--h6-gold-d,#a87e4f);justify-content:center;padding:12px;font-weight:800;font-size:13px;gap:9px} #apx6h-root .h6-mcc-cta svg{width:17px;height:17px;stroke:var(--h6-gold-d,#a87e4f);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round} #apx6h-root .h6-mcc-cta:hover{border-color:var(--h6-gold,#c59b6b);color:#8a6437} @keyframes apxMcIn{to{opacity:1;transform:none}} #apx6h-root .h6-skel-tab{height:60px;border-radius:13px;margin-bottom:2px} #apx6h-root .h6-skel-card{height:74px;border-radius:14px} @media(max-width:1240px){#apx6h-root .h6-mtabs{width:224px}#apx6h-root .h6-mc-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}} #apx6h-root .h6-badge-gold{background:linear-gradient(135deg,#c59b6b,#a87e4f)!important;box-shadow:0 3px 8px rgba(168,126,79,.42)!important;display:none;align-items:center;justify-content:center} #apx6h-root .h6-badge-gold.is-on{display:inline-flex} #aph9-root .h9-pc-shade{position:absolute;inset:auto 0 0 0;height:44%;background:linear-gradient(to top,rgba(43,30,20,.20),transparent);opacity:0;transition:opacity .25s;pointer-events:none} #aph9-root .h9-pc:hover .h9-pc-shade{opacity:1} #aph9-root .h9-pc-actions{position:absolute;top:10px;inset-inline-end:10px;display:flex;flex-direction:column;gap:7px;z-index:3;opacity:0;transform:translateX(-6px);transition:opacity .2s ease,transform .2s ease} #aph9-root .h9-pc:hover .h9-pc-actions,#aph9-root .h9-pc:focus-within .h9-pc-actions{opacity:1;transform:none} @media(hover:none){#aph9-root .h9-pc-actions{opacity:1;transform:none}} #aph9-root .h9-act{width:37px;height:37px;border-radius:50%;border:1px solid rgba(51,36,28,.09);background:rgba(255,255,255,.95);backdrop-filter:blur(6px);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 16px rgba(51,36,28,.16);transition:transform .18s,background .18s,color .18s,box-shadow .18s;color:#5d4a3d;padding:0;font-family:inherit} #aph9-root .h9-act svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round} #aph9-root .h9-act:hover{transform:translateY(-2px) scale(1.06);color:#a8542b;box-shadow:0 9px 22px rgba(51,36,28,.22)} #aph9-root .h9-act.is-alborz-active{background:linear-gradient(135deg,#c59b6b,#a87e4f);color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(168,126,79,.45)} #aph9-root .h9-act.is-alborz-active svg{stroke:#fff} #aph9-root .h9-act.is-alborz-active .apx-heart{fill:#fff} #aph9-root .h9-pc-view{position:absolute;bottom:12px;inset-inline-start:12px;display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.96);color:#33241c;font-size:11px;font-weight:800;padding:7px 12px;border-radius:20px;opacity:0;transform:translateY(7px);transition:opacity .22s,transform .22s;box-shadow:0 8px 20px rgba(51,36,28,.20);z-index:2;pointer-events:none} #aph9-root .h9-pc-view svg{width:12.5px;height:12.5px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} #aph9-root .h9-pc:hover .h9-pc-view{opacity:1;transform:none} #aph9-root .h9-price .inq{display:inline-flex;align-items:center;gap:6px;background:linear-gradient(135deg,#fbf6ee,#f3e8d7);border:1px solid #e3d3bd;color:#a87e4f;font-size:11.5px;font-weight:800;padding:6px 12px;border-radius:20px;line-height:1.6} #aph9-root .h9-price .inq svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0} html body.apx-cart-ready .cart-empty.woocommerce-info, html body.apx-cart-ready .return-to-shop{display:none!important} .apx-cart-hero{max-width:760px;margin:22px auto 8px;background:linear-gradient(165deg,#fffdf9,#f8f0e3);border:1px solid #ead9c7;border-radius:26px;padding:44px 30px 32px;text-align:center;box-shadow:0 26px 60px rgba(51,36,28,.09);position:relative;overflow:hidden;direction:rtl;font-family:Vazirmatn,"AP Estedad",Tahoma,Arial,sans-serif} .apx-cart-hero::before{content:"";position:absolute;inset:-45% -20% auto;height:75%;background:radial-gradient(60% 60% at 50% 0,rgba(197,155,107,.17),transparent 70%);pointer-events:none} .apx-cart-hero .apx-ch-ring{width:106px;height:106px;margin:0 auto 20px;border-radius:32px;background:linear-gradient(145deg,#315b45,#244635);display:grid;place-items:center;box-shadow:0 18px 40px rgba(49,91,69,.32);position:relative} .apx-cart-hero .apx-ch-ring::after{content:"";position:absolute;inset:-9px;border-radius:40px;border:1.5px dashed #d9c4a5;opacity:.65} .apx-cart-hero .apx-ch-ring svg{width:46px;height:46px;stroke:#ffd9a8;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round} .apx-cart-hero h2{font-size:23px;font-weight:900;color:#33241c;margin:0 0 9px;position:relative} .apx-cart-hero p{max-width:470px;margin:0 auto;color:#6b5a4e;font-size:13.3px;line-height:2.1;position:relative} .apx-cart-hero .apx-ch-cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:22px;position:relative} .apx-cart-hero .apx-ch-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 25px;border-radius:14px;font-size:13.8px;font-weight:800;text-decoration:none;transition:transform .18s,box-shadow .18s,filter .18s} .apx-cart-hero .apx-ch-btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round} .apx-cart-hero .apx-ch-p{background:linear-gradient(135deg,#315b45,#244635);color:#f2ede4;box-shadow:0 10px 26px rgba(49,91,69,.30)} .apx-cart-hero .apx-ch-p:hover{filter:brightness(1.1);transform:translateY(-2px)} .apx-cart-hero .apx-ch-o{background:#fff;border:1.5px solid #c59b6b;color:#a87e4f} .apx-cart-hero .apx-ch-o:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(168,126,79,.22)} .apx-cart-hero .apx-ch-trust{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:24px;padding-top:20px;border-top:1px dashed #e3d3bd;position:relative} .apx-cart-hero .apx-ch-trust span{display:inline-flex;align-items:center;gap:6px;font-size:11.4px;font-weight:700;color:#8d7b6c;background:#fff;border:1px solid #ead9c7;border-radius:20px;padding:7px 13px} .apx-cart-hero .apx-ch-trust svg{width:13px;height:13px;stroke:#a87e4f;fill:none;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round} @media(max-width:600px){.apx-cart-hero{padding:34px 18px 26px;border-radius:20px}.apx-cart-hero h2{font-size:19.5px}.apx-cart-hero .apx-ch-btn{width:100%;justify-content:center}} html body .woocommerce-cart table.shop_table{border:1px solid #ead9c7!important;border-radius:16px!important;overflow:hidden;background:#fff!important} html body .woocommerce-cart table.shop_table th{background:#f6ecdf!important;color:#33241c!important;font-weight:800!important;border:0!important} html body .woocommerce-cart table.shop_table td{border-color:#f1e5d2!important} html body .woocommerce-cart .checkout-button{background:linear-gradient(135deg,#315b45,#244635)!important;color:#f2ede4!important;border-radius:14px!important;font-weight:800!important;padding:14px 24px!important} html body .xtra-cart-drawer .ap-cart-empty-icon{width:94px!important;height:94px!important;border-radius:30px!important;background:linear-gradient(145deg,#315b45,#244635)!important;border:0!important;box-shadow:0 16px 36px rgba(49,91,69,.30)!important;position:relative} html body .xtra-cart-drawer .ap-cart-empty-icon::after{content:"";position:absolute;inset:-9px;border-radius:37px;border:1.5px dashed #d9c4a5;opacity:.6} html body .xtra-cart-drawer .ap-cart-empty-icon svg{width:38px!important;height:38px!important;stroke:#ffd9a8!important;stroke-width:1.7!important} html body .xtra-cart-drawer .ap-cart-empty strong{font-size:20px!important;font-weight:900!important;color:#33241c!important} html body .xtra-cart-drawer .ap-cart-empty p{font-size:12.4px!important;max-width:300px!important;line-height:2!important;color:#8d7b6c!important} html body .xtra-cart-drawer .woocommerce-mini-cart-item{border:1px solid rgba(234,217,199,.9)!important;border-radius:16px!important;margin-bottom:9px!important;background:#fff!important;transition:box-shadow .2s,transform .2s!important} html body .xtra-cart-drawer .woocommerce-mini-cart-item:hover{box-shadow:0 10px 26px rgba(51,36,28,.10)!important;transform:translateY(-1px)!important} html body .xtra-cart-drawer .woocommerce-mini-cart-item img{border-radius:12px!important;border:1px solid #f1e5d2!important;background:#fffdf9!important} html body .xtra-cart-drawer .woocommerce-mini-cart__total{background:linear-gradient(135deg,#fbf6ee,#f6ecdf)!important;border:1px solid #ead9c7!important;border-radius:16px!important;padding:14px 16px!important;margin:6px 0 12px!important} html body .ap-product .ap-product-actions .xtra-add-to-wishlist, html body .ap-product .ap-product-actions .xtra-add-to-compare{ background:rgba(255,255,255,.95)!important;backdrop-filter:blur(6px); border:1px solid rgba(7,24,49,.09)!important;color:#41506b!important; transition:transform .18s,background .18s,color .18s,box-shadow .18s!important; } html body .ap-product .ap-product-actions button:hover{ transform:translateY(-2px) scale(1.06)!important;color:#a8542b!important; box-shadow:0 8px 18px rgba(7,24,49,.16)!important; } html body .ap-product .ap-product-actions button svg{ width:16px!important;height:16px!important;fill:none!important;stroke:currentColor!important; stroke-width:1.9!important;stroke-linecap:round!important;stroke-linejoin:round!important; } html body .ap-product .ap-product-actions button.is-alborz-active{ background:linear-gradient(135deg,#c59b6b,#a87e4f)!important;color:#fff!important; border-color:transparent!important;box-shadow:0 8px 20px rgba(168,126,79,.45)!important; } html body .ap-product .ap-product-actions button.is-alborz-active svg{stroke:#fff!important} html body .ap-product .ap-product-actions button.xtra-add-to-wishlist.is-alborz-active svg{fill:#fff!important} html body [data-shop-results]{align-items:stretch!important} html body [data-shop-results] .ap-product{height:100%!important;display:flex!important;flex-direction:column!important} html body [data-shop-results] .ap-product .ap-product-body{flex:1!important;display:flex!important;flex-direction:column!important} html body [data-shop-results] .ap-product .ap-product-buy{margin-top:auto!important} html body .ap-product .ap-product-meta{direction:rtl} html body .ap-product .ap-product-buy{direction:rtl} #apx6h-root .h6-mtabs .h6-mtab,#apx6h-root button.h6-mtab{width:100%!important;min-width:0!important;height:auto!important;min-height:58px} #apx6h-root .h6-mtabs .h6-mtab .h6-mtab-ic{width:38px!important;height:38px!important;min-width:38px!important} #apx6h-root .h6-mtabs .h6-mtab svg.h6-mtab-chev{width:14px!important;height:14px!important;min-width:14px!important} html body .ap-woo-surface .wc-empty-cart-message{max-width:100%!important;width:auto!important;margin:0 auto!important;float:none!important} html body .ap-woo-surface .woocommerce{max-width:100%!important;margin:0 auto!important}</style><script id="apx-core-js">(function () { 'use strict'; if (window.__apxCoreLoaded) return; window.__apxCoreLoaded = true; var d = document; var PHONE1 = '03153506115'; function fa(n) { return String(n).replace(/\d/g, function (c) { return '۰۱۲۳۴۵۶۷۸۹'[c]; }); } function el(html) { var t = d.createElement('template'); t.innerHTML = html.trim(); return t.content.firstElementChild; } var ICONS = { compare: '<svg viewBox="0 0 24 24"><path d="M20 8H8"/><path d="M11 5 8 8l3 3"/><path d="M4 16h12"/><path d="M13 13l3 3-3 3"/></svg>', check: '<svg viewBox="0 0 24 24"><path d="M20 6L9 17l-5-5"/></svg>', sparkle: '<svg viewBox="0 0 24 24"><path d="M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z"/><path d="M18.5 15.5l.9 2.1 2.1.9-2.1.9-.9 2.1-.9-2.1-2.1-.9 2.1-.9z"/></svg>', heart: '<svg class="apx-heart" viewBox="0 0 24 24"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 0 0 0-7.78Z"/></svg>', eye: '<svg viewBox="0 0 24 24"><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></svg>', phoneS: '<svg viewBox="0 0 24 24"><path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.13 1 .36 1.9.7 2.8a2 2 0 0 1-.45 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.45c.9.34 1.8.57 2.8.7A2 2 0 0 1 22 16.9z"/></svg>', cart: '<svg viewBox="0 0 24 24"><circle cx="9" cy="21" r="1.6"/><circle cx="19" cy="21" r="1.6"/><path d="M2.5 3h2l2.6 12.5a2 2 0 0 0 2 1.5h8.9a2 2 0 0 0 2-1.6L21.5 7H6"/></svg>', chair: '<svg viewBox="0 0 24 24"><path d="M5 11V7a3 3 0 0 1 3-3h8a3 3 0 0 1 3 3v4"/><path d="M3 13a2 2 0 0 1 4 0v2h10v-2a2 2 0 0 1 4 0v3a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M6 20v1"/><path d="M18 20v1"/></svg>', desk: '<svg viewBox="0 0 24 24"><rect x="3" y="6" width="18" height="4" rx="1"/><path d="M5 10v9"/><path d="M19 10v9"/><path d="M12 10v4"/><path d="M9 17h6"/></svg>', speaker: '<svg viewBox="0 0 24 24"><rect x="5" y="3" width="14" height="18" rx="2.5"/><circle cx="12" cy="14.5" r="3.2"/><circle cx="12" cy="7.5" r="1.4"/></svg>', screen: '<svg viewBox="0 0 24 24"><rect x="2.5" y="4" width="19" height="12" rx="2"/><path d="M8 20h8"/><path d="M12 16v4"/></svg>', edu: '<svg viewBox="0 0 24 24"><path d="M3 9l9-4 9 4-9 4z"/><path d="M7 11.5V16c0 1.2 2.2 2.5 5 2.5s5-1.3 5-2.5v-4.5"/></svg>', shelf: '<svg viewBox="0 0 24 24"><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M4 9.5h16"/><path d="M4 15h16"/><path d="M10 3v6.5"/><path d="M14 9.5V15"/></svg>', plastic: '<svg viewBox="0 0 24 24"><path d="M12 3a9 9 0 0 1 9 9H3a9 9 0 0 1 9-9z"/><path d="M12 12v7a2 2 0 0 0 4 0"/></svg>', sofa: '<svg viewBox="0 0 24 24"><path d="M4 11V8a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v3"/><path d="M2 13a2 2 0 0 1 4 0v1h12v-1a2 2 0 0 1 4 0v3a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2z"/><path d="M6 19v1.5"/><path d="M18 19v1.5"/></svg>' }; var CATIMG = { 34: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%D8%A7%D9%86%D8%AA%D8%B8%D8%A7%D8%B1-%D9%88-%D9%81%D8%B1%D9%88%D8%AF%DA%AF%D8%A7%D9%87%DB%8C-1.jpg', 37: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%D9%BE%D8%B2%D8%B4%DA%A9%DB%8C-%D9%88-%D8%A2%D8%B2%D9%85%D8%A7%DB%8C%D8%B4%DA%AF%D8%A7%D9%87%DB%8C-1.jpg', 95: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%85%D8%AD%D8%B5%D9%88%D9%84%D8%A7%D8%AA-%D8%A7%D9%BE%D9%86%DB%8C-%D9%88-%D8%BA%D8%B0%D8%A7%D8%AE%D9%88%D8%B1%DB%8C-1.jpg', 48: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%DA%A9%D8%A7%D8%B1%D8%B4%D9%86%D8%A7%D8%B3%DB%8C-1.jpg', 135: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%DA%A9%D8%A7%D9%86%D8%AA%D8%B1-%D9%88-%D9%86%D9%82%D8%B4%D9%87-%DA%A9%D8%B4%DB%8C-1.jpg', 38: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%DA%A9%D8%A7%D9%86%D8%AA%D8%B1-%D9%88-%D9%86%D9%82%D8%B4%D9%87-%DA%A9%D8%B4%DB%8C-1.jpg', 33: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%DA%A9%D9%86%D9%81%D8%B1%D8%A7%D9%86%D8%B3%DB%8C-1.jpg', 36: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B5%D9%86%D8%AF%D9%84%DB%8C-%DA%A9%D9%88%D8%AF%DA%A9.jpg', 114: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%82%D9%81%D8%B3%D9%87-%D9%88-%D8%A7%D8%B3%D8%AA%D9%86%D8%AF.jpg', 106: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%85%D8%AD%D8%B5%D9%88%D9%84%D8%A7%D8%AA-%DA%AF%D8%A7%D9%88%D8%B5%D9%86%D8%AF%D9%88%D9%82-1.jpg', 102: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%DA%A9%D9%85%D8%AF-%D8%A8%D8%A7%DB%8C%DA%AF%D8%A7%D9%86%DB%8C-1.jpg', 41: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%85%D8%A8%D9%84-%D8%A7%D8%AF%D8%A7%D8%B1%DB%8C-1.jpg', 30: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%85%DB%8C%D8%B2%D9%87%D8%A7%DB%8C-%D8%A7%D8%AF%D8%A7%D8%B1%DB%8C.jpg', 136: 'https://alborzpersian.com/wp-content/uploads/2026/08/alborz-category-%D9%85%DB%8C%D8%B2-%D8%AC%D9%84%D9%88%D9%85%D8%A8%D9%84%DB%8C.jpg' }; var MGROUPS = [ { t: 'صندلی و مبلمان اداری', ic: 'chair', ds: 'صندلی مدیریتی، کارشناسی، کنفرانسی و مبل برای هر فضای کاری', ids: [134, 48, 33, 137, 135, 139, 146, 34, 41, 95, 35, 36, 37, 38] }, { t: 'میز و جلومبلی', ic: 'desk', ds: 'میز اداری، میز پذیرایی و جلومبلی و میزهای آموزشی', ids: [30, 136, 150, 151, 202, 156] }, { t: 'صوتی و تصویری', ic: 'speaker', ds: 'سیستم‌های صوتی، کنفرانس، بلندگو و تجهیزات تصویری', ids: [174, 173, 180, 168, 176, 169, 170, 167, 166, 175, 171, 172, 179, 178, 177, 181], all: 165 }, { t: 'نمایشگر LED و لمسی', ic: 'screen', ds: 'نمایشگرهای LED داخلی و خارجی، لمسی، کیوسک و XR', ids: [189, 190, 191, 187, 188, 192, 194, 193], all: 186 }, { t: 'فروشگاهی و انباری', ic: 'shelf', ds: 'رگال، کمد بایگانی، قفسه، گاوصندوق و تجهیزات انبار', ids: [163, 114, 102, 100, 104, 112, 97, 106, 184, 40, 116] }, { t: 'آموزشی و اداری', ic: 'edu', ds: 'تجهیزات کلاس، وایت‌برد، تابلو اعلانات و لوازم اداری', ids: [203, 199, 200, 201, 113, 110] }, { t: 'پلاستیک و فضای باز', ic: 'plastic', ds: 'میز و صندلی پلاستیکی، چهارپایه و لوازم پلاستیکی', ids: [153, 155, 154, 159, 158, 157] } ]; var MM = { cats: null, active: -1, imgmap: {}, hoverTimer: null, patched: false }; function parseCats(list) { var map = {}; (list || []).forEach(function (c) { map[c.id] = { id: c.id, name: c.name, slug: c.slug, count: c.count || 0, parent: c.parent || 0 }; }); return map; } function catById(id) { return MM.cats ? MM.cats[id] : null; } function catImg(id) { return CATIMG[id] || MM.imgmap[id] || ''; } function waitFor(selector, cb, timeout) { var found = d.querySelector(selector); if (found) { cb(found); return; } var mo = new MutationObserver(function () { var n = d.querySelector(selector); if (n) { mo.disconnect(); clearTimeout(timer); cb(n); } }); mo.observe(d.documentElement, { childList: true, subtree: true }); var timer = setTimeout(function () { mo.disconnect(); }, timeout || 12000); } function readCollections() { var wish = {}, comp = {}; try { (JSON.parse(localStorage.getItem('alborzWishlistProducts') || '[]') || []).forEach(function (x) { wish[String(x.id)] = 1; }); (JSON.parse(localStorage.getItem('alborzCompareProducts') || '[]') || []).forEach(function (x) { comp[String(x.id)] = 1; }); } catch (e) {} return { wish: wish, comp: comp }; } function applyActiveStates(scope) { var c = readCollections(); (scope || d).querySelectorAll('.ap-product[data-product-id], .h9-pc[data-product-id]').forEach(function (card) { var id = card.getAttribute('data-product-id'); var w = card.querySelector('.xtra-add-to-wishlist'); var cm = card.querySelector('.xtra-add-to-compare'); if (w) w.classList.toggle('is-alborz-active', !!c.wish[id]); if (cm) cm.classList.toggle('is-alborz-active', !!c.comp[id]); }); } d.addEventListener('alborz:collection-updated', function () { setTimeout(function () { applyActiveStates(); polishCounts(); }, 40); }); function patchMegaMenu(panel) { if (panel.querySelector('.h6-mtabs')) return; panel.innerHTML = '<div class="h6-mega-shell">' + '<aside class="h6-mtabs" id="apx-mtabs" role="tablist" aria-label="گروه‌های محصولی">' + '<div class="h6-skel h6-skel-tab"></div><div class="h6-skel h6-skel-tab"></div><div class="h6-skel h6-skel-tab"></div><div class="h6-skel h6-skel-tab"></div><div class="h6-skel h6-skel-tab"></div>' + '</aside>' + '<div class="h6-mcontent" id="apx-mcontent"><div class="h6-mc-grid">' + '<div class="h6-skel h6-skel-card"></div><div class="h6-skel h6-skel-card"></div><div class="h6-skel h6-skel-card"></div>' + '<div class="h6-skel h6-skel-card"></div><div class="h6-skel h6-skel-card"></div><div class="h6-skel h6-skel-card"></div>' + '</div></div>' + '</div>'; function renderTabs() { var wrap = d.getElementById('apx-mtabs'); if (!wrap || !MM.cats) return; wrap.innerHTML = MGROUPS.map(function (g, i) { var n = 0; g.ids.forEach(function (id) { var c = catById(id); if (c) n += (c.count || 0); }); return '<button class="h6-mtab" type="button" role="tab" data-gi="' + i + '" aria-selected="false">' + '<span class="h6-mtab-ic">' + ICONS[g.ic] + '</span>' + '<span class="h6-mtab-t"><b>' + g.t + '</b><span>' + fa(n) + ' کد محصول</span></span>' + '<svg class="h6-mtab-chev" viewBox="0 0 24 24"><path d="M15 6l-6 6 6 6"/></svg>' + '</button>'; }).join(''); wrap.querySelectorAll('.h6-mtab').forEach(function (btn) { var gi = +btn.getAttribute('data-gi'); btn.addEventListener('click', function () { activateGroup(gi); }); btn.addEventListener('mouseenter', function () { if (!matchMedia('(hover:hover)').matches) return; clearTimeout(MM.hoverTimer); MM.hoverTimer = setTimeout(function () { activateGroup(gi); }, 80); }); }); } function fillImages() { var box = d.getElementById('apx-mcontent'); if (!box) return; box.querySelectorAll('.h6-mcc[data-cat-id]').forEach(function (card) { var holder = card.querySelector('.h6-mcc-img'); if (holder && !holder.querySelector('img')) { var src = MM.imgmap[card.getAttribute('data-cat-id')]; if (src) { var im = d.createElement('img'); im.src = src; im.alt = ''; im.loading = 'lazy'; holder.appendChild(im); } } }); } function renderPanel(gi) { var box = d.getElementById('apx-mcontent'); if (!box) return; var g = MGROUPS[gi]; var items = g.ids.map(function (id) { var c = catById(id); return c ? { id: +id, name: c.name, slug: c.slug, count: c.count || 0 } : null; }).filter(Boolean); var allHref = (g.all && catById(g.all)) ? ('/shop/?product_cat=' + catById(g.all).slug) : '/shop/'; var allLabel = (g.all && catById(g.all)) ? catById(g.all).name : 'همه محصولات'; var html = '<div class="h6-mc-head"><div><b>' + g.t + '</b><span>' + g.ds + '</span></div>' + '<a class="h6-mc-all" href="' + allHref + '">مشاهده همه ' + allLabel + '</a></div>' + '<div class="h6-mc-grid">'; items.forEach(function (c, i) { var img = catImg(c.id); html += '<a class="h6-mcc" style="animation-delay:' + Math.min(i * 26, 420) + 'ms" href="/shop/?product_cat=' + c.slug + '" data-cat-id="' + c.id + '">' + '<span class="h6-mcc-img">' + (img ? '<img src="' + img + '" alt="" loading="lazy">' : ICONS[g.ic]) + '</span>' + '<span class="h6-mcc-t"><b>' + c.name + '</b><span>' + fa(c.count) + ' کد محصول</span></span>' + '<span class="h6-mcc-go"><svg viewBox="0 0 24 24"><path d="M15 6l-6 6 6 6"/></svg></span>' + '</a>'; }); html += '<a class="h6-mcc h6-mcc-cta" style="animation-delay:' + Math.min(items.length * 26, 440) + 'ms" href="/shop/">' + ICONS.sparkle + '<span>مشاهده همه محصولات البرز پرشین</span></a></div>'; box.innerHTML = html; fillImages(); } function activateGroup(gi) { MM.active = gi; d.querySelectorAll('#apx-mtabs .h6-mtab').forEach(function (b) { var on = +b.getAttribute('data-gi') === gi; b.classList.toggle('is-on', on); b.setAttribute('aria-selected', String(on)); }); renderPanel(gi); } MM.renderTabs = renderTabs; MM.activate = activateGroup; MM.fillImages = fillImages; try { var ci = sessionStorage.getItem('apx-catimg-v1'); if (ci) MM.imgmap = JSON.parse(ci) || {}; } catch (e) { MM.imgmap = {}; } try { var cached = sessionStorage.getItem('apx-cats'); if (cached) { var cl = JSON.parse(cached); if (Array.isArray(cl) && cl.length) { MM.cats = parseCats(cl); renderTabs(); activateGroup(0); } } } catch (e) {} fetch('/wp-json/wp/v2/product_cat?per_page=100&hide_empty=true&orderby=count&order=desc') .then(function (r) { return r.ok ? r.json() : Promise.reject(0); }) .then(function (list) { if (!Array.isArray(list) || !list.length) return; MM.cats = parseCats(list); try { sessionStorage.setItem('apx-cats', JSON.stringify(list)); } catch (e) {} renderTabs(); MM.active = -1; activateGroup(0); }).catch(function () {}); if (Object.keys(MM.imgmap).length === 0) { fetch('/wp-json/wc/store/v1/products?per_page=100&orderby=popularity') .then(function (r) { return r.ok ? r.json() : Promise.reject(0); }) .then(function (items) { if (!Array.isArray(items)) return; items.forEach(function (p) { var im = (p.images && p.images[0] && p.images[0].src) || ''; if (!im) return; (p.categories || []).forEach(function (c) { if (!MM.imgmap[c.id]) MM.imgmap[c.id] = im; }); }); try { sessionStorage.setItem('apx-catimg-v1', JSON.stringify(MM.imgmap)); } catch (e) {} fillImages(); }).catch(function () {}); } } function patchTools(tools) { if (tools.querySelector('.h6-badge-gold')) return; var wish = tools.querySelector('.xtra-wishlist-link'); var account = tools.querySelector('a[href*="my-account"]'); if (wish && !wish.querySelector('.h6-badge')) { wish.insertAdjacentHTML('beforeend', '<span class="h6-badge h6-badge-gold" data-alborz-count="wishlist">۰</span>'); } if (account && !tools.querySelector('.xtra-compare-link')) { var cmp = el('<a class="h6-ico xtra-compare-link" href="/?alborz_view=compare" aria-label="مقایسه محصولات" title="مقایسه محصولات">' + ICONS.compare + '<span class="h6-badge h6-badge-gold" data-alborz-count="compare">۰</span></a>'); account.parentNode.insertBefore(cmp, account); } polishCounts(); if ('MutationObserver' in d) { var mo = new MutationObserver(function () { polishCounts(); }); d.querySelectorAll('[data-alborz-count]').forEach(function (b) { mo.observe(b, { childList: true, characterData: true, subtree: true }); }); } } function polishCounts() { d.querySelectorAll('[data-alborz-count]').forEach(function (b) { var raw = String(b.textContent || '').trim(); if (!raw) return; var norm = raw.replace(/[۰-۹]/g, function (c) { return String('۰۱۲۳۴۵۶۷۸۹'.indexOf(c)); }); var n = parseInt(norm, 10) || 0; var f = fa(n); if (raw !== f) b.textContent = f; b.classList.toggle('is-on', n > 0); }); } var PIDMAP = {}; function loadPidMap() { try { var c = sessionStorage.getItem('apx-pidmap'); if (c) { PIDMAP = JSON.parse(c) || {}; } } catch (e) { PIDMAP = {}; } if (Object.keys(PIDMAP).length) { patchAllCards(); return; } Promise.all([ fetch('/wp-json/wc/store/v1/products?per_page=100&orderby=popularity').then(function (r) { return r.ok ? r.json() : []; }).catch(function () { return []; }), fetch('/wp-json/wc/store/v1/products?per_page=100&orderby=date').then(function (r) { return r.ok ? r.json() : []; }).catch(function () { return []; }) ]).then(function (res) { (res[0] || []).concat(res[1] || []).forEach(function (p) { if (p && p.permalink) PIDMAP[p.permalink.replace(/^https?:\/\/[^/]+/, '')] = String(p.id); }); try { sessionStorage.setItem('apx-pidmap', JSON.stringify(PIDMAP)); } catch (e) {} patchAllCards(); }); } function patchCard(card) { if (card.getAttribute('data-apx')) return; card.setAttribute('data-apx', '1'); card.classList.add('ap-product'); var name = card.querySelector('.h9-pc-name'); var media = card.querySelector('.h9-pc-media'); var price = card.querySelector('.h9-price'); var atc = card.querySelector('.h9-atc[data-id]'); var href = (name || media || {}).getAttribute ? ((name || media).getAttribute('href') || '') : ''; var pid = atc ? atc.getAttribute('data-id') : (PIDMAP[href] || PIDMAP[href.replace(/\/$/, '')] || ''); if (pid) card.setAttribute('data-product-id', pid); if (name) name.classList.add('ap-product-title'); if (price) price.classList.add('ap-price'); if (media && !media.querySelector('.h9-pc-actions')) { media.insertAdjacentHTML('beforeend', '<span class="h9-pc-shade" aria-hidden="true"></span>' + '<span class="h9-pc-actions">' + '<button class="h9-act xtra-add-to-wishlist" type="button"' + (pid ? ' data-product-id="' + pid + '"' : '') + ' aria-label="افزودن به علاقه‌مندی‌ها" title="علاقه‌مندی‌ها">' + ICONS.heart + '</button>' + '<button class="h9-act xtra-add-to-compare" type="button"' + (pid ? ' data-product-id="' + pid + '"' : '') + ' aria-label="افزودن به مقایسه" title="مقایسه">' + ICONS.compare + '</button>' + '</span>' + '<span class="h9-pc-view">' + ICONS.eye + 'مشاهده محصول</span>'); var inq = card.querySelector('.h9-price .inq'); if (inq && !inq.querySelector('svg')) { inq.insertAdjacentHTML('afterbegin', ICONS.phoneS); } } } function patchAllCards() { d.querySelectorAll('.h9-pc').forEach(patchCard); applyActiveStates(d); } function observeCards() { var root = d.getElementById('aph9-root'); if (root) { patchAllCards(); var mo = new MutationObserver(function () { patchAllCards(); }); mo.observe(root, { childList: true, subtree: true }); } else { var t = setInterval(function () { var r = d.getElementById('aph9-root'); if (r) { clearInterval(t); observeCards(); } }, 600); setTimeout(function () { clearInterval(t); }, 20000); } } function enhanceCartPage() { var info = d.querySelector('.cart-empty.woocommerce-info'); if (!info || info.getAttribute('data-apx')) return; info.setAttribute('data-apx', '1'); var wrap = info.closest('.wc-empty-cart-message') || info.parentNode; if (!wrap) return; var hero = el( '<div class="apx-cart-hero" role="status">' + '<span class="apx-ch-ring">' + ICONS.cart + '</span>' + '<h2>سبد خرید شما خالی است</h2>' + '<p>محصولات موردنظرتان را انتخاب کنید تا همین‌جا نمایش داده شوند؛ تیم فروش ما برای انتخاب دقیق و استعلام قیمت پروژه کنار شماست.</p>' + '<div class="apx-ch-cta">' + '<a class="apx-ch-btn apx-ch-p" href="/shop/">' + ICONS.sparkle + '<span>مشاهده محصولات</span></a>' + '<a class="apx-ch-btn apx-ch-o" href="tel:' + PHONE1 + '">' + ICONS.phoneS + '<span>مشاوره و استعلام قیمت</span></a>' + '</div>' + '<div class="apx-ch-trust">' + '<span>' + ICONS.check + 'تولیدکننده مستقیم از ۱۳۴۷</span>' + '<span>' + ICONS.check + 'مشاوره رایگان چیدمان</span>' + '<span>' + ICONS.check + 'ارسال و نصب سراسری</span>' + '</div>' + '</div>' ); wrap.innerHTML = ''; wrap.appendChild(hero); var ret = d.querySelector('.return-to-shop'); if (ret && ret.parentNode) ret.parentNode.removeChild(ret); d.body.classList.add('apx-cart-ready'); } function fixGlyphs() { d.querySelectorAll('.xtra-collection-icon, .xtra-add-to-compare').forEach(function (elm) { if (elm.querySelector('svg')) return; if (/⇄|↔|⇋/.test(elm.textContent || '')) elm.innerHTML = ICONS.compare; }); } function ensureMega() { var panel = d.getElementById('apx6h-mega'); if (!panel) return; if (!panel.querySelector('.h6-mtabs')) patchMegaMenu(panel); if (!panel.getAttribute('data-apx-obs')) { panel.setAttribute('data-apx-obs', '1'); var mo = new MutationObserver(function () { if (!panel.querySelector('.h6-mtabs') && MM.cats) patchMegaMenu(panel); }); mo.observe(panel, { childList: true }); } } function ensureTools() { var tools = d.querySelector('.h6-tools'); if (!tools) return; if (!tools.querySelector('.h6-badge-gold')) patchTools(tools); } function boot() { waitFor('#apx6h-mega', ensureMega, 15000); waitFor('.h6-tools', ensureTools, 15000); setTimeout(ensureMega, 1500); setTimeout(ensureMega, 4000); setTimeout(ensureTools, 1500); setTimeout(ensureTools, 4000); fixGlyphs(); setTimeout(fixGlyphs, 1200); setTimeout(fixGlyphs, 3000); enhanceCartPage(); setTimeout(enhanceCartPage, 800); loadPidMap(); observeCards(); polishCounts(); var shopBox = d.querySelector('[data-shop-results]'); if (shopBox) { var smo = new MutationObserver(function () { setTimeout(function () { applyActiveStates(shopBox); }, 120); }); smo.observe(shopBox, { childList: true, subtree: true }); } } if (d.readyState === 'loading') d.addEventListener('DOMContentLoaded', boot, { once: true }); else boot(); })();</script>