{"product_id":"8-80mm-carabiner-snap-hooks-bag-of-40","title":"8 × 80mm Carabiner Snap Hooks – Bag of 40","description":"\u003cstyle\u003e\n  .product-trade-sheet {\n    --pts-bg: #ffffff;\n    --pts-surface: #ffffff;\n    --pts-soft: #f6f6f4;\n    --pts-text: #111111;\n    --pts-muted: #5a5a5a;\n    --pts-accent: #f26522;\n    --pts-accent-dark: #d95316;\n    --pts-accent-soft: #fff2e8;\n    --pts-line: #dfdfdb;\n\n    width: 100%;\n    max-width: 100%;\n    color: var(--pts-text);\n    background: var(--pts-bg);\n\n    font-family:\n      -apple-system,\n      BlinkMacSystemFont,\n      \"Segoe UI\",\n      Arial,\n      sans-serif;\n\n    font-size: 14px;\n    line-height: 1.7;\n\n    container-type: inline-size;\n  }\n\n  .product-trade-sheet *,\n  .product-trade-sheet *::before,\n  .product-trade-sheet *::after {\n    box-sizing: border-box;\n  }\n\n  .product-trade-sheet h2,\n  .product-trade-sheet p {\n    margin: 0;\n  }\n\n  .product-trade-sheet button,\n  .product-trade-sheet input {\n    font: inherit;\n  }\n\n  \/* =========================================================\n     PRODUCT OVERVIEW\n  ========================================================= *\/\n\n  .pts-hero {\n    width: 100%;\n    border-top: 4px solid var(--pts-accent);\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-surface);\n  }\n\n  .pts-hero-copy {\n    width: 100%;\n    padding: clamp(30px, 5cqw, 58px);\n  }\n\n  .pts-eyebrow {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    margin-bottom: 18px;\n    color: var(--pts-accent);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1;\n    letter-spacing: 0.16em;\n    text-transform: uppercase;\n  }\n\n  .pts-eyebrow::before {\n    content: \"\";\n    width: 34px;\n    height: 2px;\n    background: var(--pts-accent);\n  }\n\n  .pts-product-title {\n    width: 100%;\n    max-width: 980px;\n    margin: 0 0 24px !important;\n    color: var(--pts-text);\n    font-size: clamp(30px, 5.2cqw, 48px);\n    font-weight: 800;\n    line-height: 1.07;\n    letter-spacing: -0.045em;\n  }\n\n  .pts-intro {\n    width: 100%;\n    max-width: 980px;\n    color: var(--pts-muted);\n    font-size: clamp(15px, 2cqw, 18px);\n    line-height: 1.85;\n  }\n\n  \/* =========================================================\n     TOP STATS\n  ========================================================= *\/\n\n  .pts-hero-aside {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    width: 100%;\n    border-top: 1px solid var(--pts-line);\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-stat {\n    position: relative;\n    min-width: 0;\n    min-height: 126px;\n    padding: 20px;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    border-right: 1px solid var(--pts-line);\n    background: var(--pts-accent-soft);\n    overflow: hidden;\n    transition:\n      background-color 0.25s ease,\n      padding-left 0.25s ease;\n  }\n\n  .pts-stat:last-child {\n    border-right: 0;\n  }\n\n  .pts-stat::after {\n    content: \"\";\n    position: absolute;\n    left: 0;\n    bottom: 0;\n    width: 0;\n    height: 3px;\n    background: var(--pts-accent);\n    transition: width 0.3s ease;\n  }\n\n  .pts-stat:hover {\n    padding-left: 24px;\n    background: #ffffff;\n  }\n\n  .pts-stat:hover::after {\n    width: 100%;\n  }\n\n  .pts-stat-label {\n    display: block;\n    color: var(--pts-muted);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n  }\n\n  .pts-stat-value {\n    display: block;\n    margin-top: 22px;\n    color: var(--pts-text);\n    font-size: clamp(22px, 4cqw, 32px);\n    font-weight: 780;\n    line-height: 1;\n    letter-spacing: -0.035em;\n  }\n\n  .pts-stat-value small {\n    display: block;\n    margin-top: 8px;\n    color: var(--pts-muted);\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.4;\n  }\n\n  \/* =========================================================\n     PURCHASE PANEL\n  ========================================================= *\/\n\n  .pts-purchase-panel {\n    width: 100%;\n    padding: 20px;\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-soft);\n  }\n\n  .pts-purchase-card {\n    width: 100%;\n    border: 1px solid var(--pts-line);\n    background: #ffffff;\n  }\n\n  .pts-purchase-main {\n    display: grid;\n    grid-template-columns:\n      minmax(220px, 0.9fr)\n      minmax(190px, 0.75fr)\n      minmax(280px, 1.2fr);\n    width: 100%;\n  }\n\n  \/* =========================================================\n     QUANTITY\n  ========================================================= *\/\n\n  .pts-purchase-quantity {\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    padding: 22px;\n    border-right: 1px solid var(--pts-line);\n    background: #ffffff;\n  }\n\n  .pts-purchase-label {\n    display: block;\n    margin-bottom: 12px;\n    color: var(--pts-muted);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.13em;\n    text-transform: uppercase;\n  }\n\n  .pts-quantity-selector {\n    display: grid;\n    grid-template-columns: 50px 88px 50px;\n    width: max-content;\n    height: 52px;\n    border: 1px solid var(--pts-line);\n    background: #ffffff;\n  }\n\n  .pts-quantity-button {\n    appearance: none;\n    -webkit-appearance: none;\n    width: 50px;\n    height: 50px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    margin: 0;\n    padding: 0;\n    border: 0;\n    border-radius: 0;\n    background: #ffffff;\n    color: #111111;\n    cursor: pointer;\n    font-size: 22px;\n    font-weight: 500;\n    line-height: 1;\n    user-select: none;\n    transition:\n      background-color 0.2s ease,\n      color 0.2s ease;\n  }\n\n  .pts-quantity-button:hover:not(:disabled) {\n    background: var(--pts-accent);\n    color: #ffffff;\n  }\n\n  .pts-quantity-button:active:not(:disabled) {\n    background: var(--pts-accent-dark);\n  }\n\n  .pts-quantity-button:disabled {\n    cursor: not-allowed;\n    background: var(--pts-soft);\n    color: #b9b9b5;\n  }\n\n  .pts-quantity-input {\n    appearance: textfield;\n    -moz-appearance: textfield;\n    width: 88px;\n    height: 50px;\n    margin: 0;\n    padding: 0 5px;\n    border-top: 0;\n    border-bottom: 0;\n    border-left: 1px solid var(--pts-line);\n    border-right: 1px solid var(--pts-line);\n    border-radius: 0;\n    outline: none;\n    background: #ffffff;\n    color: var(--pts-text);\n    text-align: center;\n    font-size: 17px;\n    font-weight: 800;\n    line-height: 50px;\n  }\n\n  .pts-quantity-input:focus {\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-quantity-input::-webkit-inner-spin-button,\n  .pts-quantity-input::-webkit-outer-spin-button {\n    margin: 0;\n    -webkit-appearance: none;\n  }\n\n  .pts-minimum-note {\n    display: block;\n    margin-top: 10px;\n    color: var(--pts-muted);\n    font-size: 10px;\n    line-height: 1.45;\n  }\n\n  .pts-minimum-note strong {\n    color: var(--pts-text);\n  }\n\n  \/* =========================================================\n     ORDER TOTAL\n  ========================================================= *\/\n\n  .pts-purchase-total {\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    padding: 22px;\n    border-right: 1px solid var(--pts-line);\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-order-total-value {\n    display: block;\n    color: var(--pts-text);\n    font-size: clamp(28px, 4.4cqw, 38px);\n    font-weight: 800;\n    line-height: 1;\n    letter-spacing: -0.04em;\n  }\n\n  .pts-order-total-meta {\n    display: block;\n    margin-top: 9px;\n    color: var(--pts-muted);\n    font-size: 11px;\n    line-height: 1.5;\n  }\n\n  \/* =========================================================\n     BUY BUTTONS\n  ========================================================= *\/\n\n  .pts-purchase-actions {\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    gap: 14px;\n    padding: 14px;\n    background: #ffffff;\n  }\n\n  .pts-buy-button {\n    appearance: none;\n    -webkit-appearance: none;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 100%;\n    min-height: 54px;\n    margin: 0;\n    padding: 14px 18px;\n    border-radius: 0;\n    cursor: pointer;\n    font-size: 12px;\n    font-weight: 800;\n    line-height: 1.35;\n    letter-spacing: 0.055em;\n    text-align: center;\n    text-transform: uppercase;\n    transition:\n      background-color 0.2s ease,\n      color 0.2s ease,\n      border-color 0.2s ease,\n      transform 0.12s ease;\n  }\n\n  .pts-add-cart {\n    border: 1px solid #111111;\n    background: #111111;\n    color: #ffffff;\n  }\n\n  .pts-add-cart:hover {\n    background: #292929;\n    border-color: #292929;\n  }\n\n  .pts-add-cart:active {\n    transform: translateY(1px);\n    background: #000000;\n    border-color: #000000;\n  }\n\n  .pts-buy-now {\n    border: 1px solid var(--pts-accent);\n    background: var(--pts-accent);\n    color: #ffffff;\n  }\n\n  .pts-buy-now:hover {\n    background: var(--pts-accent-dark);\n    border-color: var(--pts-accent-dark);\n  }\n\n  .pts-buy-now:active {\n    transform: translateY(1px);\n  }\n\n  .pts-buy-button:disabled {\n    cursor: wait;\n    opacity: 0.6;\n  }\n\n  \/* =========================================================\n     PURCHASE FOOTER\n  ========================================================= *\/\n\n  .pts-purchase-footer {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 18px;\n    min-height: 46px;\n    padding: 10px 18px;\n    border-top: 1px solid var(--pts-line);\n    background: #ffffff;\n  }\n\n  .pts-purchase-footer-text {\n    color: var(--pts-muted);\n    font-size: 10px;\n    line-height: 1.5;\n  }\n\n  .pts-purchase-footer-text strong {\n    color: var(--pts-text);\n  }\n\n  .pts-purchase-status {\n    min-height: 15px;\n    color: var(--pts-muted);\n    font-size: 10px;\n    line-height: 1.5;\n    text-align: right;\n  }\n\n  .pts-purchase-status.is-error {\n    color: #b42318;\n  }\n\n  .pts-purchase-status.is-success {\n    color: #111111;\n  }\n\n  \/* =========================================================\n     SECTION INDEX\n  ========================================================= *\/\n\n  .pts-section-index {\n    display: grid;\n    grid-template-columns: repeat(4, minmax(0, 1fr));\n    width: 100%;\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-soft);\n  }\n\n  .pts-index-item {\n    min-width: 0;\n    padding: 16px 18px;\n    border-right: 1px solid var(--pts-line);\n    transition:\n      background-color 0.25s ease,\n      padding-left 0.25s ease;\n  }\n\n  .pts-index-item:last-child {\n    border-right: 0;\n  }\n\n  .pts-index-item:hover {\n    padding-left: 23px;\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-index-number {\n    display: block;\n    margin-bottom: 6px;\n    color: var(--pts-accent);\n    font-size: 9px;\n    font-weight: 850;\n    line-height: 1;\n    letter-spacing: 0.12em;\n  }\n\n  .pts-index-label {\n    display: block;\n    color: var(--pts-text);\n    font-size: 11px;\n    font-weight: 700;\n    line-height: 1.4;\n  }\n\n  \/* =========================================================\n     ACCORDION\n  ========================================================= *\/\n\n  .pts-sections {\n    width: 100%;\n    background: var(--pts-bg);\n  }\n\n  .pts-section {\n    width: 100%;\n    border-bottom: 1px solid var(--pts-line);\n  }\n\n  .pts-section details {\n    display: block;\n    width: 100%;\n  }\n\n  .pts-section summary {\n    display: grid;\n    grid-template-columns:\n      82px\n      minmax(0, 1fr)\n      64px;\n    align-items: stretch;\n    width: 100%;\n    min-height: 86px;\n    padding: 0;\n    background: var(--pts-surface);\n    cursor: pointer;\n    list-style: none;\n    user-select: none;\n    transition: background-color 0.25s ease;\n  }\n\n  .pts-section summary::-webkit-details-marker {\n    display: none;\n  }\n\n  .pts-section summary::marker {\n    content: \"\";\n  }\n\n  .pts-section summary:hover,\n  .pts-section details[open] \u003e summary {\n    background: var(--pts-soft);\n  }\n\n  .pts-section-no {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border-right: 1px solid var(--pts-line);\n    color: var(--pts-accent);\n    font-size: 11px;\n    font-weight: 850;\n    line-height: 1;\n    letter-spacing: 0.12em;\n    transition:\n      background-color 0.3s ease,\n      color 0.3s ease;\n  }\n\n  .pts-section details[open] .pts-section-no {\n    background: var(--pts-accent);\n    color: #ffffff;\n  }\n\n  .pts-section-title {\n    min-width: 0;\n    display: flex;\n    align-items: center;\n    padding: 18px 24px;\n    color: var(--pts-text);\n    font-size: clamp(14px, 2.1cqw, 18px);\n    font-weight: 750;\n    line-height: 1.4;\n  }\n\n  \/* =========================================================\n     HAMMER\n  ========================================================= *\/\n\n  .pts-section-toggle {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 64px;\n    border-left: 1px solid var(--pts-line);\n    background: var(--pts-surface);\n    overflow: hidden;\n    transition: background-color 0.25s ease;\n  }\n\n  .pts-section summary:hover .pts-section-toggle,\n  .pts-section details[open] .pts-section-toggle {\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-hammer {\n    position: relative;\n    display: block;\n    width: 26px;\n    height: 34px;\n    transform: rotate(0deg);\n    transform-origin: 50% 50%;\n    transition:\n      transform 0.35s cubic-bezier(0.4, 0, 0.2, 1);\n  }\n\n  .pts-hammer::before {\n    content: \"\";\n    position: absolute;\n    left: 50%;\n    top: 11px;\n    width: 5px;\n    height: 23px;\n    background: var(--pts-accent);\n    transform: translateX(-50%);\n  }\n\n  .pts-hammer::after {\n    content: \"\";\n    position: absolute;\n    top: 4px;\n    left: 50%;\n    width: 24px;\n    height: 9px;\n    background: var(--pts-accent);\n    transform: translateX(-50%);\n  }\n\n  .pts-hammer-neck {\n    position: absolute;\n    top: 9px;\n    left: 50%;\n    width: 9px;\n    height: 8px;\n    background: var(--pts-accent);\n    transform: translateX(-50%);\n  }\n\n  .pts-section details[open] .pts-hammer {\n    transform: rotate(90deg);\n  }\n\n  .pts-section summary:hover .pts-hammer {\n    transform: rotate(-7deg);\n  }\n\n  .pts-section details[open] summary:hover .pts-hammer {\n    transform: rotate(97deg);\n  }\n\n  \/* =========================================================\n     SECTION BODY\n  ========================================================= *\/\n\n  .pts-section-body {\n    display: grid;\n    grid-template-columns:\n      82px\n      minmax(0, 1fr);\n    width: 100%;\n    background: var(--pts-bg);\n  }\n\n  .pts-body-rail {\n    border-right: 1px solid var(--pts-line);\n    background:\n      repeating-linear-gradient(\n        to bottom,\n        transparent 0,\n        transparent 17px,\n        rgba(242, 101, 34, 0.07) 17px,\n        rgba(242, 101, 34, 0.07) 18px\n      );\n  }\n\n  .pts-body-content {\n    min-width: 0;\n    padding: clamp(22px, 4cqw, 42px);\n    color: var(--pts-muted);\n  }\n\n  .pts-copy {\n    width: 100%;\n    max-width: 950px;\n  }\n\n  .pts-copy p {\n    margin-bottom: 18px;\n  }\n\n  .pts-copy p:last-child {\n    margin-bottom: 0;\n  }\n\n  \/* =========================================================\n     FEATURES\n  ========================================================= *\/\n\n  .pts-feature-band {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    width: 100%;\n    margin-top: 28px;\n    border-top: 1px solid var(--pts-line);\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-surface);\n  }\n\n  .pts-feature {\n    position: relative;\n    min-width: 0;\n    min-height: 100px;\n    padding: 18px;\n    border-right: 1px solid var(--pts-line);\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    background: var(--pts-surface);\n    overflow: hidden;\n    transition:\n      background-color 0.25s ease,\n      padding-left 0.25s ease;\n  }\n\n  .pts-feature:last-child {\n    border-right: 0;\n  }\n\n  .pts-feature::before {\n    content: \"\";\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 3px;\n    height: 0;\n    background: var(--pts-accent);\n    transition: height 0.3s ease;\n  }\n\n  .pts-feature:hover {\n    padding-left: 23px;\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-feature:hover::before {\n    height: 100%;\n  }\n\n  .pts-feature-label {\n    color: var(--pts-muted);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n  }\n\n  .pts-feature-value {\n    margin-top: 17px;\n    color: var(--pts-text);\n    font-size: 13px;\n    font-weight: 750;\n    line-height: 1.45;\n  }\n\n  \/* =========================================================\n     SPECIFICATIONS\n  ========================================================= *\/\n\n  .pts-spec-list {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    width: 100%;\n    margin: 0;\n    padding: 0;\n    border-top: 1px solid var(--pts-line);\n    list-style: none;\n  }\n\n  .pts-spec-list li {\n    position: relative;\n    min-width: 0;\n    min-height: 84px;\n    padding: 17px 20px;\n    border-right: 1px solid var(--pts-line);\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-surface);\n    overflow: hidden;\n    transition:\n      background-color 0.22s ease,\n      padding-left 0.22s ease;\n  }\n\n  .pts-spec-list li:nth-child(2n) {\n    border-right: 0;\n  }\n\n  .pts-spec-list li::before {\n    content: \"\";\n    position: absolute;\n    left: 0;\n    top: 0;\n    width: 3px;\n    height: 0;\n    background: var(--pts-accent);\n    transition: height 0.25s ease;\n  }\n\n  .pts-spec-list li:hover {\n    padding-left: 25px;\n    background: var(--pts-soft);\n  }\n\n  .pts-spec-list li:hover::before {\n    height: 100%;\n  }\n\n  .pts-spec-list strong {\n    display: block;\n    margin-bottom: 6px;\n    color: var(--pts-text);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .pts-spec-list span {\n    display: block;\n    color: var(--pts-muted);\n    font-size: 13px;\n    line-height: 1.55;\n  }\n\n  \/* =========================================================\n     NOTE\n  ========================================================= *\/\n\n  .pts-note {\n    display: grid;\n    grid-template-columns:\n      46px\n      minmax(0, 1fr);\n    width: 100%;\n    margin-top: 20px;\n    border-top: 1px solid var(--pts-line);\n    border-bottom: 1px solid var(--pts-line);\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-note-icon {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    border-right: 1px solid var(--pts-line);\n    color: var(--pts-accent);\n    font-family: Georgia, serif;\n    font-size: 15px;\n    font-weight: 700;\n  }\n\n  .pts-note-copy {\n    min-width: 0;\n    padding: 14px 16px;\n    color: var(--pts-muted);\n    font-size: 12px;\n    line-height: 1.7;\n  }\n\n  .pts-note-copy strong {\n    color: var(--pts-text);\n  }\n\n  \/* =========================================================\n     WHOLESALE\n  ========================================================= *\/\n\n  .pts-wholesale-layout {\n    display: grid;\n    grid-template-columns:\n      minmax(0, 1.3fr)\n      minmax(230px, 0.7fr);\n    width: 100%;\n    margin-top: 28px;\n    border-top: 1px solid var(--pts-line);\n    border-bottom: 1px solid var(--pts-line);\n  }\n\n  .pts-wholesale-data {\n    min-width: 0;\n    background: var(--pts-surface);\n  }\n\n  .pts-wholesale-row {\n    display: grid;\n    grid-template-columns:\n      minmax(120px, 38%)\n      minmax(0, 1fr);\n    min-height: 54px;\n    border-bottom: 1px solid var(--pts-line);\n  }\n\n  .pts-wholesale-row:last-child {\n    border-bottom: 0;\n  }\n\n  .pts-wholesale-key {\n    display: flex;\n    align-items: center;\n    padding: 11px 15px;\n    border-right: 1px solid var(--pts-line);\n    background: var(--pts-soft);\n    color: var(--pts-muted);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n  }\n\n  .pts-wholesale-value {\n    min-width: 0;\n    display: flex;\n    align-items: center;\n    padding: 11px 16px;\n    background: var(--pts-surface);\n    color: var(--pts-text);\n    font-size: 13px;\n    font-weight: 700;\n    line-height: 1.5;\n    transition:\n      background-color 0.22s ease,\n      padding-left 0.22s ease;\n  }\n\n  .pts-wholesale-row:hover .pts-wholesale-value {\n    padding-left: 21px;\n    background: var(--pts-accent-soft);\n  }\n\n  .pts-wholesale-summary {\n    min-width: 0;\n    display: flex;\n    flex-direction: column;\n    justify-content: space-between;\n    padding: 28px;\n    background: #111111;\n    color: #ffffff;\n  }\n\n  .pts-summary-topline {\n    color: rgba(255, 255, 255, 0.64);\n    font-size: 9px;\n    font-weight: 800;\n    line-height: 1.4;\n    letter-spacing: 0.14em;\n    text-transform: uppercase;\n  }\n\n  .pts-summary-large {\n    margin: 30px 0;\n    color: #ffffff;\n    font-size: clamp(34px, 7cqw, 54px);\n    font-weight: 760;\n    line-height: 0.95;\n    letter-spacing: -0.05em;\n  }\n\n  .pts-summary-large::after {\n    content: \"\";\n    display: block;\n    width: 42px;\n    height: 3px;\n    margin-top: 18px;\n    background: var(--pts-accent);\n  }\n\n  .pts-summary-large small {\n    display: block;\n    margin-top: 11px;\n    color: rgba(255, 255, 255, 0.7);\n    font-size: 11px;\n    font-weight: 600;\n    line-height: 1.4;\n  }\n\n  .pts-summary-lines {\n    color: rgba(255, 255, 255, 0.8);\n    font-size: 12px;\n    line-height: 1.85;\n  }\n\n  .pts-summary-lines strong {\n    color: #ffffff;\n  }\n\n  .pts-orange {\n    color: var(--pts-accent) !important;\n  }\n\n  \/* =========================================================\n     TABLET\n  ========================================================= *\/\n\n  @container (max-width: 760px) {\n    .pts-hero-copy {\n      padding: 30px 24px;\n    }\n\n    .pts-product-title {\n      font-size: 34px;\n    }\n\n    .pts-intro {\n      font-size: 15px;\n    }\n\n    .pts-hero-aside {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .pts-stat {\n      border-bottom: 1px solid var(--pts-line);\n    }\n\n    .pts-stat:nth-child(2) {\n      border-right: 0;\n    }\n\n    .pts-stat:nth-child(3),\n    .pts-stat:nth-child(4) {\n      border-bottom: 0;\n    }\n\n    .pts-purchase-main {\n      grid-template-columns: 1fr 1fr;\n    }\n\n    .pts-purchase-total {\n      border-right: 0;\n    }\n\n    .pts-purchase-actions {\n      grid-column: 1 \/ -1;\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 14px;\n      border-top: 1px solid var(--pts-line);\n    }\n\n    .pts-section-index {\n      grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n\n    .pts-index-item:nth-child(2) {\n      border-right: 0;\n    }\n\n    .pts-index-item:nth-child(-n + 2) {\n      border-bottom: 1px solid var(--pts-line);\n    }\n\n    .pts-feature-band {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-feature {\n      min-height: auto;\n      border-right: 0;\n      border-bottom: 1px solid var(--pts-line);\n    }\n\n    .pts-feature:last-child {\n      border-bottom: 0;\n    }\n\n    .pts-wholesale-layout {\n      grid-template-columns: 1fr;\n    }\n  }\n\n  \/* =========================================================\n     MOBILE\n  ========================================================= *\/\n\n  @container (max-width: 540px) {\n    .pts-hero-copy {\n      padding: 26px 18px;\n    }\n\n    .pts-product-title {\n      margin-bottom: 18px !important;\n      font-size: 29px;\n      line-height: 1.1;\n    }\n\n    .pts-eyebrow {\n      margin-bottom: 16px;\n    }\n\n    .pts-intro {\n      font-size: 14px;\n      line-height: 1.8;\n    }\n\n    .pts-stat {\n      min-height: 108px;\n      padding: 16px;\n    }\n\n    .pts-stat-value {\n      margin-top: 17px;\n      font-size: 22px;\n    }\n\n    .pts-purchase-panel {\n      padding: 12px;\n    }\n\n    .pts-purchase-main {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-purchase-quantity,\n    .pts-purchase-total {\n      border-right: 0;\n      border-bottom: 1px solid var(--pts-line);\n    }\n\n    .pts-purchase-actions {\n      grid-column: auto;\n      display: flex;\n      flex-direction: column;\n      gap: 10px;\n      border-top: 0;\n    }\n\n    .pts-purchase-footer {\n      align-items: flex-start;\n      flex-direction: column;\n      gap: 4px;\n    }\n\n    .pts-purchase-status {\n      text-align: left;\n    }\n\n    .pts-section-index {\n      display: none;\n    }\n\n    .pts-section summary {\n      grid-template-columns:\n        52px\n        minmax(0, 1fr)\n        50px;\n      min-height: 72px;\n    }\n\n    .pts-section-no {\n      font-size: 9px;\n    }\n\n    .pts-section-title {\n      padding: 13px 14px;\n      font-size: 13px;\n    }\n\n    .pts-section-toggle {\n      min-width: 50px;\n    }\n\n    .pts-hammer {\n      transform: scale(0.86);\n    }\n\n    .pts-section details[open] .pts-hammer {\n      transform:\n        scale(0.86)\n        rotate(90deg);\n    }\n\n    .pts-section summary:hover .pts-hammer {\n      transform:\n        scale(0.86)\n        rotate(-7deg);\n    }\n\n    .pts-section details[open] summary:hover .pts-hammer {\n      transform:\n        scale(0.86)\n        rotate(97deg);\n    }\n\n    .pts-section-body {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-body-rail {\n      display: none;\n    }\n\n    .pts-body-content {\n      padding: 22px 14px 27px;\n    }\n\n    .pts-spec-list {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-spec-list li,\n    .pts-spec-list li:nth-child(2n) {\n      border-right: 0;\n    }\n\n    .pts-wholesale-row {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-wholesale-key {\n      padding: 11px 13px 3px;\n      border-right: 0;\n      background: var(--pts-surface);\n    }\n\n    .pts-wholesale-value {\n      padding: 3px 13px 13px;\n    }\n\n    .pts-wholesale-summary {\n      padding: 24px 19px;\n    }\n  }\n\n  @container (max-width: 360px) {\n    .pts-hero-aside {\n      grid-template-columns: 1fr;\n    }\n\n    .pts-stat {\n      border-right: 0;\n      border-bottom: 1px solid var(--pts-line);\n    }\n\n    .pts-stat:last-child {\n      border-bottom: 0;\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv class=\"product-trade-sheet\" id=\"pts-8x80mm-carabiner-snap-hooks-card\"\u003e\n\u003cinput type=\"hidden\" class=\"pts-current-variant\" value=\"{{ product.selected_or_first_available_variant.id }}\"\u003e \u003c!-- =======================================================\n       PRODUCT OVERVIEW\n  ======================================================== --\u003e\n\u003cdiv class=\"pts-hero\"\u003e\n\u003cdiv class=\"pts-hero-copy\"\u003e\n\u003cspan class=\"pts-eyebrow\"\u003e General-purpose snap hook assortment \u003c\/span\u003e\n\u003ch2 class=\"pts-product-title\"\u003e8 × 80mm Carabiner Snap Hooks – Bag of 40\u003c\/h2\u003e\n\u003cp class=\"pts-intro\"\u003ePractical 8 × 80mm carabiner snap hooks supplied as a 40-piece selling unit for general fastening, attachment and organisation tasks. The compact hook format is suitable for keeping within workshop, hardware, maintenance, storage and general-purpose accessory ranges where quick connection and removal are required. Each selling unit contains 40 matching snap hooks, making the product convenient for trade, workshop and bulk-use environments.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-hero-aside\"\u003e\n\u003cdiv class=\"pts-stat\"\u003e\n\u003cspan class=\"pts-stat-label\"\u003e Hook size \u003c\/span\u003e \u003cspan class=\"pts-stat-value\"\u003e 8 × 80mm \u003csmall\u003e Diameter × length \u003c\/small\u003e \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-stat\"\u003e\n\u003cspan class=\"pts-stat-label\"\u003e Unit price \u003c\/span\u003e \u003cspan class=\"pts-stat-value\"\u003e £24.00 \u003csmall\u003e Per 40-hook bag \u003c\/small\u003e \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-stat\"\u003e\n\u003cspan class=\"pts-stat-label\"\u003e Minimum order \u003c\/span\u003e \u003cspan class=\"pts-stat-value\"\u003e 1 box \u003csmall\u003e 24 bags \/ 960 hooks \u003c\/small\u003e \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-stat\"\u003e\n\u003cspan class=\"pts-stat-label\"\u003e MOQ total \u003c\/span\u003e \u003cspan class=\"pts-stat-value\"\u003e £576.00 \u003csmall\u003e 24 bags \/ 960 hooks \u003c\/small\u003e \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- =======================================================\n       PURCHASE\n  ========================================================= --\u003e\n\u003cdiv class=\"pts-purchase-panel\"\u003e\n\u003cdiv class=\"pts-purchase-card\"\u003e\n\u003cdiv class=\"pts-purchase-main\"\u003e\n\u003cdiv class=\"pts-purchase-quantity\"\u003e\n\u003cspan class=\"pts-purchase-label\"\u003e Boxes \u003c\/span\u003e\n\u003cdiv class=\"pts-quantity-selector\"\u003e\n\u003cbutton type=\"button\" class=\"pts-quantity-button pts-quantity-minus\"\u003e−\u003c\/button\u003e \u003cinput type=\"number\" class=\"pts-quantity-input\" value=\"1\" min=\"1\" step=\"1\" inputmode=\"numeric\"\u003e \u003cbutton type=\"button\" class=\"pts-quantity-button pts-quantity-plus\"\u003e+\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cspan class=\"pts-minimum-note\"\u003e 1 box = \u003cstrong\u003e24 selling units = 960 snap hooks\u003c\/strong\u003e \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-purchase-total\"\u003e\n\u003cspan class=\"pts-purchase-label\"\u003e Order total \u003c\/span\u003e \u003cspan class=\"pts-order-total-value\"\u003e £576.00 \u003c\/span\u003e \u003cspan class=\"pts-order-total-meta\"\u003e 1 box · 24 bags \/ 960 hooks × £24.00 \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-purchase-actions\"\u003e\n\u003cbutton type=\"button\" class=\"pts-buy-button pts-add-cart\"\u003e ADD BOX · 24 BAGS \u003c\/button\u003e \u003cbutton type=\"button\" class=\"pts-buy-button pts-buy-now\"\u003e BUY NOW · £576.00 \u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-purchase-footer\"\u003e\n\u003cspan class=\"pts-purchase-footer-text\"\u003e Minimum order: \u003cstrong\u003e1 box = 24 bags \/ 960 snap hooks\u003c\/strong\u003e · £24.00 per bag · £576.00 per box \u003c\/span\u003e \u003cspan class=\"pts-purchase-status\"\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- =======================================================\n       SECTION INDEX\n  ========================================================= --\u003e\n\u003cdiv class=\"pts-section-index\"\u003e\n\u003cdiv class=\"pts-index-item\"\u003e\n\u003cspan class=\"pts-index-number\"\u003e01\u003c\/span\u003e \u003cspan class=\"pts-index-label\"\u003e Quick attachment \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-index-item\"\u003e\n\u003cspan class=\"pts-index-number\"\u003e02\u003c\/span\u003e \u003cspan class=\"pts-index-label\"\u003e Size \u0026amp; format \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-index-item\"\u003e\n\u003cspan class=\"pts-index-number\"\u003e03\u003c\/span\u003e \u003cspan class=\"pts-index-label\"\u003e Use \u0026amp; care \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-index-item\"\u003e\n\u003cspan class=\"pts-index-number\"\u003e04\u003c\/span\u003e \u003cspan class=\"pts-index-label\"\u003e Wholesale supply \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- =======================================================\n       SECTIONS\n  ========================================================= --\u003e\n\u003cdiv class=\"pts-sections\"\u003e\n\u003c!-- SECTION 01 --\u003e\n\u003cdiv class=\"pts-section\"\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cspan class=\"pts-section-no\"\u003e01\u003c\/span\u003e \u003cspan class=\"pts-section-title\"\u003e Quick Attachment \u0026amp; General-Purpose Use \u003c\/span\u003e \u003cspan class=\"pts-section-toggle\"\u003e\u003cspan class=\"pts-hammer\"\u003e\u003cspan class=\"pts-hammer-neck\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"pts-section-body\"\u003e\n\u003cdiv class=\"pts-body-rail\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"pts-body-content\"\u003e\n\u003cdiv class=\"pts-copy\"\u003e\n\u003cp\u003eThe snap-hook format provides a convenient connection point for suitable ropes, chains, straps, accessories and general workshop items where fast manual attachment and removal are useful.\u003c\/p\u003e\n\u003cp\u003eSupplied in bags of 40, the product is particularly practical for trade counters, workshops, maintenance teams and general hardware ranges that require multiple matching hooks within a single selling unit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-feature-band\"\u003e\n\u003cdiv class=\"pts-feature\"\u003e\n\u003cspan class=\"pts-feature-label\"\u003e Hook format \u003c\/span\u003e \u003cspan class=\"pts-feature-value\"\u003e Carabiner \/ snap hook \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-feature\"\u003e\n\u003cspan class=\"pts-feature-label\"\u003e Nominal size \u003c\/span\u003e \u003cspan class=\"pts-feature-value\"\u003e 8 × 80mm \u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-feature\"\u003e\n\u003cspan class=\"pts-feature-label\"\u003e Selling unit \u003c\/span\u003e \u003cspan class=\"pts-feature-value\"\u003e Bag of 40 hooks \u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- SECTION 02 --\u003e\n\u003cdiv class=\"pts-section\"\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cspan class=\"pts-section-no\"\u003e02\u003c\/span\u003e \u003cspan class=\"pts-section-title\"\u003e Product Format \u0026amp; General Applications \u003c\/span\u003e \u003cspan class=\"pts-section-toggle\"\u003e\u003cspan class=\"pts-hammer\"\u003e\u003cspan class=\"pts-hammer-neck\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"pts-section-body\"\u003e\n\u003cdiv class=\"pts-body-rail\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"pts-body-content\"\u003e\n\u003cul class=\"pts-spec-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e Product type \u003c\/strong\u003e\u003cspan\u003e General-purpose carabiner snap hooks. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Nominal diameter \u003c\/strong\u003e\u003cspan\u003e 8mm. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Overall length \u003c\/strong\u003e\u003cspan\u003e 80mm. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Selling unit \u003c\/strong\u003e\u003cspan\u003e 40 snap hooks per bag. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Connection format \u003c\/strong\u003e\u003cspan\u003e Quick-opening snap-hook style for suitable attachment tasks. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Workshop use \u003c\/strong\u003e\u003cspan\u003e Suitable for appropriate general workshop and organisation applications. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Maintenance use \u003c\/strong\u003e\u003cspan\u003e Practical for suitable fastening and accessory-management tasks. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Storage use \u003c\/strong\u003e\u003cspan\u003e Useful for organising compatible ropes, straps, chains and accessories. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Operation \u003c\/strong\u003e\u003cspan\u003e Fully manual connection and release. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Bulk format \u003c\/strong\u003e\u003cspan\u003e 40 matching hooks supplied within each selling unit. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"pts-note\"\u003e\n\u003cdiv class=\"pts-note-icon\"\u003ei\u003c\/div\u003e\n\u003cdiv class=\"pts-note-copy\"\u003e\n\u003cstrong\u003e Specification note: \u003c\/strong\u003e The available product information confirms the 8 × 80mm size and bag quantity of 40. Exact material grade, surface finish, gate opening, working load and breaking load are not stated for this listing, so unsupported technical figures are not included.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- SECTION 03 --\u003e\n\u003cdiv class=\"pts-section\"\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cspan class=\"pts-section-no\"\u003e03\u003c\/span\u003e \u003cspan class=\"pts-section-title\"\u003e Use, Handling \u0026amp; Product Care \u003c\/span\u003e \u003cspan class=\"pts-section-toggle\"\u003e\u003cspan class=\"pts-hammer\"\u003e\u003cspan class=\"pts-hammer-neck\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"pts-section-body\"\u003e\n\u003cdiv class=\"pts-body-rail\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"pts-body-content\"\u003e\n\u003cul class=\"pts-spec-list\"\u003e\n\u003cli\u003e\n\u003cstrong\u003e Before use \u003c\/strong\u003e\u003cspan\u003e Inspect each hook for visible damage, deformation, corrosion or gate problems before use. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Attachment \u003c\/strong\u003e\u003cspan\u003e Ensure the hook is fully engaged with the intended compatible connection point. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Gate check \u003c\/strong\u003e\u003cspan\u003e Confirm the opening mechanism returns to the closed position after attachment. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Application \u003c\/strong\u003e\u003cspan\u003e Use only for suitable general-purpose fastening and attachment tasks. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Loading \u003c\/strong\u003e\u003cspan\u003e Do not assume a lifting or safety load rating unless separately confirmed for the specific product. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Environment \u003c\/strong\u003e\u003cspan\u003e Select an appropriate hook material and finish for the intended environment and exposure conditions. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Cleaning \u003c\/strong\u003e\u003cspan\u003e Remove dirt and debris after use and keep the opening mechanism free-moving. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e Storage \u003c\/strong\u003e\u003cspan\u003e Store unused hooks in a clean, dry location away from unnecessary moisture or contamination. \u003c\/span\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cdiv class=\"pts-note\"\u003e\n\u003cdiv class=\"pts-note-icon\"\u003e!\u003c\/div\u003e\n\u003cdiv class=\"pts-note-copy\"\u003e\n\u003cstrong\u003e Safety note: \u003c\/strong\u003e No certified working load or lifting rating is stated for this product listing. Do not use these hooks for lifting people, fall protection or other safety-critical applications unless appropriate certification and load data are separately verified.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c!-- SECTION 04 --\u003e\n\u003cdiv class=\"pts-section\"\u003e\n\u003cdetails\u003e\n\u003csummary\u003e\u003cspan class=\"pts-section-no\"\u003e04\u003c\/span\u003e \u003cspan class=\"pts-section-title\"\u003e Packaging \u0026amp; Wholesale Supply \u003c\/span\u003e \u003cspan class=\"pts-section-toggle\"\u003e\u003cspan class=\"pts-hammer\"\u003e\u003cspan class=\"pts-hammer-neck\"\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"pts-section-body\"\u003e\n\u003cdiv class=\"pts-body-rail\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"pts-body-content\"\u003e\n\u003cdiv class=\"pts-copy\"\u003e\n\u003cp\u003eOne Shopify selling unit is one complete bag of 40 individual 8 × 80mm carabiner snap hooks. Each selling unit is priced at £24.00. One wholesale box contains 24 complete bags, equivalent to 960 individual snap hooks, giving a total wholesale box value of £576.00.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-layout\"\u003e\n\u003cdiv class=\"pts-wholesale-data\"\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eProduct\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e8 × 80mm carabiner snap hooks\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eNominal size\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e8mm × 80mm\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eSelling unit\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e1 bag \/ 40 snap hooks\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eTotal hooks per box\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e960 individual snap hooks\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eUnit price\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e£24.00\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eBox quantity\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e24 complete bags\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eMinimum order\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e1 wholesale box\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-row\"\u003e\n\u003cdiv class=\"pts-wholesale-key\"\u003eBox total\u003c\/div\u003e\n\u003cdiv class=\"pts-wholesale-value\"\u003e£576.00\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003caside class=\"pts-wholesale-summary\"\u003e\n\u003cdiv\u003e\n\u003cspan class=\"pts-summary-topline\"\u003e Wholesale box \u003c\/span\u003e\n\u003cdiv class=\"pts-summary-large\"\u003e£576.00\u003csmall\u003e 24 bags \/ 960 snap hooks \u003c\/small\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-summary-lines\"\u003e\n\u003cstrong\u003e £24.00 \u003c\/strong\u003e per complete bag\u003cbr\u003e\u003cstrong\u003e 40 hooks \u003c\/strong\u003e per bag\u003cbr\u003e\u003cstrong\u003e 24 bags \u003c\/strong\u003e per wholesale box\u003cbr\u003e\u003cstrong class=\"pts-orange\"\u003e £576.00 \u003c\/strong\u003e per wholesale box\u003c\/div\u003e\n\u003c\/aside\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"pts-note\"\u003e\n\u003cdiv class=\"pts-note-icon\"\u003ei\u003c\/div\u003e\n\u003cdiv class=\"pts-note-copy\"\u003e\n\u003cstrong\u003e Wholesale calculation: \u003c\/strong\u003e 1 box = 24 complete bags × £24.00 per bag = £576.00. Each bag contains 40 snap hooks, so one wholesale box contains 960 individual hooks.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":56820188315988,"sku":null,"price":24.0,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1063\/3117\/7300\/files\/5_43.png?v=1786964293","url":"https:\/\/buildpro-wholesale.com\/products\/8-80mm-carabiner-snap-hooks-bag-of-40","provider":"BUILDPRO WHOLESALE","version":"1.0","type":"link"}