October Prime Day gaming keyboard deals
Prime Day is back, people. Showing up under the thinly veiled disguise of Big Deal Days, you can be sure there will be a bunch of October Prime Day gaming keyboard deals as we go through the next week or so. Officially it kicks off on Tuesday next week, but every retailer will have competing events and some have even k...
Prime Day is back, people. Showing up under the thinly veiled disguise of Big Deal Days, you can be sure there will be a bunch of October Prime Day gaming keyboard deals as we go through the next week or so. Officially it kicks off on Tuesday next week, but every retailer will have competing events and some have even kicked off already.
👉ALL of Amazon's keyboard deals👈
👉OUR favorite Prime Day PC gaming deals👈
We're constantly reviewing and picking out the best gaming keyboards for our guides, so make sure to check in with us throughout the year to find out which are the right ones for you. In the meantime, though, there are still plenty of tempting options below.
When is October Prime Day 2026?
Amazon's October Prime Day, AKA Big Deal Days, starts on October 6, and runs though until the end of October 7. The deals are rolling in before then, though, and will be spread out across various retailers following Amazon's lead.
Where to find the best Prime Day gaming keyboard deals
- Amazon: All the gaming keyboards you could ever want
- Walmart: Quality gaming keyboards, superb savings
- Best Buy: Big name keyboards with big value discounts
- Newegg: Big savings on big brand gaming keyboards
Prime Day gaming keyboard deals
x NaughShark NS68 | Wired: was $49.99 now $39.09
An 8 KHz polling rate, Hall effect switches, rapid trigger, and nice double-shot PBT keycaps. The Gamakay x NaughShark NS68 is noticeably a cheaper keyboard in feel, but those internals truly are phenomenal.
Key specs: Wired | 8 KHz | Hall effect View Deal
Reclusa X Mini 65% | Wired: $49.99
Okay, this one's not actually on sale, but we reviewed this new Razer budget keyboard very favourably when it launched recently that it's worth highlighting what a good keyboard it is. It doesn't have the competitive gaming features of the Naughshark above, but if you just want a good keyboard for typing and non-competitive action, the build quality on the Reclusa is hard to beat at this price.
Key specs: Wired USB-A to USB-C | 1,000 Hz | RGB lighting | 65% size View Deal
Huntsman Mini | Wired: was $129.99 now $69
A teeny-tiny keyboard with impressive credentials. You can customize the lighting to your heart's content with Razer's Chroma RGB lighting, but the headline feature here is the inclusion of optical-mechanical switches. It's also got PBT keys and Razer Hypershift for all your favorite macros.
Key specs: Tenkeyless | Razer optomechanical switch (clicky or linear) | Chroma RGB lighting
Price check: Best Buy $69 (black model)View Deal
G515 Wireless TKL: was $159.99 now $95.95
This compact keyboard is especially affordable in this light purple colorway. We reviewed the wired Rapid version with magnetic switches a while back and thought it just okay for the money, but this is the wireless version with standard keys for much, much less cash.
Key specs: Wireless | Low-profile | PBT keycapsView Deal
ROG Strix Scope II NX | Wired: was $129.99 now $104.99
It's my daily driver and the optical sound-dampened pre-lubed keyboard I compare every keyboard against. With ROG NX linear mechanical switches, an impressive build quality, combined with slick styling, lovely RGB lighting and PBT doubleshot key caps, it's an absolute king at the best of times.
Key specs: Full-size | ROG RX pre-lubed linear optical | PBT doubleshot | per-key RGB | sound-dampened | wired USB-CView Deal
G Pro | Wired: was $119.99 now $109.99
This Logitech G Pro gives you all the functionality with less of the fuss. It comes with a choice of key switches, a detachable Micro USB cable for easy portability, 3-step angle adjustment and a lot of customization options in the G Hub software. Those backlit keys are on the subtle side of RGB lighting, and the Logitech comes off as a class act for less at this price.
Key specs: Tenkeyless | Mechanical | Lightsync RGB backlit keys
Price check: Best Buy $109.99View Deal
ROG Strix Scope II 96 RX | Wireless: was $179.99 now $159.99
This is one of the best keyboards going and right now it's at a cracking price. You're getting excellent typing feel, stellar gaming performance, sound dampening that actually works, and a build quality that stands well above most of the competition. The RX version is optical, too, though non-adjustable.
Key specs: 96% | Wireless | sound dampeningView Deal
Apex Pro Gen 3 | Wired: was $239.99 now $186.99
It's quite a lot of cash for a keyboard, but it shows in not only the tech underneath the keys (like some impressive switches) but also the build quality and extra quality-of-life features. If you're looking for a rapid trigger keyboard to cut fractions off your reaction times, and like the idea of an extra little screen to display in-game information, this is an excellent choice, especially with a tidy discount.
Key specs: OmniPoint 3.0 HyperMagnetic Switches | Wired | Rapid trigger
Price check: Best Buy $228.99View Deal
ROG Azoth Extreme | Wireless: was $499.99 now $399.99
The Asus ROG Azoth Extreme Wireless is still a pricey 'ol keeb even with a discount. We still liked it a lot in our review, though, and that's for good reason. It's beautifully constructed, with a super typing feel and useful media controls.
Key specs: 75% | ROG NX Snow linear switches | Aluminium chassis | OLED screen
Price check: Best Buy $499.99View Deal
Check out all our latest deals in any category:
fc-author-commerce-widget[data-fcaw-version="1"] { display: block !important; width: 100% !important; min-width: 0 !important; max-width: none !important; isolation: isolate !important; contain: style !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"]{ width: min( 1200px, var(--fcaw-viewport-width, 100vw) ) !important; max-width: 1200px !important; margin-left: var( --fcaw-full-bleed-offset, calc(50% - min(600px, 50vw)) ) !important; margin-right: 0 !important; position: relative !important;}fc-author-commerce-widget[data-fcaw-version="1"][data-fcaw-full-bleed="true"] #tg-df-spreadsheet-filters { width: min( 1500px, var(--fcaw-viewport-width, 100vw) ) !important; max-width: 1500px !important; margin-left: calc( ( 100% - min(1500px, var(--fcaw-viewport-width, 100vw)) ) / 2 ) !important; margin-right: 0 !important;}fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::before,fc-author-commerce-widget[data-fcaw-version="1"] .fcaw-v1-fallback *::after { box-sizing: border-box;} /* --- Shadow DOM Base Reset --- */ *, *::before, *::after { box-sizing: border-box; } img, picture, svg, video { max-width: 100%; height: auto; display: block; } /* 1. Scoped CSS for Tom's Guide Deals Widget All classes are prefixed with 'tg-df-' to prevent CMS style leakage. */ .tg-df-container { user-select: text; -webkit-user-select: text; container-type: inline-size; container-name: tg-df; --tg-df-text: #222222; --tg-df-text-muted: #555555; --tg-df-bg: #ffffff; --tg-df-bg-secondary: #f4f4f4; --tg-df-border: #e2e8f0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--tg-df-text); background-color: transparent; width: 100%; max-width: 1200px; margin: 0 auto; padding-bottom: 24px; } .tg-df-container *, .tg-df-container *::before, .tg-df-container *::after { margin: 0; padding: 0; box-sizing: border-box; } .tg-df-widget-host[data-tg-df-full-bleed="true"] { width: min( 1200px, var(--fcaw-viewport-width, 100vw) ) !important; max-width: 1200px !important; margin-left: calc( ( 100% - min(1200px, var(--fcaw-viewport-width, 100vw)) ) / 2 ) !important; margin-right: 0 !important; position: relative !important; } .tg-df-widget-host[data-tg-df-full-bleed="true"] #tg-df-spreadsheet-filters { width: min( 1500px, var(--fcaw-viewport-width, 100vw) ) !important; max-width: 1500px !important; margin-left: calc( ( 100% - min(1500px, var(--fcaw-viewport-width, 100vw)) ) / 2 ) !important; margin-right: 0 !important; } .tg-df-container img { border: none; margin: 0; padding: 0; } .tg-df-container a { text-decoration: none; color: inherit; } /* 2. Search & Filter Bar */ .tg-df-controls { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-bottom: 32px; width: 100%; position: relative; z-index: 20; } .tg-df-top-bar { display: flex; width: 100%; max-width: 760px; gap: 12px; margin: 0 auto; align-items: center; } .tg-df-search-wrapper { position: relative; flex: 1; width: 100%; box-shadow: 0 8px 24px rgba(0,0,0,0.06); border-radius: 40px; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); z-index: 100; } .tg-df-autocomplete-dropdown { position: absolute; top: calc(100% + 4px); left: 0; right: 0; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); max-height: 300px; overflow-y: auto; z-index: 200; display: none; } .tg-df-autocomplete-dropdown.active { display: block; } .tg-df-autocomplete-item { padding: 12px 24px; cursor: pointer; font-size: 14px; color: var(--tg-df-text); transition: background 0.1s ease; } .tg-df-autocomplete-item:hover { background: var(--tg-df-bg-secondary); } .tg-df-search-input { width: 100%; padding: 16px 64px 16px 24px; font-size: 16px; border: 2px solid transparent; border-radius: 40px; outline: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; color: var(--tg-df-text); background: transparent; } .tg-df-search-input:focus { border-color: transparent; box-shadow: 0 0 0 3px rgba(0, 108, 196, 0.15); } .tg-df-search-input::placeholder { color: #999999; } .tg-df-search-btn { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: #222; border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.2s ease; } .tg-df-search-btn:hover { background: #000; } .tg-df-search-icon { width: 16px; height: 16px; fill: #fff; } .tg-df-settings-wrapper { position: relative; } .tg-df-settings-btn { width: 48px; height: 48px; border-radius: 50%; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); box-shadow: 0 4px 12px rgba(0,0,0,0.04); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.2s ease; color: var(--tg-df-text-muted); flex-shrink: 0; } .tg-df-settings-btn:hover { background: var(--tg-df-bg-secondary); border-color: #0000ff; color: var(--tg-df-text); } .tg-df-settings-btn svg { width: 24px; height: 24px; fill: currentColor; } .tg-df-settings-dropdown { position: absolute; top: calc(100% + 8px); right: 0; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); border-radius: 12px; box-shadow: 0 8px 32px rgba(0,0,0,0.12); width: 280px; padding: 20px; display: none; z-index: 100; flex-direction: column; gap: 20px; } .tg-df-settings-dropdown.active { display: flex; } .tg-df-settings-dropdown-backdrop { display: none; position: fixed; inset: 0; z-index: 99; } .tg-df-settings-dropdown-backdrop.active { display: block; } .tg-df-setting-item { display: flex; flex-direction: column; gap: 10px; } .tg-df-setting-label { font-size: 11px; font-weight: 700; color: var(--tg-df-text-muted); text-transform: uppercase; letter-spacing: 0.5px; } .tg-df-region-select { padding: 10px 12px; border-radius: 8px; border: 1px solid var(--tg-df-border); font-size: 15px; outline: none; background: var(--tg-df-bg-secondary); color: var(--tg-df-text); cursor: pointer; width: 100%; } .tg-df-toggle { position: relative; display: inline-block; width: 44px; height: 24px; flex-shrink: 0; } .tg-df-toggle input { opacity: 0; width: 0; height: 0; } .tg-df-slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; transition: .2s; border-radius: 24px; } .tg-df-slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .2s; border-radius: 50%; } .tg-df-toggle input:checked + .tg-df-slider { background-color: var(--tg-df-blue); } .tg-df-toggle input:checked + .tg-df-slider:before { transform: translateX(20px); } .tg-df-dl-row { flex-direction: row; align-items: center; justify-content: space-between; } .tg-df-dl-row-text { font-size: 14px; font-weight: 600; color: var(--tg-df-text); } .tg-df-dl-row-subtext { font-size: 12px; font-weight: 400; line-height: 1.3; color: var(--tg-df-text-muted); margin-top: 4px; display: block; } .tg-df-filters-container { position: relative; width: 100%; max-width: 42rem; } .tg-df-scroll-btn { display: none; position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; background: white; border: 1px solid var(--tg-df-border); border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; z-index: 10; box-shadow: 0 2px 8px rgba(0,0,0,0.1); color: var(--tg-df-text-primary); padding: 0; } .tg-df-scroll-btn svg { width: 16px; height: 16px; } .tg-df-scroll-btn:hover { background: #f4f4f4; } .tg-df-scroll-btn.left { left: 0px; } .tg-df-scroll-btn.right { right: 0px; } .tg-df-filters { display: flex; justify-content: center; width: 100%; gap: 12px; margin: 0 auto; max-width: 42rem; } .tg-df-sort-wrapper { position: relative; display: flex; align-items: center; width: 100%; max-width: 280px; } .tg-df-sort-icon { position: absolute; left: 14px; width: 14px; height: 14px; fill: var(--tg-df-text-muted); pointer-events: none; } .tg-df-sort-select, .tg-df-filter-select { width: 100%; padding: 10px 36px 10px 38px; font-size: 14px; border: 1px solid var(--tg-df-border); border-radius: 100px; outline: none; appearance: none; background-color: var(--tg-df-bg-secondary); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23555555' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; color: var(--tg-df-text); cursor: pointer; font-weight: 500; transition: all 0.2s ease; } .tg-df-sort-select:hover, .tg-df-filter-select:hover { background-color: #e2e8f0; } .tg-df-multiselect-container { position: relative; } .tg-df-scroll-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; background: white; border: 1px solid var(--tg-df-border); border-radius: 50%; align-items: center; justify-content: center; cursor: pointer; z-index: 10; box-shadow: 0 2px 8px rgba(0,0,0,0.1); color: var(--tg-df-text-primary); padding: 0; } .tg-df-scroll-btn svg { width: 16px; height: 16px; } .tg-df-scroll-btn:hover { background: #f4f4f4; } .tg-df-scroll-btn.left { left: 4px; } .tg-df-scroll-btn.right { right: 4px; } @container tg-df (max-width: 768px) { .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; } .tg-df-filters-container { position: relative; width: 100%; max-width: 42rem; margin: 0 auto; } .tg-df-filters { justify-content: center; width: 100%; margin: 0 auto; margin-bottom: -320px; padding: 0 0 320px 0; display: flex; flex-wrap: nowrap; gap: 8px; overflow-x: auto; overflow-y: hidden; pointer-events: none; scrollbar-width: none; -webkit-overflow-scrolling: touch; } .tg-df-filters::-webkit-scrollbar { display: none; } .tg-df-sort-wrapper { pointer-events: auto; flex: 0 0 auto; width: 175px; min-width: 175px; } } .tg-df-multiselect-trigger { display: block; background: #fff; user-select: none; width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } .tg-df-multiselect-dropdown { display: none; position: absolute; top: calc(100% + 4px); left: 0; width: 100%; min-width: 220px; max-height: 300px; overflow-y: auto; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); z-index: 100; padding: 8px 0; } .tg-df-multiselect-dropdown.active { display: block; } .tg-df-ms-option { padding: 8px 16px; display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; } .tg-df-ms-option:hover { background-color: var(--tg-df-bg-secondary); } .tg-df-ms-option input { cursor: pointer; accent-color: #1f69ff; } .tg-df-sort-select:focus, .tg-df-filter-select:focus { border-color: #0000ff; box-shadow: 0 0 0 3px rgba(0, 0, 255, 0.2); background-color: var(--tg-df-bg); } /* 3. Deal Grid Layout */ .tg-df-grid.tg-df-grid-auto { padding-top: 24px; } .tg-df-grid, .tg-df-grid.layout-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 10px; } .tg-df-grid.layout-row { grid-template-columns: 1fr; gap: 16px; } .tg-df-grid.layout-row .tg-df-card { flex-direction: row; align-items: stretch; height: auto; box-shadow: none; border-bottom: 1px solid var(--tg-df-border); } .tg-df-grid.layout-row .tg-df-card:hover { box-shadow: none; } .tg-df-grid.layout-row .tg-df-card-image-box { width: 140px; min-width: 140px; aspect-ratio: 3/4; border-right: none; padding: 16px 16px 16px 32px; } .tg-df-grid.layout-row .tg-df-card-body { padding: 16px; justify-content: space-between; } .tg-df-grid.layout-row .tg-df-card-title { font-size: 15px; margin-bottom: 16px; } .tg-df-grid.layout-row .tg-df-card-stars { margin-bottom: 8px; } .tg-df-grid.layout-row .tg-df-card-footer { flex-direction: column; align-items: flex-start; gap: 0; } .tg-df-grid.layout-row .tg-df-card-merchant-pill { margin-bottom: 4px; } .tg-df-grid.layout-row .tg-df-card-price-group { margin-bottom: 8px; } .tg-df-grid.layout-row .tg-df-price-group { width: auto; } .tg-df-grid.layout-row .tg-df-card-cta { width: calc(100% + 32px); max-width: none; padding: 10px 24px; font-size: 13px; flex-shrink: 0; text-align: center; justify-content: center; margin: 0 -16px -16px -16px; } /* 4. Deal Card Design */ .tg-df-card { position: relative; display: flex; flex-direction: column; background-color: #ffffff; border-radius: 0; overflow: hidden; transition: transform 0.2s ease, box-shadow 0.2s ease; text-decoration: none; color: inherit; height: 100%; box-shadow: 0 0 16px rgba(0, 0, 0, 0.08); border: 1px solid var(--tg-df-border); } .tg-df-card:hover { box-shadow: 0 0 24px rgba(0, 0, 0, 0.12); } .tg-df-card-image-box { width: 100%; aspect-ratio: 3/4; background-color: #f8f8f8; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; padding: 32px; flex: 0 0 auto; } .tg-df-card-image { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; /* Helps white background images blend into secondary bg */ transition: transform 0.3s ease; } .tg-df-card:hover .tg-df-card-image { transform: scale(1.05); /* Zoom in on hover */ } .tg-df-card-discount-badge { position: absolute; top: 12px; left: 12px; background: #dc2626; /* Red */ color: #ffffff; padding: 6px 8px; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.5px; border-radius: 0; z-index: 10; } .tg-df-buying-guide-badge { left: auto; right: 12px; max-width: calc(100% - 24px); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .tg-df-card-merchant-pill { display: block; padding: 0; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; border-radius: 0; color: var(--tg-df-text-muted); margin-bottom: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .tg-df-card-body { padding: 16px; display: flex; flex-direction: column; flex-grow: 1; min-width: 0; } .tg-df-card-badges { position: absolute; bottom: 8px; left: 8px; display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 0; z-index: 10; } .tg-df-tag { display: inline-flex; align-items: center; padding: 4px 6px; font-size: 11px; font-weight: 700; text-transform: uppercase; border-radius: 4px; gap: 4px; } .tg-df-tag-prime { background-color: #00A8E1; color: #fff; } .tg-df-tag-coupons { background-color: #f1f5f9; color: #334155; border: 1px solid #cbd5e1; cursor: pointer; transition: background-color 0.2s; } .tg-df-tag-coupons:hover { background-color: #e2e8f0; } .tg-df-tag-outline { background-color: #f1f5f9; color: #334155; border: 1px solid #cbd5e1; cursor: pointer; transition: background-color 0.2s; } .tg-df-tag-outline:hover { background-color: #e2e8f0; } @keyframes tg-df-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .tg-df-coupon-spinner { border: 2px solid #e2e8f0; border-top: 2px solid #3b82f6; border-radius: 50%; width: 14px; height: 14px; animation: tg-df-spin 1s linear infinite; margin: 4px 8px; display: inline-block; } /* Vouchers Modal */ .tg-df-modal-backdrop { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 10000; display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s; } .tg-df-modal-backdrop.active { opacity: 1; pointer-events: auto; } .tg-df-modal { background: #fff; border-radius: 12px; width: 90%; max-width: 400px; max-height: 80vh; display: flex; flex-direction: column; box-shadow: 0 10px 40px rgba(0,0,0,0.2); transform: translateY(20px); transition: transform 0.3s; } .tg-df-modal-backdrop.active .tg-df-modal { transform: translateY(0); } .tg-df-modal-header { padding: 16px; border-bottom: 1px solid #e2e8f0; display: flex; align-items: center; justify-content: space-between; } .tg-df-modal-title { font-size: 16px; font-weight: 600; margin: 0; } .tg-df-modal-close { background: none; border: none; cursor: pointer; padding: 4px; color: #64748b; } .tg-df-modal-body { padding: 16px; overflow-y: auto; } .tg-df-voucher-item { padding: 12px; border: 1px dashed #cbd5e1; border-radius: 8px; margin-bottom: 10px; background: #f8fafc; display: flex; align-items: center; gap: 12px; text-decoration: none; color: inherit; transition: background-color 0.2s, border-color 0.2s; } .tg-df-voucher-item:hover { background: #f1f5f9; border-color: #94a3b8; } .tg-df-voucher-item:last-child { margin-bottom: 0; } .tg-df-voucher-logo { width: 48px; height: 48px; object-fit: contain; border-radius: 4px; background: #fff; border: 1px solid #e2e8f0; flex-shrink: 0; } .tg-df-voucher-content { flex: 1; min-width: 0; } .tg-df-voucher-title { font-size: 14px; font-weight: 600; margin: 0 0 4px 0; line-height: 1.3; color: #0f172a; } .tg-df-voucher-expiry { font-size: 12px; color: #64748b; display: flex; align-items: center; gap: 4px; margin-top: 6px; } .tg-df-voucher-code { display: inline-flex; align-items: center; background: #f1f5f9; border: 1px dashed #cbd5e1; padding: 6px 10px; font-family: monospace; font-weight: 700; font-size: 14px; color: #0f172a; border-radius: 4px; margin-top: 8px; cursor: pointer; transition: all 0.2s ease; } .tg-df-voucher-code:hover { background: #e2e8f0; border-color: #94a3b8; } .tg-df-voucher-code.copied { background: #ecfdf5; border-color: #10b981; color: #10b981; } .tg-df-voucher-cta { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: #2563eb; text-decoration: none; } .tg-df-card-title { font-size: 15px; font-weight: 400; line-height: 1.4; margin: 0 0 12px 0; color: var(--tg-df-text); } .tg-df-card-footer { margin-top: auto; display: flex; flex-direction: column; width: 100%; } .tg-df-card-price-group { display: flex; flex-direction: row; align-items: center; gap: 8px; margin-bottom: 12px; } .tg-df-card-price { font-size: 16px; font-weight: 700; color: #dc2626; /* Red price */ line-height: 1; } .tg-df-card-msrp { font-size: 13px; color: var(--tg-df-text-muted); text-decoration: line-through; } .tg-df-card-listings { margin: 0 0 12px; } .tg-df-card-listings-title { display: block; color: var(--tg-df-text-muted); font-size: 11px; font-weight: 700; letter-spacing: 0.45px; line-height: 1.2; margin-bottom: 4px; text-transform: uppercase; } .tg-df-card-listings-links { border-top: 1px solid var(--tg-df-border); } .tg-df-container .tg-df-card-listing-link { align-items: center; border-bottom: 1px solid var(--tg-df-border); box-sizing: border-box; color: var(--tg-df-blue); display: flex; font-size: 13px; font-weight: 700; justify-content: space-between; line-height: 1.2; min-height: 34px; padding: 5px 2px; text-decoration: none; } .tg-df-container .tg-df-card-listing-link::after { content: '↗'; font-size: 14px; font-weight: 600; margin-left: 8px; } .tg-df-container .tg-df-card-listing-link:hover, .tg-df-container .tg-df-card-listing-link:focus-visible { background: #f8fafc; color: var(--tg-df-blue); outline: 2px solid var(--tg-df-blue); outline-offset: -2px; text-decoration: none; } .tg-df-container .tg-df-card-cta { display: flex; align-items: center; justify-content: center; width: calc(100% + 32px); max-width: none; box-sizing: border-box; background-color: var(--tg-df-blue); color: #ffffff; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; padding: 12px 16px; border-radius: 0; border: none; cursor: pointer; transition: background-color 0.2s ease; margin: 0 -16px -16px -16px; } .tg-df-card:hover .tg-df-card-cta, .tg-df-card-cta:hover { filter: brightness(0.85); } /* 5. State & Skeleton Styles */ .tg-df-message { grid-column: 1 / -1; text-align: center; padding: 48px 24px; color: var(--tg-df-text-muted); font-size: 16px; background: var(--tg-df-bg); border: 1px solid var(--tg-df-border); border-radius: 8px; } @keyframes tg-df-shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } } .tg-df-skeleton { background: linear-gradient(90deg, var(--tg-df-bg-secondary) 25%, #e2e8f0 50%, var(--tg-df-bg-secondary) 75%); background-size: 200% 100%; animation: tg-df-shimmer 1.5s infinite; border-radius: 4px; } .tg-df-skeleton-img { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } .tg-df-skeleton-text { height: 16px; margin-bottom: 8px; width: 100%; } .tg-df-skeleton-text.short { width: 40%; } .tg-df-skeleton-text.title { height: 20px; margin-bottom: 16px; } /* Editor Floating Bar & Elements */ .tg-df-editor-bar { position: sticky; top: 120px; z-index: 1000; background: #111827; color: #fff; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; box-shadow: 0 4px 12px rgba(0,0,0,0.15); } .tg-df-editor-bar-text { font-weight: 600; font-size: 14px; } .tg-df-editor-copy-btn { background: #10b981; color: #fff; padding: 6px 16px; border: none; border-radius: 4px; font-weight: 600; cursor: pointer; display: flex; align-items: center; font-size: 13px; } .tg-df-editor-copy-btn:hover { background: #059669; } .tg-df-deal-checkbox { position: absolute; top: 12px; right: 12px; z-index: 10; width: 20px; height: 20px; cursor: pointer; pointer-events: auto; } /* Optional mobile 2x2 filter grid */ .tg-df-mobile-2x2-container { display: none; width: 100%; margin: 0 0 16px 0; position: relative; z-index: 30; } .tg-df-mobile-2x2-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); width: 100%; border: 1px solid var(--tg-df-border, #e2e8f0); background: var(--tg-df-bg, #ffffff); } .tg-df-container .tg-df-mobile-grid-cell { appearance: none; display: flex; align-items: center; justify-content: space-between; min-width: 0; padding: 12px 14px; font-family: inherit; font-size: 11px; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: 0.5px; text-align: left; color: var(--tg-df-text-muted, #64748b); background: var(--tg-df-bg, #ffffff); border: 0; border-radius: 0; cursor: pointer; box-shadow: none; } .tg-df-mobile-grid-cell > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .tg-df-mobile-grid-cell > svg { flex: 0 0 auto; margin-left: 8px; transition: transform 0.15s ease; } .tg-df-mobile-grid-cell > svg.is-open { transform: rotate(180deg); } .tg-df-mobile-grid-cell { border-bottom: 1px solid var(--tg-df-border, #e2e8f0); } .tg-df-mobile-grid-cell:nth-child(odd) { border-right: 1px solid var(--tg-df-border, #e2e8f0); } .tg-df-mobile-2x2-grid--even .tg-df-mobile-grid-cell:nth-last-child(-n + 2) { border-bottom: 0; } .tg-df-mobile-2x2-grid--odd .tg-df-mobile-grid-cell:last-child { grid-column: 1 / -1; border-right: 0; border-bottom: 0; } .tg-df-container .tg-df-mobile-grid-cell.active, .tg-df-container .tg-df-mobile-grid-cell:hover { background: var(--tg-df-bg-secondary, #f8fafc); color: var(--tg-df-text, #0f172a); } .tg-df-container .tg-df-mobile-grid-cell.has-active-filter { background: var(--tg-df-blue, #1f69ff); color: #ffffff; } .tg-df-mobile-menu-drawer { width: 100%; max-height: 260px; overflow-y: auto; overscroll-behavior: contain; border: 1px solid var(--tg-df-border, #e2e8f0); border-top: 0; background: var(--tg-df-bg, #ffffff); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); } .tg-df-container .tg-df-mobile-menu-item { appearance: none; display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 42px; padding: 12px 16px; font-family: inherit; font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; color: var(--tg-df-text, #0f172a); background: var(--tg-df-bg, #ffffff); border: 0; border-bottom: 1px solid #f1f5f9; border-radius: 0; cursor: pointer; box-shadow: none; } .tg-df-container .tg-df-mobile-menu-item:last-child { border-bottom: 0; } .tg-df-container .tg-df-mobile-menu-item.selected { color: var(--tg-df-blue, #1f69ff); background: rgba(31, 105, 255, 0.08); font-weight: 600; } .tg-df-container .tg-df-mobile-menu-item:hover { background: var(--tg-df-bg-secondary, #f8fafc); } .tg-df-mobile-cell-badge { display: inline-flex; align-items: center; justify-content: center; padding: 2px 6px; margin-left: 4px; color: var(--tg-df-blue, #1f69ff); background: rgba(31, 105, 255, 0.1); border-radius: 9999px; font-size: 10px; font-weight: 700; } @container tg-df (max-width: 599px) { .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-mobile-2x2-container { display: block !important; z-index: 50; background: var(--tg-df-bg, #ffffff); box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08); } .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"] .tg-df-mobile-2x2-container { position: sticky !important; top: var(--fcaw-mobile-sticky-offset, 0px); } .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-categories-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-freeform-tags-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-brands-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-controls { display: none !important; } } @media (max-width: 599px) { .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-mobile-2x2-container { display: block !important; z-index: 50; background: var(--tg-df-bg, #ffffff); box-shadow: 0 2px 5px rgba(15, 23, 42, 0.08); } .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"][data-tg-df-sticky-mobile-filters="true"] .tg-df-mobile-2x2-container { position: sticky !important; top: var(--fcaw-mobile-sticky-offset, 0px); } .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-categories-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-freeform-tags-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-brands-row-container, .tg-df-widget-host[data-tg-df-mobile-dropdowns="true"] .tg-df-controls { display: none !important; } } /* A non-full-bleed desktop embed is constrained to the article column. Reuse the compact filter grid there instead of squeezing the rails. */ @container tg-df (min-width: 600px) { .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-mobile-2x2-container { display: block !important; } .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-categories-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-freeform-tags-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-brands-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-controls { display: none !important; } } @media (min-width: 600px) { .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-mobile-2x2-container { display: block !important; } .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-categories-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-freeform-tags-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-brands-row-container, .tg-df-widget-host[data-tg-df-full-bleed="false"] .tg-df-controls { display: none !important; } } /* 6. Mobile List View (Stacks into a cleaner horizontal row/list) */ @container tg-df (max-width: 599px) { .tg-df-mobile-authors { gap: 16px !important; } .tg-df-mobile-authors .tg-df-author-row-item { width: 56px !important; } .tg-df-mobile-authors .tg-df-author-img-wrapper { width: 48px !important; height: 48px !important; } .tg-df-mobile-authors .tg-df-author-brand-logo { width: 18px !important; height: 18px !important; bottom: -2px !important; right: -2px !important; } .tg-df-mobile-authors .tg-df-author-row-name { font-size: 11px !important; } .tg-df-mobile-authors .tg-df-author-row-role { font-size: 10px !important; } .tg-df-container { user-select: text; -webkit-user-select: text; border: none !important; border-radius: 0 !important; } .tg-df-controls { padding: 16px 0 8px; } .tg-df-top-bar { width: 100%; } .tg-df-settings-dropdown { position: fixed; top: auto; bottom: 0; left: 0; right: 0; width: 100%; border-radius: 20px 20px 0 0; padding: 24px; box-shadow: 0 -8px 32px rgba(0,0,0,0.15); z-index: 1000; border: none; border-top: 1px solid var(--tg-df-border); } .tg-df-settings-dropdown-backdrop.active { background: rgba(0,0,0,0.4); } .tg-df-search-wrapper { box-shadow: 0 0 16px rgba(0,0,0,0.08); } .tg-df-sort-wrapper.tg-df-price-range-wrapper { flex: 0 0 auto; min-width: max-content; width: auto; } .tg-df-sort-select, .tg-df-filter-select { width: 100%; text-align: left; padding: 10px 24px 10px 32px; background-position: right 8px center; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .tg-df-sort-icon { left: 10px; } .tg-df-grid:not(.layout-grid):not(.layout-row), .tg-df-grid.layout-row { grid-template-columns: 1fr; gap: 16px; } .tg-df-grid.tg-df-grid-auto { padding-top: 24px; } .tg-df-grid.tg-df-grid-auto .tg-df-card, .tg-df-grid.layout-row .tg-df-card { flex-direction: row; align-items: stretch; height: auto; box-shadow: none; /* simple line on mobile if preferred, or keep */ border-bottom: 1px solid var(--tg-df-border); } .tg-df-grid.tg-df-grid-auto .tg-df-card:hover, .tg-df-grid.layout-row .tg-df-card:hover { box-shadow: none; } .tg-df-grid.tg-df-grid-auto .tg-df-card-image-box, .tg-df-grid.layout-row .tg-df-card-image-box { width: 120px; min-width: 120px; aspect-ratio: 3/4; border-right: none; padding: 12px; } .tg-df-grid.tg-df-grid-auto .tg-df-card-body, .tg-df-grid.layout-row .tg-df-card-body { padding: 12px; justify-content: space-between; } .tg-df-grid.tg-df-grid-auto .tg-df-card-title, .tg-df-grid.layout-row .tg-df-card-title { font-size: 14px; margin-bottom: 8px; } /* Single column mobile grid override */ .tg-df-grid.layout-grid { grid-template-columns: 1fr; gap: 16px; } .tg-df-grid.layout-grid .tg-df-card-image-box { padding: 12px; } .tg-df-grid.layout-grid .tg-df-card-body { padding: 10px; } .tg-df-grid.layout-grid .tg-df-card-title { font-size: 13px; margin-bottom: 8px; } .tg-df-grid.layout-grid .tg-df-card-price { font-size: 14px; } .tg-df-card-footer { flex-direction: column; align-items: stretch; gap: 0; width: 100%; min-width: 0; } .tg-df-card-merchant-pill { margin-bottom: 4px; } .tg-df-card-price-group { flex: 1 1 auto; margin-bottom: 8px; } .tg-df-card-price { font-size: 16px; } .tg-df-card-msrp { display: block; } .tg-df-grid.layout-row .tg-df-card-cta, .tg-df-container .tg-df-card-cta { width: 100%; max-width: none; min-width: 0; box-sizing: border-box; padding: 5px 12px !important; font-size: 11px !important; height: 30px !important; min-height: 30px !important; border-radius: 0 !important; flex: 0 0 auto; text-align: center; white-space: nowrap; line-height: 1.2; margin: 8px 0 0; } } @media (max-width: 599px) { .tg-df-grid.layout-row .tg-df-card-cta, .tg-df-container .tg-df-card-cta { width: 100%; max-width: none; min-width: 0; box-sizing: border-box; padding: 5px 12px !important; font-size: 11px !important; height: 30px !important; min-height: 30px !important; border-radius: 0 !important; flex: 0 0 auto; text-align: center; white-space: nowrap; line-height: 1.2; margin: 8px 0 0; } } .tg-df-container.is-carousel { min-height: 760px; background-color: #E7F0FF; padding: 0 0 24px 0; border-radius: 24px; width: 100vw; max-width: 1200px; position: relative; left: 50%; transform: translateX(-50%); } .tg-df-container.is-carousel.hide-header-details { min-height: 480px; } /* 7. Carousel View Mode */ .tg-df-container .tg-df-carousel-host { /* Layout is now handled by container wrapper */ } .tg-df-container .tg-df-carousel-eyebrow { color: var(--tg-df-blue); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; padding: 24px 16px 0 16px; display: none; } .tg-df-container .tg-df-carousel-query-title { color: #011535; font-size: 28px; font-weight: 600; padding: 0 16px 24px 16px; line-height: 1.2; display: none; } .tg-df-container .tg-df-carousel-blue-box { background-color: transparent; border-radius: 0; padding: 24px 24px 0 24px; margin: 0; color: var(--tg-df-blue); position: relative; overflow: hidden; } .tg-df-container .tg-df-carousel-bg-circle-1 { display: none; } .tg-df-container .tg-df-carousel-bg-circle-2 { display: none; } .tg-df-container .tg-df-carousel-bg-circle-3 { display: none; } .tg-df-container .tg-df-carousel-box-content { position: relative; z-index: 10; } .tg-df-container .tg-df-carousel-box-eyebrow { background-color: transparent; color: var(--tg-df-blue); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; display: inline-block; padding: 0; border-radius: 0; } .tg-df-container .tg-df-carousel-box-title { font-size: 28px; font-weight: 600; line-height: 1.2; margin-top: 8px; color: #1e293b; } .tg-df-container .tg-df-countdown-wrapper { position: absolute; top: 0; right: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 12px; transform: scale(0.67); transform-origin: top right; } .tg-df-container .tg-df-countdown-title { font-size: 14px; font-weight: 600; color: #011535; margin: 0; } .tg-df-container .tg-df-countdown-blocks { display: flex; gap: 16px; } .tg-df-container .tg-df-countdown-item { display: flex; flex-direction: column; align-items: center; gap: 4px; } .tg-df-container .tg-df-countdown-box { width: 59px; height: 59px; background: #03FE9E; border-radius: 15px; display: flex; align-items: center; justify-content: center; } .tg-df-container .tg-df-countdown-num { font-family: 'Inter', sans-serif; font-weight: 700; font-size: 20px; line-height: normal; color: #011535; } .tg-df-container .tg-df-countdown-label { font-family: 'Inter', sans-serif; font-weight: 500; font-size: 16px; line-height: normal; color: #1e293b; text-transform: uppercase; } .tg-df-container .tg-df-carousel-box-subtitle { font-size: 16px; margin-top: 8px; font-weight: 300; color: #1e293b; line-height: 24px; } .tg-df-container .tg-df-carousel-roundels-wrapper { position: relative; margin-top: 24px; margin-left: -24px; margin-right: -24px; } .tg-df-container .tg-df-carousel-roundels { display: flex; gap: 16px; overflow-x: auto; scrollbar-width: none; padding-top: 12px; padding-bottom: 24px; padding-left: 24px; padding-right: 24px; margin-left: 0; margin-right: 0; } .tg-df-container .tg-df-carousel-scroll-right, .tg-df-container .tg-df-carousel-scroll-left { position: absolute; top: 50%; transform: translateY(-50%); height: 36px; width: 36px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background-color: rgba(255, 255, 255, 0.4); color: var(--tg-df-blue); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); border: none; cursor: pointer; transition: background-color 0.2s; margin-top: -4px; z-index: 10; } .tg-df-container .tg-df-carousel-scroll-right { right: 0; } .tg-df-container .tg-df-carousel-scroll-left { left: 0; } .tg-df-container .tg-df-carousel-scroll-right:hover, .tg-df-container .tg-df-carousel-scroll-left:hover { background-color: rgba(255, 255, 255, 0.6); } .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right, .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left { height: 30px; width: 30px; background-color: rgba(255, 255, 255, 0.8); box-shadow: 0 2px 4px rgba(0,0,0,0.1); margin-top: 0; color: #0f4098; } .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-right:hover, .tg-df-container .tg-df-carousel-filters-outer .tg-df-carousel-scroll-left:hover { background-color: white; } .tg-df-container .tg-df-grid-wrapper { position: relative; } .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-right, .tg-df-container .tg-df-grid-wrapper .tg-df-carousel-scroll-left { background-color: white; box-shadow: 0 4px 12px rgba(0,0,0,0.15); top: 40%; width: 44px; height: 44px; color: #0f4098; } .tg-df-container .tg-df-carousel-roundels::-webkit-scrollbar { display: none; } .tg-df-container .tg-df-roundel { display: flex; flex-direction: column; align-items: center; gap: 8px; cursor: pointer; min-width: 120px; flex-shrink: 0; } .tg-df-container .tg-df-roundel-img-box { width: 120px; height: 120px; border-radius: 50%; background: white; display: flex; align-items: center; justify-content: center; overflow: hidden; box-shadow: 0px 3px 14px 0px rgba(30, 41, 59, 0.08); transition: box-shadow 0.2s; } .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box { box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue); } .tg-df-container .tg-df-roundel.active .tg-df-roundel-img-box { box-shadow: 0 0 0 2px #E7F0FF, 0 0 0 4px var(--tg-df-blue); } .tg-df-container .tg-df-roundel:hover .tg-df-roundel-img-box img { transform: scale(1.08); } .tg-df-container .tg-df-roundel-img-box img { width: 100%; height: 100%; object-fit: contain; padding: 10px; box-sizing: border-box; transition: transform 0.3s ease; } .tg-df-container .tg-df-roundel-label { font-size: 13px; font-weight: 400; color: #1e293b; text-align: center; } .tg-df-container .tg-df-carousel-filters-label { font-size: 16px; font-weight: 400; color: #1e293b; white-space: nowrap; margin-right: 4px; } .tg-df-container .tg-df-carousel-filters-wrap { display: flex; align-items: center; flex-wrap: nowrap; gap: 8px; margin-top: 8px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 8px; margin-left: -24px; margin-right: -24px; padding-left: 24px; padding-right: 24px; } .tg-df-container .tg-df-carousel-filters-wrap::-webkit-scrollbar { display: none; } .tg-df-container .tg-df-carousel-filter-btn img, .tg-df-container .tg-df-carousel-filter-btn picture { height: 20px; width: 20px; object-fit: contain; object-position: center; display: inline-flex; align-items: center; justify-content: center; margin-right: 6px; } .tg-df-container .tg-df-carousel-filter-btn picture img { margin-right: 0; height: 100%; width: 100%; } .tg-df-container .tg-df-carousel-filter-btn img.active-img, .tg-df-container .tg-df-carousel-filter-btn picture:has(.active-img) { display: none; } .tg-df-container .tg-df-carousel-filter-btn:hover img.inactive-img, .tg-df-container .tg-df-carousel-filter-btn.active img.inactive-img, .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.inactive-img), .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.inactive-img) { display: none; } .tg-df-container .tg-df-carousel-filter-btn:hover img.active-img, .tg-df-container .tg-df-carousel-filter-btn.active img.active-img, .tg-df-container .tg-df-carousel-filter-btn:hover picture:has(.active-img), .tg-df-container .tg-df-carousel-filter-btn.active picture:has(.active-img) { display: inline-flex; } .tg-df-container .tg-df-carousel-filter-btn { background: #ffffff; border: 2px solid #1e293b; color: #1e293b; border-radius: 24px; padding: 6px 16px; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; flex-shrink: 0; white-space: nowrap; } .tg-df-container .tg-df-carousel-filter-btn svg { margin-right: 6px; } .tg-df-container .tg-df-carousel-filter-btn { display: inline-flex; align-items: center; } .tg-df-container .tg-df-carousel-filter-btn:hover, .tg-df-container .tg-df-carousel-filter-btn.active { background: #1e293b; color: white; border-color: #1e293b; } .tg-df-grid.carousel-compact { display: flex; flex-wrap: nowrap; overflow-x: auto; gap: 16px; padding: 16px 24px; align-items: stretch; scrollbar-width: none; } .tg-df-grid.carousel-compact::-webkit-scrollbar { display: none; } .tg-df-grid.carousel-compact .tg-df-card { flex: 0 0 auto; width: 200px; min-height: auto; height: auto; display: flex; flex-direction: column; border-radius: 15px; border: none; box-shadow: 0 0 16px rgba(0,0,0,0.08); overflow: visible; } .tg-df-grid.carousel-compact .tg-df-card-image-box { padding: 12px; background-color: transparent; border-radius: 15px 15px 0 0; height: 130px; } .tg-df-grid.carousel-compact .tg-df-card-image { mix-blend-mode: normal; } .tg-df-grid.carousel-compact .tg-df-card-discount-badge { border-radius: 0; top: 0px; left: 0px; padding: 4px 8px; font-size: 11px; } .tg-df-grid.carousel-compact .tg-df-card-body { padding: 8px 12px 12px 12px; } .tg-df-grid.carousel-compact .tg-df-card-title { font-size: 14px; font-weight: 400; -webkit-line-clamp: 2; margin-bottom: 8px; color: #011535; } .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):not(:has(.tg-df-tag-prime)):not(:has(.tg-df-coupon-wrapper:not([style*="none"]))) > .tg-df-card-title, .tg-df-grid.carousel-compact .tg-df-card-body:not(:has(.tg-df-card-stars)):has(> .tg-df-card-title:first-child) > .tg-df-card-title { -webkit-line-clamp: 3; } .tg-df-grid.carousel-compact .tg-df-card-cta { width: calc(100% + 24px); border-radius: 0; padding: 8px 10px; margin: auto -12px -12px -12px; background-color: var(--tg-df-blue); } .tg-df-grid.carousel-compact .tg-df-card-price-group { margin-bottom: 2px; } .tg-df-grid.carousel-compact .tg-df-card-merchant-pill { margin-bottom: 2px; } @container tg-df (max-width: 599px) { .tg-df-container .tg-df-carousel-blue-box-title { font-size: 24px; } .tg-df-container .tg-df-countdown-title { display: none; } .tg-df-container .tg-df-countdown-wrapper { position: absolute; top: 0; right: 0; align-items: flex-end; transform: scale(0.40); transform-origin: top right; } .tg-df-container .tg-df-roundel { min-width: 88px; } .tg-df-container .tg-df-roundel-img-box { width: 88px; height: 88px; } } /* REPLICA BLOCK STYLES */ .tg-df-grid.layout-replica-2 { grid-template-columns: repeat(2, 1fr) !important; gap: 20px; } .tg-df-grid.layout-replica-1 { grid-template-columns: 1fr !important; gap: 20px; } .tg-df-container .hawk-deal-widget-container { border-bottom: 1px solid #e5e7eb; display: flex; flex-direction: column; margin: 0; padding: 20px 0; box-sizing: border-box; font-family: inherit; } .tg-df-container .hawk-deal-widget-wrap { display: flex; flex-direction: row; align-items: flex-start; width: 100%; gap: 24px; } .tg-df-container .hawk-deal-widget-image-container { display: flex; flex-shrink: 0; justify-content: center; width: 160px; height: 160px; align-items: center; background: white; margin-bottom: 0px; } .tg-df-container .hawk-deal-widget-title-product-title { color: #111827; font-size: 18px; font-weight: 700; line-height: 1.4; display: inline; } .tg-df-container .hawk-deal-widget-title-price { font-size: 18px; font-weight: 700; line-height: 1.4; white-space: nowrap; color: #2563eb; } .tg-df-container .hawk-deal-widget-title-price-now { font-weight: 700; } .tg-df-container .hawk-deal-widget-title-retailer-price:hover { text-decoration: underline; } .tg-df-container .hawk-deal-widget-title-retailer { font-size: 18px; font-weight: 700; line-height: 1.4; color: #2563eb; } .tg-df-container .hawk-deal-widget-title-was-price { color: #dc2626; font-size: 16px; font-weight: 500; line-height: 1.4; text-decoration: line-through; white-space: nowrap; margin-left: 8px; margin-right: 8px; } .tg-df-container .hawk-deal-widget-text-body-container { position: relative; width: 100%; box-sizing: border-box; } .tg-df-container .hawk-deal-widget-text-body-main { font-size: 16px; width: 100%; margin-bottom: 12px; } .tg-df-container .hawk-deal-widget-text-body-description { display: block; font-size: 15px; margin-top: 12px; color: #4b5563; line-height: 1.6; } .tg-df-container .hawk-deal-widget-text-body-description p { margin: 0; line-height: 1.6; } .tg-df-container .hawk-deal-widget-text-cta-container { display: flex; flex-direction: column; gap: 12px; width: 100%; flex: 1; min-width: 0; box-sizing: border-box; padding-right: 12px; } .tg-df-container .hawk-deal-widget-footer { display: flex; justify-content: flex-end; width: 100%; margin-top: auto; } .tg-df-container .hawk-deal-widget-button-wrapper { display: flex; flex-direction: column; align-items: flex-end; justify-content: flex-end; width: 100%; } .tg-df-container .hawk-deal-widget-preferred-partner-wrapper { display: flex; flex-direction: row; } @container tg-df (min-width: 600px) { .tg-df-mobile-only { display: none !important; } } @media (min-width: 600px) { .tg-df-mobile-only { display: none !important; } } @container tg-df (max-width: 599px) { .tg-df-desktop-only { display: none !important; } .tg-df-grid.layout-replica-2 { grid-template-columns: 1fr !important; } .tg-df-grid.savings-squad-cards { grid-template-columns: 1fr !important; display: flex; flex-direction: column; } .tg-df-container .hawk-deal-widget-title-product-title, .tg-df-container .hawk-deal-widget-title-price, .tg-df-container .hawk-deal-widget-title-retailer { font-size: 14px !important; line-height: 1.35 !important; font-weight: 700 !important; } .tg-df-container .hawk-deal-widget-title-was-price { font-size: 13px !important; line-height: 1.35 !important; } .tg-df-container .hawk-deal-widget-text-body-main { font-size: 14px !important; line-height: 1.35 !important; margin-bottom: 8px !important; } } .tg-df-grid.savings-squad-cards .tg-df-card-title { -webkit-line-clamp: unset !important; display: block !important; overflow: visible !important; } /* BESPOKE AUTHOR HEADER STYLES - MAX ISOLATION PROTECTION */ .tg-df-author-embed { width: 100% !important; font-family: inherit !important; background: transparent !important; margin: 0 !important; padding: 0 !important; border: none !important; } .tg-df-author-section { display: block !important; width: 100% !important; max-width: 100% !important; opacity: 1 !important; overflow: visible !important; background: transparent !important; border: none !important; margin: 0 auto !important; padding: 0 !important; box-shadow: none !important; } .tg-df-author-card { text-align: center !important; padding: 1.75rem 1rem 1.25rem 1rem !important; margin: 0 auto !important; max-width: 48rem !important; background: transparent !important; border: none !important; border-radius: 0 !important; box-sizing: border-box !important; box-shadow: none !important; } .tg-df-author-image { width: 180px !important; height: 180px !important; border-radius: 50% !important; object-fit: cover !important; margin: 0 auto 0.75rem auto !important; display: block !important; border: none !important; box-shadow: none !important; max-width: 100% !important; } .tg-df-author-media-slot { width: 100% !important; height: 180px !important; min-height: 180px !important; margin: 0 auto 0.75rem auto !important; display: flex !important; align-items: center !important; justify-content: center !important; } .tg-df-author-media-slot .tg-df-author-image { margin: 0 auto !important; } .tg-df-author-profile-image-wrapper { position: relative !important; width: 180px !important; height: 180px !important; margin: 0 auto 0.75rem auto !important; flex: 0 0 auto !important; } .tg-df-author-profile-brand-logo { position: absolute !important; right: 12px !important; bottom: 12px !important; width: 42px !important; height: 42px !important; padding: 0 !important; border: 3px solid var(--tg-df-bg, #fff) !important; border-radius: 50% !important; background: #000 !important; object-fit: contain !important; box-sizing: border-box !important; } .tg-df-author-curated-by { font-size: 0.875rem !important; color: #6B7280 !important; font-style: normal !important; margin: 0 0 0.25rem 0 !important; padding: 0 !important; border: none !important; background: none !important; font-family: inherit !important; text-transform: none !important; letter-spacing: normal !important; line-height: 1.4 !important; } .tg-df-author-name { font-size: 2rem !important; font-weight: 300 !important; color: #111827 !important; margin: 0 0 0.25rem 0 !important; padding: 0 !important; line-height: 1.1 !important; letter-spacing: -0.02em !important; border: none !important; background: none !important; font-family: inherit !important; text-transform: none !important; } .tg-df-author-role { font-size: 0.9375rem !important; font-weight: 500 !important; color: var(--tg-df-blue, #1F69FF) !important; margin: 0 0 1.25rem 0 !important; padding: 0 !important; line-height: 1.3 !important; border: none !important; background: none !important; font-family: inherit !important; text-transform: none !important; } .tg-df-author-meta-slot { width: 100% !important; min-height: 88px !important; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: flex-start !important; } .tg-df-author-meta-slot--site { padding-top: 1rem !important; } .tg-df-author-meta-slot--no-social { min-height: 0 !important; } .tg-df-author-meta-slot--no-social .tg-df-author-role { margin-bottom: 0.5rem !important; } .tg-df-author-social-links { display: flex !important; flex-wrap: wrap !important; align-items: center !important; justify-content: center !important; gap: 1rem !important; margin: 0 auto 1.25rem auto !important; padding: 0 !important; max-width: 42rem !important; width: 100% !important; list-style: none !important; background: none !important; border: none !important; box-shadow: none !important; } .tg-df-author-social-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 0 !important; border-radius: 50% !important; background-color: #f2f2f2 !important; color: #111111 !important; font-size: 0.8125rem !important; font-weight: 500 !important; text-decoration: none !important; transition: all 0.2s ease !important; border: 0 !important; line-height: 1 !important; box-shadow: none !important; cursor: pointer !important; outline: none !important; margin: 0 !important; height: 34px !important; width: 34px !important; min-width: 34px !important; box-sizing: border-box !important; } .tg-df-author-social-btn:hover { background-color: #dedede !important; color: #111111 !important; transform: translateY(-1px) !important; } .tg-df-author-social-btn > svg { width: 19px !important; height: 19px !important; flex-shrink: 0 !important; display: block !important; margin: 0 !important; } .tg-df-author-social-btn[data-social-key="facebook"] > svg { transform: scale(1.25) !important; } .tg-df-author-social-btn[data-social-key="pinterest"] > svg, .tg-df-author-social-btn[data-social-key="tiktok"] > svg { transform: scale(1.2) !important; } .tg-df-author-bio { max-width: 42rem !important; margin: 0 auto 1.25rem auto !important; padding: 0 0.5rem !important; color: #4b5563 !important; line-height: 1.6 !important; font-weight: 300 !important; font-size: 0.9375rem !important; text-align: center !important; background: none !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; display: block !important; height: auto !important; overflow: visible !important; } .tg-df-author-bio-shell--stable { width: 100% !important; box-sizing: border-box !important; } .tg-df-author-bio--clamped { min-height: 4.8em !important; height: 4.8em !important; max-height: 4.8em !important; display: -webkit-box !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 3 !important; overflow: hidden !important; } .tg-df-author-bio--expanded { min-height: 4.8em !important; height: auto !important; max-height: none !important; display: block !important; overflow: visible !important; } .tg-df-author-bio--static, .tg-df-author-bio--static:hover, .tg-df-author-bio--static:focus, .tg-df-author-bio--static:focus-visible { outline: none !important; box-shadow: none !important; cursor: default !important; } .tg-df-author-bio-toggle-slot { height: 28px !important; display: flex !important; align-items: center !important; justify-content: center !important; margin: 0.125rem 0 0 !important; } .tg-df-author-bio-toggle { appearance: none !important; border: 0 !important; border-bottom: 1px solid currentColor !important; border-radius: 0 !important; padding: 0.125rem 0 !important; margin: 0 !important; background: transparent !important; color: #4b5563 !important; box-shadow: none !important; font: inherit !important; font-size: 0.75rem !important; font-weight: 600 !important; line-height: 1.2 !important; text-decoration: none !important; text-transform: none !important; cursor: pointer !important; } .tg-df-author-bio a { color: var(--tg-df-blue, #1F69FF) !important; text-decoration: underline !important; font-weight: 400 !important; background: none !important; border: none !important; padding: 0 !important; margin: 0 !important; border-radius: 0 !important; display: inline !important; box-shadow: none !important; } .tg-df-author-bio p, .tg-df-author-bio div, .tg-df-author-bio span { margin: 0 !important; padding: 0 !important; color: inherit !important; font: inherit !important; line-height: inherit !important; text-align: inherit !important; text-transform: none !important; letter-spacing: normal !important; background: none !important; border: none !important; box-shadow: none !important; } .tg-df-author-bio strong, .tg-df-author-bio b { font-weight: 600 !important; } .tg-df-author-bio em, .tg-df-author-bio i { font-style: italic !important; } @container tg-df (min-width: 600px) { .tg-df-author-image { width: 180px !important; height: 180px !important; } .tg-df-author-name { font-size: 2.5rem !important; } } @media (min-width: 600px) { .tg-df-author-image { width: 180px !important; height: 180px !important; } .tg-df-author-name { font-size: 2.5rem !important; } } @container tg-df (max-width: 768px) { .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; } .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; } .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; } } @media (max-width: 768px) { .tg-df-container .hawk-deal-widget-footer { display: flex !important; justify-content: flex-start !important; width: 100% !important; margin-top: auto !important; } .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; justify-content: flex-start !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; } .tg-df-container .hawk-deal-widget-text-cta-container { padding-right: 12px !important; } } @container tg-df (max-width: 500px) { .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; } .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; } .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; } .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; } .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; } .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; } } @media (max-width: 500px) { .tg-df-container .hawk-deal-widget-wrap { display: flex !important; flex-direction: row !important; align-items: stretch !important; gap: 12px !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-image-container { display: flex !important; flex-shrink: 0 !important; width: 110px !important; max-width: 110px !important; height: auto !important; align-items: center !important; justify-content: center !important; background: #f8fafc !important; border-radius: 6px !important; padding: 8px !important; margin: 0 !important; float: none !important; box-sizing: border-box !important; } .tg-df-container .hawk-lazy-image-deal-widget { max-height: 120px !important; max-width: 100% !important; height: auto !important; width: auto !important; object-fit: contain !important; } .tg-df-container .hawk-deal-widget-text-cta-container { display: flex !important; flex-direction: column !important; justify-content: space-between !important; flex: 1 !important; min-width: 0 !important; width: auto !important; text-align: left !important; gap: 6px !important; padding-right: 12px !important; } .tg-df-container .hawk-deal-widget-text-body-container { width: 100% !important; } .tg-df-author-line-mobile { padding: 2px 0 4px 0 !important; margin-bottom: 2px !important; } .tg-df-container .hawk-deal-widget-footer { display: flex !important; margin-top: auto !important; clear: none !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper { display: flex !important; width: 100% !important; align-items: stretch !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-deal-widget-preferred-partner-wrapper { display: flex !important; width: 100% !important; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { box-sizing: border-box !important; display: flex !important; align-items: center !important; justify-content: center !important; max-width: none !important; width: 100% !important; min-width: 0 !important; padding: 5px 12px !important; font-size: 11px !important; font-weight: 700 !important; margin: 0 !important; border-radius: 0 !important; height: 30px !important; } } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button { align-items: center; background-color: var(--tg-df-blue); box-sizing: border-box; color: #ffffff !important; display: flex; font-size: 14px; font-weight: 700; justify-content: center; letter-spacing: 0.5px; line-height: 1; min-width: 160px; padding: 14px 24px; text-align: center; text-decoration: none; text-transform: uppercase; width: 100%; word-break: normal; border-radius: 4px; border: 0; transition: background-color 0.2s; } .tg-df-container .hawk-deal-widget-button-wrapper .hawk-affiliate-link-deal-button:hover { filter: brightness(0.85); text-decoration: none; } .tg-df-container .hawk-lazy-image-deal-widget { display: block; height: auto; margin: auto; max-height: 160px; max-width: 100%; mix-blend-mode: multiply; object-fit: contain; } .tg-df-container .hawk-deal-widget-text-cta-container a { color: #2563eb; text-decoration: none; display: inline; } .tg-df-container .hawk-deal-widget-text-cta-container a:hover { text-decoration: underline; } .tg-df-container .hawk-deal-widget-text-cta-container a:has(.hawk-deal-widget-title-product-title) { color: #111827; } .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-product-title, .tg-df-container .hawk-deal-widget-text-cta-container a:hover .hawk-deal-widget-title-retailer-price { text-decoration: underline; } .tg-df-active-badges-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 12px; margin-bottom: 16px; width: 100%; } .tg-df-active-badge { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; background-color: var(--tg-df-blue, #1f69ff); color: #ffffff; border: 1px solid var(--tg-df-blue, #1f69ff); border-radius: 0px; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; line-height: 1; } .tg-df-badge-remove { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 0px; border: none; background: rgba(255, 255, 255, 0.25); color: #ffffff; cursor: pointer; padding: 0; margin-left: 4px; transition: background-color 0.15s, color 0.15s; } .tg-df-badge-remove:hover { background: rgba(255, 255, 255, 0.45); color: #ffffff; } .tg-df-badge-clear-all { display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; line-height: 1; padding: 8px 14px; color: var(--tg-df-text-muted, #64748b); cursor: pointer; background: #ffffff; border: 1px solid var(--tg-df-border, #e2e8f0); border-radius: 0px; transition: all 0.15s ease; } .tg-df-badge-clear-all:hover { background: var(--tg-df-blue, #1f69ff); color: #ffffff; border-color: var(--tg-df-blue, #1f69ff); } .tg-df-savings-squad-header { margin-bottom: 24px; text-align: center; } .tg-df-banner-img-desktop { display: block; width: 100%; height: auto; margin-bottom: 32px; } .tg-df-banner-img-mobile { display: none; width: 100%; height: auto; margin-bottom: 32px; } @container tg-df (max-width: 600px) { .tg-df-banner-img-desktop { display: none; } .tg-df-banner-img-mobile { display: block; } } .tg-df-header-title { font-size: 28px; font-weight: 700; color: var(--tg-df-text); margin: 32px 0 12px 0; line-height: 1.3; } .tg-df-header-subtitle { font-size: 16px; color: var(--tg-df-text-muted); margin: 0 0 32px 0; line-height: 1.5; } @container tg-df (max-width: 599px) { .tg-df-filters-container { display: none !important; } #tg-df-controls { display: none !important; } .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; } .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; } .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; } } @media (max-width: 599px) { .tg-df-desktop-only { display: none !important; } .tg-df-filters-container { display: none !important; } #tg-df-controls { display: none !important; } .tg-df-grid.tg-df-grid-auto, .tg-df-grid { padding-top: 0px !important; } .tg-df-container .hawk-deal-widget-container:first-child { padding-top: 8px !important; } .tg-df-container .tg-df-card:first-child { margin-top: 0px !important; } } /* Article Intro Content Styling */ .tg-df-article-content { font-size: 1rem; line-height: 1.7; color: #334155; } .tg-df-article-content p { margin-bottom: 1.25rem; line-height: 1.7; font-size: 1rem; color: #334155; } .tg-df-article-content > p:first-of-type::first-letter { font-size: 3.25rem; font-weight: 700; float: left; line-height: 0.85; margin-right: 0.5rem; margin-top: 0.15rem; color: #0f172a; font-family: inherit; } .tg-df-article-content a { color: #0066cc; text-decoration: underline; font-weight: 500; } .tg-df-article-content a:hover { color: #004499; } .tg-df-article-content strong, .tg-df-article-content b { font-weight: 700; color: #0f172a; } .tg-df-article-section-banner { border-bottom: 2px solid #e6007e; margin: 2.25rem 0 1.25rem 0; position: relative; clear: both; } .tg-df-article-section-banner span { background-color: #e6007e; color: #ffffff; padding: 6px 16px; font-weight: 700; font-size: 0.875rem; text-transform: uppercase; letter-spacing: 0.05em; display: inline-block; } Hardware 66Gaming Monitors 9Gaming PCs 7Gaming Mice 6Gaming Headsets 6Gaming Audio 6SSDs 4Storage 4Gaming Laptops 4Controllers 1CATEGORIESPRICESDISCOUNTS (25%+)All PricesUnder $50$50 - $100$100 - $200$200 - $500Over $500Any discountMin 5%Min 10%Min 15%Min 20%Min 25%Min 30%Min 40%Min 50%Min 60%Min 70%Most recentHighest ratingScored products firstMin 25% offSave $9Logitech G203 | Wired
READ MORE$25.99$34.99Amazon deal recommended by:Dave James • Editor-in-Chief, Hardware • 56 mins agoVIEW DEALSave $33.68Glorious GHS Eternal | 40 mm drivers
READ MORE$26.31$59.99Amazon deal recommended by:Andy Edser • Hardware Writer • 2 hrs agoVIEW DEALSave $20Logitech G305 Lightspeed | Wireless
READ MORE$29.99$49.99Amazon deal recommended by:Dave James • Editor-in-Chief, Hardware • 56 mins agoVIEW DEALSave $20Logitech G305 Lightspeed
READ MORE$29.99$49.99Amazon deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $35.01Razer Basilisk V3
READ MORE$34.98$69.99Bestbuy deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $32Logitech G502 Hero | Wired
READ MORE$37.99$69.99Amazon deal recommended by:Dave James • Editor-in-Chief, Hardware • 56 mins agoVIEW DEALSave $20.2Razer BlackShark V2 X
READ MORE$39.79$59.99Amazon deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $40Logitech G432 | 50 mm drivers
READ MORE$39.99$79.99Amazon deal recommended by:Andy Edser • Hardware Writer • 2 hrs agoVIEW DEALSave $35Razer Kraken V4 X | 40 mm drivers
READ MORE$44.99$79.99Amazon deal recommended by:Andy Edser • Hardware Writer • 2 hrs agoVIEW DEALSave $45Turtle Beach Burst II Air | Wireless
READ MORE$54.99$99.99Amazon deal recommended by:Dave James • Editor-in-Chief, Hardware • 56 mins agoVIEW DEALSave $42HyperX Cloud III | 53 mm drivers
READ MORE$57.99$99.99Amazon deal recommended by:Andy Edser • Hardware Writer • 2 hrs agoVIEW DEALSave $20Nothing Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)
READ MORE$59$79Amazon deal recommended by:Andy Edser • Hardware Writer • 2 hrs agoVIEW DEALSave $37.5KTC H24V27
READ MORE$62.49$99.99Newegg deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $33Scuf Valor Pro
READ MORE$76.99$109.99Amazon deal recommended by:Jess Kinghorn • Hardware Writer • 24 days agoVIEW DEALSave $50Acer AOpen 24KG1Y X3bip
READ MORE$79.99$129.99Newegg deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $50Asus ROG Pelta
READ MORE$79.99$129.99Amazon deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $52.5MSI MAG 244F
READ MORE$97.49$149.99Bestbuy deal recommended by:James Bentley • Hardware writer • 21 days agoVIEW DEALSave $50.99MSI MAG 255XFV
READ MORE$99$149.99Walmart deal recommended by:James Bentley • Hardware writer • 2 hrs agoVIEW DEALLoad More{"@context":"https://schema.org","@type":"ItemList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@type":"Product","name":"G203 | Wired","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":25.99,"url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":2,"item":{"@type":"Product","name":"GHS Eternal | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","brand":{"@type":"Brand","name":"Glorious"},"offers":{"@type":"Offer","priceCurrency":"USD","price":26.31,"url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":3,"item":{"@type":"Product","name":"G305 Lightspeed | Wireless","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":4,"item":{"@type":"Product","name":"G305 Lightspeed","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":29.99,"url":"https://www.amazon.com/dp/B07CMS5Q6P","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":5,"item":{"@type":"Product","name":"Basilisk V3","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":34.98,"url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":6,"item":{"@type":"Product","name":"G502 Hero | Wired","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":37.99,"url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":7,"item":{"@type":"Product","name":"BlackShark V2 X","image":"https://cdn.mos.cms.futurecdn.net/iyz3iXLiJcKt88PnaWDqFi.jpg","description":"The Razer BlackShark V2 X is a remarkably good gaming headset, so much so that we'd say it was absolutely worth its full asking price, never mind the $20 discount you'll find here. Razer's 50 mm titanium drivers are nicely punchy and capable of plenty of volume without distortion, it's well-made, comfortable to wear all day, and the mic is pretty good, too. Plus, it's got a green cable, and we all know that pop of colour makes wired gaming headsets better by default. Key specs:50 mm drivers | Wired | Cardioid microphone","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.79,"url":"https://www.amazon.com/Razer-BlackShark-V2-Gaming-Headset/dp/B086PKMZ21/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":8,"item":{"@type":"Product","name":"G432 | 50 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/2tUAoKQRgcyuBATm2MWW8Y.jpg","description":"Logitech has been cranking out decent budget gaming headsets for a while, but this one's actually more of a mid-range set with a very healthy discount. The black and blue colorway won't be for everyone, but with 7.1 surround sound, a flip-to-mute mic, and DTS Headphone:X 2.0 support, this is certainly a whole lot of headset for the cash. Key specs: 50 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $49.99","brand":{"@type":"Brand","name":"Logitech"},"offers":{"@type":"Offer","priceCurrency":"USD","price":39.99,"url":"https://www.amazon.com/Logitech-Surround-Gaming-Headset-Leatherette/dp/B07MRMHML9/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":9,"item":{"@type":"Product","name":"Kraken V4 X | 40 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/oNZmqeexBrnWvrT2VvsYhe.jpg","description":"If you're wondering why you might pay a little more than the Razer headsets above for, well, another Razer headset, the answer is comfort. Don't get me wrong, the BlackShark V2 X is a comfy thing to wear, but the plush, cushy memory foam cushions of the Kraken are well worth considering if you're looking for as much all-day usage as possible. It still sounds great, too. Key specs: 40 mm drivers | 20-20,000 Hz | Closed-back | Wired Price check: Best Buy $59.99","brand":{"@type":"Brand","name":"Razer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":44.99,"url":"https://www.amazon.com/Razer-Kraken-Wired-Gaming-Headset-Smartphone/dp/B0D9ZQTZ8N/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":10,"item":{"@type":"Product","name":"Burst II Air | Wireless","image":"https://cdn.mos.cms.futurecdn.net/oHpVvSDqMgFC5rnRe2pUnQ.jpg","description":"We gave this mouse an 85% in our review, praising its very low weight, huge battery life, and super-responsive feel. It doesn't have quite as many fun extras as competitors and can be a bit of a fingerprint magnet, but it is a super solid choice at this price. Key specs: Wireless | 26,000 DPI | Symmetrical Price check:Best Buy $99.99","brand":{"@type":"Brand","name":"Turtle Beach"},"offers":{"@type":"Offer","priceCurrency":"USD","price":54.99,"url":"https://www.amazon.com/Turtle-Beach-Burst-Air-Lightweight/dp/B0D1CS6C2L/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":11,"item":{"@type":"Product","name":"Cloud III | 53 mm drivers","image":"https://cdn.mos.cms.futurecdn.net/WcvQLZ9svEqddBva629wu3.jpg","description":"We found this headset to be very comfy in our review, with a balanced sound that still manages to keep a decent whack of bass. Our major drawback was the MSRP, but at $58 this set of cans is well worth a look. Key specs: 53 mm drivers | 15-25,000 Hz | Closed-back | Wired Price check: Best Buy $57.99","brand":{"@type":"Brand","name":"HyperX"},"offers":{"@type":"Offer","priceCurrency":"USD","price":57.99,"url":"https://www.amazon.com/HyperX-Cloud-III-Ultra-Clear-USB/dp/B0C3BV19Q3/","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":12,"item":{"@type":"Product","name":"Ear (a) | Bluetooth | 42.5-hour battery life (9.5 from earbuds)","image":"https://cdn.mos.cms.futurecdn.net/LjJiAaeT6h5YZ9JGiq7c5Z.png","description":"These earbuds might not be ideal just for gaming (their low-latency mode is pretty poor), but for listening to music and more casual gaming, they're great. They have a great sound profile, sit comfortably, and look pretty snazzy, too. Key specs: Bluetooth 5.4 | 42.5-hour battery life (9.5 from earbuds) | 20 Hz – 20 kHz frequency response","brand":{"@type":"Brand","name":"Nothing"},"offers":{"@type":"Offer","priceCurrency":"USD","price":59,"url":"https://www.amazon.com/Nothing-Ear-Integration-Cancelling-Equaliser/dp/B0CXPR5412","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":13,"item":{"@type":"Product","name":"H24V27","image":"https://cdn.mos.cms.futurecdn.net/Zn2NZDLM6QnkGJ9n4JBG8E.png","description":"This KTC pick is a budget pick, and it knows it. The 100 Hz refresh rate is just okay; a VA panel means less good viewing angles and color accuracy, but it's a solid enough gaming monitor, and the cheapest I'd actually recommend right now. Remember to use the code "LDSF246" for the full discount Key specs: 24-inch | 100 Hz | 1 ms | VA","brand":{"@type":"Brand","name":"KTC"},"offers":{"@type":"Offer","priceCurrency":"USD","price":62.49,"url":"https://www.newegg.com/p/3D4-007C-00016","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":14,"item":{"@type":"Product","name":"Valor Pro","image":"https://cdn.mos.cms.futurecdn.net/vgsaXpAMZKbxs9u6HUFV2W.png","description":"This controller is comfy, responsive, and all its various buttons, sticks, and triggers feel very high-quality. There's little to dislike about the Valor Pro unless you really don't want to keep that cable. This is a great price for a Scuf controller, too. Key Specs: Wired USB Type-C | Xbox, Windows | Hall effect thumbsticks","brand":{"@type":"Brand","name":"Scuf"},"offers":{"@type":"Offer","priceCurrency":"USD","price":76.99,"url":"https://www.amazon.com/dp/B0DTB3QCS5","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":15,"item":{"@type":"Product","name":"AOpen 24KG1Y X3bip","image":"https://cdn.mos.cms.futurecdn.net/fqL7czYaKKB7Rk7rmTQe5C.png","description":"With a $50 discount, this is the highest refresh rate 1080p monitor you will find at its price point. It's also IPS, which offers better viewing angles and colours than VA and comes with a solid response time too. Key specs: 23.8-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"Acer"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.newegg.com/p/N82E16824011533","seller":{"@type":"Organization","name":"Newegg"}}}},{"@type":"ListItem","position":16,"item":{"@type":"Product","name":"ROG Pelta","image":"https://cdn.mos.cms.futurecdn.net/BvSb9rkRtpTSDDSBFEv84V.jpg","description":"With a strong battery life, super comfortable fit, and nice, airy materials, the Asus ROG Pelta is a bit of a belter. At its usual price, it's still a very good offering, but $45 off makes it an instant recommendation. Key specs: 2.4 GHz, Bluetooth, and USB-C connectivity | 90-hour battery life","brand":{"@type":"Brand","name":"Asus"},"offers":{"@type":"Offer","priceCurrency":"USD","price":79.99,"url":"https://www.amazon.com/ASUS-ROG-Lightweight-Titanium-Plated-Super-Wideband/dp/B0DNTLYK6Z/?th=1","seller":{"@type":"Organization","name":"Amazon"}}}},{"@type":"ListItem","position":17,"item":{"@type":"Product","name":"MAG 244F","image":"https://cdn.mos.cms.futurecdn.net/mYqdsr7LKubQtfmTBy5XL7.png","description":"With a hurtling-fast refresh rate and snappy response rate, this IPS panel from MSI is a solid competitive pick for just under $100. Key specs: 24-inch | 200 Hz | 0.5 ms | IPS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":97.49,"url":"https://www.bestbuy.com/product/msi-mag-244f-24-fhd-rapid-ips-200hz-0-5ms-gaming-monitor-with-freesync-premium-and-hdr-ready-hdmi-displayport-metallic-black/J3P7TX95RK/sku/11064910","seller":{"@type":"Organization","name":"Bestbuy"}}}},{"@type":"ListItem","position":18,"item":{"@type":"Product","name":"MAG 255XFV","image":"https://cdn.mos.cms.futurecdn.net/SdhjSd7YdmiehGuzvXtiwU.jpg","description":"You might not like the VA panel and its low brightness, but you'll surely like the speed and price tag. 250 Hz, 0.5 ms pixel time, and adaptive sync will all help to ensure you get super-silky gaming. Key specs: 25-inch | 250 Hz | 0.5 ms | VA Price check: Best Buy OOS | Micro Centre OOS","brand":{"@type":"Brand","name":"MSI"},"offers":{"@type":"Offer","priceCurrency":"USD","price":99,"url":"https://www.walmart.com/ip/MSI-MAG-255XFV-25-Class-Full-HD-Gaming-LED-Monitor-16-9-Metallic-Black-24-5-Viewable-Rapid-Vertical-Alignment-VA-LED-Backlight-1920-x-1080-16-7-Milli/6933451174","seller":{"@type":"Organization","name":"Walmart"}}}}]}Available Coupons & Deals
No active vouchers found for . {"authorBioLength":"short","authorFullBleed":false,"authorHandle":"all-authors","authorName":"All authors","backgroundColor":"transparent","customBio":"","discountAmount":"25","editorMode":false,"editorialMaxAgeMonths":"0","includeBuyingGuideProducts":false,"includeCollections":false,"includeDeals":true,"includeReviewProducts":false,"mobileDropdowns":true,"stickyMobileFilters":false,"offerType":"","preloadReviewInventory":false,"lightweightReviewDelivery":false,"hideHawkPrices":false,"prioritiseCommercialProducts":true,"priceRange":"all","productSelection":"mix","query":"","region":"auto","resultCount":"6","retailer":"","selectedBrands":[],"showAuthorBio":false,"showAuthorCounters":true,"showAuthorIdentity":false,"showAuthorRail":false,"showBrandRail":false,"showCategoryRail":true,"showCollectionsDropdown":false,"showPriceDiscountFilters":true,"showReviewSort":false,"showSocialButtons":false,"showCountdown":false,"showHeaderDetails":true,"showFreeformTagRail":false,"sort":"price_asc","viewMode":"author","website":"pcgamer","widgetSubtitle":"Discover the best discounts currently available, curated daily by the Tom's Guide Savings Squad.","widgetTitle":"Top Deals Handpicked by Our Editors","brands":[],"shortenedHeadlines":{},"compactEmbed":true} {"authors":[{"bioLong":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","bioShort":"James is a more recent PC gaming convert, often admiring graphics cards, cases, and motherboards from afar. It was not until 2019, after just finishing a degree in law and media, that they decided to throw out the last few years of education, build their PC, and start writing about gaming instead. In that time, he has covered the latest doodads, contraptions, and gismos, and loved every second of it. Hey, it’s better than writing case briefs.","name":"James","fullName":"James Bentley","handle":"james-bentley","role":"Hardware writer","image":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","brandKey":"pcgamer"},{"bioLong":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","bioShort":"Dave has been gaming since the days of Zaxxon and Lady Bug on the Colecovision, and code books for the Commodore Vic 20 (Death Race 2000!). He built his first gaming PC at the tender age of 16, and finally finished bug-fixing the Cyrix-based system around a year later. When he dropped it out of the window. He first started writing for Official PlayStation Magazine and Xbox World many decades ago, then moved onto PC Format full-time, then PC Gamer, TechRadar, and T3 among others. Now he's back, writing about the nightmarish graphics card market, CPUs with more cores than sense, gaming laptops hotter than the sun, and SSDs more capacious than a Cybertruck.","name":"Dave","fullName":"Dave James","handle":"dave-james","role":"Editor-in-Chief, Hardware","image":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/not_the_gk","label":"X (Twitter)"},{"key":"email","href":"mailto:dave.james@futurenet.com","label":"Email"}]},{"bioLong":"Jacob got his hands on a gaming PC for the first time when he was about 12 years old. He swiftly realised the local PC repair store had ripped him off with his build and vowed never to let another soul build his rig again. With this vow, Jacob the hardware junkie was born. Since then, Jacob's led a double-life as part-hardware geek, part-philosophy nerd, first working as a Hardware Writer for PCGamesN in 2020, then working towards a PhD in Philosophy for a few years while freelancing on the side for sites such as TechRadar, Pocket-lint, and yours truly, PC Gamer. Eventually, he gave up the ruthless mercenary life to join the world's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","bioShort":"Jacob got his hands on a gaming PC for the first time when he was about 12 years old. He swiftly realised the local PC repair store had ripped him off with his build and vowed never to let another soul build his rig again. With this vow, Jacob the hardware junkie was born. Since then, Jacob's led a double-life as part-hardware geek, part-philosophy nerd, first working as a Hardware Writer for PCGamesN in 2020, then working towards a PhD in Philosophy for a few years while freelancing on the side for sites such as TechRadar, Pocket-lint, and yours truly, PC Gamer. Eventually, he gave up the ruthless mercenary life to join the world's #1 PC Gaming site full-time. It's definitely not an ego thing, he assures us.","name":"Jacob","fullName":"Jacob Fox","handle":"jacob-fox","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/Ee8ZL5rzgTjTNkBFJ4jBnD.png","brandKey":"pcgamer"},{"bioLong":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","bioShort":"Andy built his first gaming PC at the tender age of 12, when IDE cables were a thing and high resolution wasn't. 26 years later (yes he's getting old), he now spends his days writing about and reviewing graphics cards, CPUs, keyboards, mice, gaming headsets and much, much more. You name it, if it's PC gaming hardware he'll write words about it, with opinions and everything.","name":"Andy","fullName":"Andy Edser","handle":"andy-edser","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","brandKey":"pcgamer"},{"bioLong":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","bioShort":"Jess has been writing about games for over ten years, spending a significant chunk of that time working on print publications PLAY and Official PlayStation Magazine. When she’s not investigating all things hardware here, she's either constructing a passionate defence of a 7/10 game, daydreaming about her debut novel, or feeling wistful about the last time she chased some nerds around a field with an oversized foam sword.\u0026nbsp;","name":"Jess","fullName":"Jess Kinghorn","handle":"jess-kinghorn","role":"Hardware Writer","image":"https://cdn.mos.cms.futurecdn.net/cMDJJibKgeMg3wogzv9AgY.png","brandKey":"pcgamer","socialNetworks":[{"key":"twitter","href":"https://twitter.com/KoeniginKatze","label":"X (Twitter)"},{"key":"linkedin","href":"https://www.linkedin.com/in/jess-kinghorn","label":"LinkedIn"}]}],"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"activeDealTag":null,"activeFreeformTag":null,"activeFreeformTags":[],"couponMap":{"Amazon":"has","Bestbuy":"none","Newegg":"none","Walmart":"none"},"totalAuthorCount":5,"totalDealCount":56,"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"reviewInventoryBaked":false,"regionalDealManifests":{"US":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-0","url":"https://www.amazon.com/Logitech-LIGHTSYNC-Wired-Gaming-Mouse/dp/B07YN82X3B/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":25.99,"rawMsrp":34.99,"price":"25.99","msrp":"34.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $9","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed Price check:Best Buy $39.99","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g203-lightsync-wired-optical-gaming-mouse-with-8000-dpi-sensor-white/6409362.p?skuId=6409362\" target=\"_blank\"\u003eBest Buy $39.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-0","url":"https://www.amazon.com/GLORIOUS-GHS-Eternal-Adjustable-Detachable/dp/B0GHZPFZ7R?th=1","image":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/AJ9J3xmw76BBiXYbhAtpX9.png","title":"GHS Eternal | 40 mm drivers","brand":"Glorious","productName":"GHS Eternal | 40 mm drivers","merchant":"Amazon","rawPrice":26.31,"rawMsrp":59.99,"price":"26.31","msrp":"59.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $33.68","savingType":"amount","isPrime":false,"starRating":null,"description":"With a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. Key specs: 40 mm drivers | 20 hz - 20 kHz | 255 g","text":"\u003cp\u003eWith a solid build quality, good compatibility and sweet design, the Glorious GHS is a thoroughly middle-of-the-pack budget gaming headset, but is a bit of a steal with a third off. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20 hz - 20 kHz | 255 g\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-1","url":"https://www.amazon.com/Logitech-LIGHTSPEED-Wireless-Gaming-Mouse/dp/B07CMS5Q6P/?th=1","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite budget wireless mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills. Key specs: Wireless | 12,000 DPI | Right-handed Price check: Best Buy $49.99","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite budget wireless mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/product/logitech-g305-lightspeed-wireless-optical-6-programmable-button-gaming-mouse-with-12000-dpi-hero-sensor-wireless-white/J7H7ZY2ZYR\" target=\"_blank\"\u003eBest Buy $49.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-86","url":"https://www.amazon.com/dp/B07CMS5Q6P","image":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","fallbackImage":"https://cdn.mos.cms.futurecdn.net/dpuXF5Uxu6UiYvVTFQgMMT.png","title":"G305 Lightspeed","brand":"Logitech","productName":"G305 Lightspeed","merchant":"Amazon","rawPrice":29.99,"rawMsrp":49.99,"price":"29.99","msrp":"49.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $20","savingType":"amount","isPrime":false,"starRating":null,"description":"Already reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason. Key specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life","text":"\u003cp\u003eAlready reasonably priced, who could say no to this charming rodent at a deep discount? Offering precision and durability with buttons rated for 10 million clicks—plus an array of fetching colours—this remains a great budget pick for good reason.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless gaming mouse | Hero sensor | 12K CPI | 5 programmable buttons | 99 g weight | 200 hour battery life\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-vCxWr8kxLPhtdqNjq9cgjZ-87","url":"https://www.bestbuy.com/product/razer-basilisk-v3-optical-gaming-mouse-with-chroma-rbg-lighting-wired-black/J3GTVWWXLS","image":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/N9iH8xZ8SztLJ9SyQsufAP.jpg","title":"Basilisk V3","brand":"Razer","productName":"Basilisk V3","merchant":"Bestbuy","rawPrice":34.98,"rawMsrp":69.99,"price":"34.98","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $35.01","savingType":"amount","isPrime":false,"starRating":null,"description":"This mouse might be a few years old, but we scored it highly in our review in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to tempt even those who usually hate RGB lighting. Key specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g","text":"\u003cp\u003eThis mouse might be a few years old, but we scored it highly in \u003ca href=\"https://www.pcgamer.com/razer-basilisk-v3-gaming-mouse-review/\" target=\"_blank\"\u003eour review\u003c/a\u003e in part thanks to that lovely ergonomic design. It also has some lush underglow RGB that's sure to \u003ca href=\"https://www.pcgamer.com/hardware/im-ashamed-to-say-that-this-razer-mouse-has-made-me-actually-take-a-shine-to-rgb-and-now-you-can-be-persuaded-too-for-almost-50-percent-off/\" target=\"_blank\"\u003etempt even those who usually hate RGB lighting\u003c/a\u003e.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired gaming mouse | 26K DPI | 11 buttons | 100 g\u003c/strong\u003e\u003c/p\u003e","authorName":"James Bentley","authorRole":"Hardware writer","authorImage":"https://cdn.mos.cms.futurecdn.net/PVsHAkx27zJptZHndizEAE.png","documentUrl":"labor-day-pc-gaming-deals","modifiedDate":"2026-09-07T11:22:09Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-3","url":"https://www.amazon.com/Logitech-G502-Performance-Gaming-Mouse/dp/B07GBZ4Q68/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":37.99,"rawMsrp":69.99,"price":"37.99","msrp":"69.99","currency":"$","isoCurrency":"USD","isCheckPrice":false,"savingLabel":"Save $32","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. Key specs: Wired | 25,600 DPI | Right-handed Price check:Best Buy $69.99","text":"\u003cp\u003eThis is a substantial discount on a tried and tested Logitech gaming mouse, with a large amount of customisation. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customizable buttons, and comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. \u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check:\u003c/strong\u003e\u003ca href=\"https://www.bestbuy.com/site/logitech-g502-hero-wired-optical-gaming-mouse-with-rgb-lighting-black/6265133.p?skuId=6265133\" target=\"_blank\"\u003eBest Buy $69.99\u003c/a\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true}],"GB":[{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-10","url":"https://www.amazon.co.uk/Logitech-Lightsync-Customizable-Lighting-Programmable/dp/B07W5JKFQC/","image":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","fallbackImage":"http://cdn.mos.cms.futurecdn.net/qgFqUinn2HCKHEThJ47QpC.jpg","title":"G203 | Wired","brand":"Logitech","productName":"G203 | Wired","merchant":"Amazon","rawPrice":19.99,"rawMsrp":30.99,"price":"19.99","msrp":"30.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £11","savingType":"amount","isPrime":false,"starRating":null,"description":"Perfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral. Key specs: Wired | 8,000 DPI | Right-handed","text":"\u003cp\u003ePerfect as a starter or low-budget option with a list of useful features like 6 programmable buttons, Lightsync RGB effects and a ton of customisation via Logitech's G Hub software, this mouse proves that you don't need to go fancy to get a great gaming peripheral.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 8,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-11","url":"https://www.amazon.co.uk/Logitech-Wireless-Lightweight-Programmable-compatible/dp/B07CGPZ3ZQ","image":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/krHdzSvvW5EskC6Keg74P9.jpg","title":"G305 Lightspeed | Wireless","brand":"Logitech","productName":"G305 Lightspeed | Wireless","merchant":"Amazon","rawPrice":19.99,"rawMsrp":27.99,"price":"19.99","msrp":"27.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £8","savingType":"amount","isPrime":false,"starRating":null,"description":"The Logitech G305 Lightspeed is our favorite wireless budget mouse—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays. Key specs: Wireless | 12,000 DPI | Right-handed","text":"\u003cp\u003eThe Logitech G305 Lightspeed is our\u003ca href=\"https://www.pcgamer.com/the-best-gaming-mouse/#section-the-best-budget-wireless-gaming-mouse\" target=\"_blank\"\u003e favorite wireless budget mouse\u003c/a\u003e—it's nothing fancy, but it's lightweight, has great battery life, and uses a killer sensor. The only thing to note is that this deal isn't necessarily that out of left field—the G305 hasn't been at full price for a while, but it's still worth snagging if you need a nice budget option with no frills in time for the holidays.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wireless | 12,000 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-19","url":"https://www.amazon.co.uk/JBL-Quantum-Gaming-Wired-Over-ear-Black/dp/B083X24CFF/","image":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/QpbyfGXi5wHEk3EUKrQ3cb.jpg","title":"Quantum 100 | 40 mm drivers","brand":"JBL","productName":"Quantum 100 | 40 mm drivers","merchant":"Amazon","rawPrice":19.99,"rawMsrp":29.99,"price":"19.99","msrp":"29.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £10","savingType":"amount","isPrime":false,"starRating":null,"description":"JBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired","text":"\u003cp\u003eJBL has a reputation for good audio quality, and this headset is hard to argue with at this price. Featuring JBL's \u0026quot;Quantum Sound Signature\u0026quot;, memory foam ear cushions and a good quality detachable boom microphone, it's difficult to think of a better value headset for the money.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-DpQ8P8QRZKyquhjyAvtzVT-12","url":"https://www.amazon.co.uk/Logitech-Programmable-Buttons-Computer-Adjustable/dp/B07GS6ZB7T/","image":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/SaXBHtPWoMGvzcyvsLNQQX.jpg","title":"G502 Hero | Wired","brand":"Logitech","productName":"G502 Hero | Wired","merchant":"Amazon","rawPrice":22.01,"rawMsrp":37.79,"price":"22.01","msrp":"37.79","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £15.78","savingType":"amount","isPrime":false,"starRating":null,"description":"This is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness. Key specs: Wired | 25,600 DPI | Right-handed","text":"\u003cp\u003eThis is a tried and tested Logitech gaming mouse, with an astonishing amount of customisation potential. The G502 Hero uses the Hero 25K sensor for accuracy, 11 customisable buttons with onboard memory, and even comes with five removable weights to adjust the feel for even the pickiest of competitive gamers. The two main buttons use mechanical switch tensioning to make every click feel satisfying, and the programmable RGB lighting finishes off this comprehensive package of gaming mouse goodness.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: Wired | 25,600 DPI | Right-handed\u003c/strong\u003e\u003c/p\u003e","authorName":"Dave James","authorRole":"Editor-in-Chief, Hardware","authorImage":"https://cdn.mos.cms.futurecdn.net/Ti9gYoetCsh9crRvpUzKD9.png","documentUrl":"hardware/gaming-mice/best-october-prime-day-gaming-mouse-deals","modifiedDate":"2026-09-28T13:33:10Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-23","url":"https://www.amazon.co.uk/Logitech-LIGHTSPEED-Wireless-Bluetooth-Nintendo/dp/B0FL7NNGRG?th=1","image":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/jMLjXCziHPvivaafPHDC6Z.jpg","title":"G321 Lightspeed | 40 mm drivers","brand":"Logitech","productName":"G321 Lightspeed | 40 mm drivers","merchant":"Amazon","rawPrice":32.99,"rawMsrp":59.99,"price":"32.99","msrp":"59.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £27","savingType":"amount","isPrime":false,"starRating":null,"description":"This very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in his review. It won't blow you away with bass or features, but at this price it's still worth considering. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless Price check: Currys £42.99","text":"\u003cp\u003eThis very lightweight, very comfortable headset has a balanced sound profile to match, as our James found in \u003ca href=\"https://www.pcgamer.com/hardware/gaming-headsets/logitech-g321-lightspeed-review/\" target=\"_blank\"\u003ehis review\u003c/a\u003e. It won't blow you away with bass or features, but at this price it's still worth considering.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wireless \u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g321-lightspeed-wireless-bluetooth-gaming-headset-black-10289632.html\" target=\"_blank\"\u003eCurrys £42.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-3XCZfpsYgsNo9mNRWv4oSg-20","url":"https://www.amazon.co.uk/Logitech-Microphone-Comfortable-Lightweight-PlayStation/dp/B07W6J6TG5/","image":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/4zYtRMX5cd9pAbB5K6yiNa.jpg","title":"G335 | 40 mm drivers","brand":"Logitech","productName":"G335 | 40 mm drivers","merchant":"Amazon","rawPrice":34.99,"rawMsrp":64.99,"price":"34.99","msrp":"64.99","currency":"£","isoCurrency":"GBP","isCheckPrice":false,"savingLabel":"Save £30","savingType":"amount","isPrime":false,"starRating":null,"description":"This Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans. Key specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired Price check: Currys £34.99","text":"\u003cp\u003eThis Logitech headset is a lightweight marvel with memory foam earphone pads and a refined yet colourful aesthetic. The 40mm neodymium drivers are well-rounded and it comes with a handy in-line volume control on its extra-long wire. The microphone is nothing to write home about, but for this price these make an excellent entry-level set of cans.\u003c/p\u003e\u003cp\u003e\u003cstrong\u003eKey specs: 40 mm drivers | 20-20,000Hz | Closed-back | Wired\u003c/strong\u003e\u003c/p\u003e\u003cp\u003e\u003cstrong\u003ePrice check: \u003c/strong\u003e\u003ca href=\"https://www.currys.co.uk/products/logitech-g335-gaming-headset-black-10227173.html\" target=\"_blank\"\u003eCurrys £34.99\u003c/a\u003e\u003c/p\u003e","authorName":"Andy Edser","authorRole":"Hardware Writer","authorImage":"https://cdn.mos.cms.futurecdn.net/ZGont4SjJV38V5HWmjfNAE.png","documentUrl":"hardware/gaming-headsets/the-best-amazon-prime-day-2026-gaming-headset-deals-im-hunting-down-the-best-sounding-cans-for-the-lowest-prices","modifiedDate":"2026-09-28T12:20:35Z","isFeatured":false,"hasCommerceOffer":true}],"AU":[{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-5","url":"https://www.amazon.com.au/JBL-QuantumSOUND-Signature-Comfortable-Breathable/dp/B0D6NLHV8N","image":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cvnYTUETxZSPZrZFK8PUMG.jpg","title":"Quantum 100M2","brand":"JBL","productName":"Quantum 100M2","merchant":"Amazon","rawPrice":29,"rawMsrp":59.95,"price":"29","msrp":"59.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$30.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.","text":"\u003cp\u003eIf you're hell bent on keeping costs low, JBL’s Quantum 100M2 is cheap as chips—especially if you happen to be buying AU$29 worth of chips. These aren't fancy but they do work, with a boom mic, breathable ear cushions, and a stripped-back design.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-1","url":"https://www.amazon.com.au/dp/B0CMCPY4VG","image":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/soVwABeC6nbkWkMrnx2xcR.jpg","title":"Nova Lite","brand":"GameSir","productName":"Nova Lite","merchant":"Amazon","rawPrice":32,"rawMsrp":45,"price":"32","msrp":"45","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$13","savingType":"amount","isPrime":false,"starRating":null,"description":"Our favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.","text":"\u003cp\u003eOur favourite budget PC controller gets a discount that brings it into impulse-buy territory. There's a lot to love at this price point: 2.4Ghz wireless connectivity, Bluetooth, a wired option via the Type-C port, and ten hours of battery life. The build quality isn't the sturdiest going around, and there's no audio jack, but this is a great piece of kit for well under AU$50.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-15","url":"https://www.amazon.com.au/dp/B07MG5547J","image":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/CpEke9LRsjxAHdxrhG7A8X.jpg","title":"G502 Hero","brand":"Logitech","productName":"G502 Hero","merchant":"Amazon","rawPrice":55.99,"rawMsrp":149.95,"price":"55.99","msrp":"149.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$93.96","savingType":"amount","isPrime":false,"starRating":null,"description":"Logitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;","text":"\u003cp\u003eLogitech's 502 series is extremely well regarded, and this Hero version saw an upgrade to the sensor. They're famed for their reliability and flawless operation. They also look glorious, eschewing today's minimalist looks for a statement that says \u0026quot;that's right, I'm dangerous.\u0026quot;\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-8","url":"https://www.amazon.com.au/CORSAIR-Membrane-Wired-Gaming-Keyboard/dp/B0CP6BR96G","image":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/hCzSayyAe4ZYCjzREFjJYF.jpg","title":"K55 Core Membrane","brand":"Corsair","productName":"K55 Core Membrane","merchant":"Amazon","rawPrice":59,"rawMsrp":79.95,"price":"59","msrp":"79.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$20.95","savingType":"amount","isPrime":false,"starRating":null,"description":"This discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.","text":"\u003cp\u003eThis discount makes an affordable keyboard much more so, dipping it into impulse buy territory. Membrane keyboards aren't for everyone - they lack the gratifying tactility of their mechanical siblings—but if you like 'em, or are curious, this is a trick. It's a wired affair with ten-zone RGB, spill resistance, and—naturally unusually quiet button presses.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-11","url":"https://www.amazon.com.au/dp/B01K48R5V4","image":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","fallbackImage":"https://cdn.mos.cms.futurecdn.net/ZcBJ4EUisHsNDt77uYcuWK.webp","title":"G G213 Prodigy","brand":"Logitech","productName":"G G213 Prodigy","merchant":"Amazon","rawPrice":72,"rawMsrp":129.95,"price":"72","msrp":"129.95","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$57.95","savingType":"amount","isPrime":false,"starRating":null,"description":"If you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.","text":"\u003cp\u003eIf you fancy a new keyboard but are averse to spending more than AU$100, this Logitech slab will prove mighty irresistible. We haven't reviewed it, but we've tested tonnes of great Logitech gear, and at this price you're getting some great features including \u0026quot;spill resistance\u0026quot; and the full RGB experience.\u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true},{"id":"airedale-KZZhYzyEWnMMHMP5SjoAbU-13","url":"https://www.amazon.com.au/CORSAIR-Sabre-Ultralight-Wireless-Gaming/dp/B0FKJ2J2R8/","image":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","fallbackImage":"https://cdn.mos.cms.futurecdn.net/cW72DJwAyNRGpScgFDYEWg.jpg","title":"Sabre v2 Pro","brand":"Corsair","productName":"Sabre v2 Pro","merchant":"Amazon","rawPrice":79,"rawMsrp":169,"price":"79","msrp":"169","currency":"A$","isoCurrency":"AUD","isCheckPrice":false,"savingLabel":"Save A$90","savingType":"amount","isPrime":false,"starRating":null,"description":"The Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox loved its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life.","text":"\u003cp\u003eThe Corsair Sabre V2 Pro is one of PC Gamer's best reviewed gaming mice of 2025. Jacob Fox \u003ca href=\"https://www.pcgamer.com/hardware/gaming-mice/corsair-sabre-v2-pro-ultralight-wireless-gaming-mouse-review/\"\u003eloved\u003c/a\u003e its near-impossible lightness (36g!), app-free ease of use, brilliant sensor and robust build, though didn't like that it can only store one onboard profile. Look at the specs: 8,000Hz Hyper-Polling, 33,000 DPI, and up to 70 hours of battery life. \u003c/p\u003e","authorName":"Shaun Prescott","authorRole":"Australian Editor","authorImage":"https://cdn.mos.cms.futurecdn.net/W7q4asCziYRHUEennZcpyC.png","documentUrl":"best-amazon-prime-day-pc-gaming-deals-in-australia","modifiedDate":"2026-09-28T04:01:12Z","isFeatured":false,"hasCommerceOffer":true}]},"regionalDealRailData":{"US":{"brands":[{"formatted_value":"Acer","count":13},{"formatted_value":"Samsung","count":12},{"formatted_value":"MSI","count":11},{"formatted_value":"Logitech","count":7},{"formatted_value":"HyperX","count":5},{"formatted_value":"LG","count":5},{"formatted_value":"Razer","count":4},{"formatted_value":"Yawyore","count":3},{"formatted_value":"Koorui","count":3},{"formatted_value":"ASRock","count":3},{"formatted_value":"Kingston","count":2},{"formatted_value":"Crucial","count":2},{"formatted_value":"Team Group","count":2},{"formatted_value":"Lenovo","count":2},{"formatted_value":"Skytech","count":2},{"formatted_value":"Gigabyte","count":2},{"formatted_value":"Asus","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"Glorious","count":1},{"formatted_value":"Nothing","count":1},{"formatted_value":"HP","count":1},{"formatted_value":"KTC","count":1},{"formatted_value":"Innocn","count":1},{"formatted_value":"Corsair","count":1},{"formatted_value":"SteelSeries","count":1},{"formatted_value":"Scuf","count":1}],"freeformTagCounts":{"hardware":66,"mouse":6,"gaming-mouse":6,"prime-day":6,"amazon-prime-day-2026":12,"amazon-prime-day":30,"prime-day-deals":24,"deals":31,"deal":32,"big-deal-days":30,"gaming-headset":6,"amazon-prime":18,"ssd":4,"pc-deals":18,"gaming-laptops":4,"intel":6,"nvidia":4,"radeon":2,"gaming-pc":3,"gaming-monitor":9,"ryzen":2,"monitors":8,"solid-state-drive":4,"solid-state":4,"hdd":4,"hard-drive":4,"storage":4,"gaming-laptop":4,"budget":4,"cheap":4,"labor-day":38,"gaming-pc-deals":1,"collections":1,"control-pad":1,"gamepad":1,"scuf-gaming":1,"scuf-valor-pro":1,"scuf-valor-pro-wired":1,"wired":1,"wired-controller":1,"scuf":1,"wired-gamepad":1,"pc-controller":1,"monitor":1,"monitor-deals":1,"4k-monitor":1,"gaming-monitor-deal":1,"4k":1,"4k-gaming":1,"acer":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"labor-day","label":"labor day","requestValue":"labor day"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"intel","label":"Intel","requestValue":"Intel"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"gaming-laptops","label":"gaming laptops","requestValue":"gaming laptops"},{"handle":"nvidia","label":"Nvidia","requestValue":"Nvidia"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"},{"handle":"gaming-laptop","label":"gaming laptop","requestValue":"gaming laptop"},{"handle":"budget","label":"budget","requestValue":"budget"},{"handle":"cheap","label":"cheap","requestValue":"cheap"},{"handle":"gaming-pc","label":"gaming pc","requestValue":"gaming pc"},{"handle":"radeon","label":"Radeon","requestValue":"Radeon"},{"handle":"ryzen","label":"Ryzen","requestValue":"Ryzen"},{"handle":"gaming-pc-deals","label":"gaming PC deals","requestValue":"gaming PC deals"},{"handle":"collections","label":"collections","requestValue":"collections"},{"handle":"control-pad","label":"control pad","requestValue":"control pad"},{"handle":"gamepad","label":"gamepad","requestValue":"gamepad"},{"handle":"scuf-gaming","label":"Scuf Gaming","requestValue":"Scuf Gaming"},{"handle":"scuf-valor-pro","label":"Scuf Valor Pro","requestValue":"Scuf Valor Pro"},{"handle":"scuf-valor-pro-wired","label":"Scuf Valor Pro wired","requestValue":"Scuf Valor Pro wired"},{"handle":"wired","label":"wired","requestValue":"wired"},{"handle":"wired-controller","label":"wired controller","requestValue":"wired controller"},{"handle":"scuf","label":"Scuf","requestValue":"Scuf"},{"handle":"wired-gamepad","label":"wired gamepad","requestValue":"wired gamepad"},{"handle":"pc-controller","label":"PC controller","requestValue":"PC controller"},{"handle":"monitor","label":"monitor","requestValue":"monitor"},{"handle":"monitor-deals","label":"Monitor deals","requestValue":"Monitor deals"},{"handle":"4k-monitor","label":"4K monitor","requestValue":"4K monitor"},{"handle":"gaming-monitor-deal","label":"Gaming Monitor deal","requestValue":"Gaming Monitor deal"},{"handle":"4k","label":"4K","requestValue":"4K"},{"handle":"4k-gaming","label":"4K gaming","requestValue":"4K gaming"},{"handle":"acer","label":"Acer","requestValue":"Acer"}],"tagCounts":{"Gaming Mice":6,"Hardware":66,"Gaming Headsets":6,"Gaming Audio":6,"SSDs":4,"Storage":4,"Gaming Laptops":4,"Gaming PCs":7,"Gaming Monitors":9,"Controllers":1},"tags":["Hardware","Gaming Monitors","Gaming PCs","Gaming Mice","Gaming Headsets","Gaming Audio","SSDs","Storage","Gaming Laptops","Controllers"],"totalAuthorCount":5,"totalDealCount":56},"GB":{"brands":[{"formatted_value":"Logitech","count":6},{"formatted_value":"Steelseries","count":2},{"formatted_value":"EarFun","count":2},{"formatted_value":"Lexar","count":2},{"formatted_value":"AOC","count":2},{"formatted_value":"MSI","count":2},{"formatted_value":"JBL","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Turtle Beach","count":1}],"freeformTagCounts":{"hardware":17,"mouse":5,"gaming-mouse":5,"prime-day":5,"amazon-prime-day-2026":14,"amazon-prime-day":17,"prime-day-deals":8,"deals":17,"deal":17,"big-deal-days":17,"gaming-headset":9,"amazon-prime":3,"ssd":1,"pc-deals":3,"gaming-monitor":2,"monitors":2,"solid-state-drive":1,"solid-state":1,"hdd":1,"hard-drive":1,"storage":1},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime-day","label":"Amazon Prime Day","requestValue":"Amazon Prime Day"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"deal","label":"deal","requestValue":"deal"},{"handle":"big-deal-days","label":"Big Deal Days","requestValue":"Big Deal Days"},{"handle":"amazon-prime-day-2026","label":"Amazon Prime Day 2026","requestValue":"Amazon Prime Day 2026"},{"handle":"gaming-headset","label":"gaming headset","requestValue":"gaming headset"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"},{"handle":"mouse","label":"mouse","requestValue":"mouse"},{"handle":"gaming-mouse","label":"gaming mouse","requestValue":"gaming mouse"},{"handle":"prime-day","label":"Prime Day","requestValue":"Prime Day"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"gaming-monitor","label":"gaming monitor","requestValue":"gaming monitor"},{"handle":"monitors","label":"monitors","requestValue":"monitors"},{"handle":"ssd","label":"SSD","requestValue":"SSD"},{"handle":"solid-state-drive","label":"solid state drive","requestValue":"solid state drive"},{"handle":"solid-state","label":"solid state","requestValue":"solid state"},{"handle":"hdd","label":"HDD","requestValue":"HDD"},{"handle":"hard-drive","label":"Hard Drive","requestValue":"Hard Drive"},{"handle":"storage","label":"storage","requestValue":"storage"}],"tagCounts":{"Gaming Mice":5,"Hardware":17,"Gaming Headsets":9,"Gaming Audio":9,"SSDs":1,"Storage":1,"Gaming Monitors":2},"tags":["Hardware","Gaming Headsets","Gaming Audio","Gaming Mice","Gaming Monitors","SSDs","Storage"],"totalAuthorCount":4,"totalDealCount":17},"AU":{"brands":[{"formatted_value":"Logitech","count":7},{"formatted_value":"Corsair","count":4},{"formatted_value":"JBL","count":2},{"formatted_value":"Turtle Beach","count":1},{"formatted_value":"GameSir","count":1},{"formatted_value":"8BitDo","count":1},{"formatted_value":"HyperX","count":1},{"formatted_value":"Asus","count":1},{"formatted_value":"Razer","count":1},{"formatted_value":"SteelSeries","count":1}],"freeformTagCounts":{"hardware":20,"amazon-prime":20,"pc-deals":20,"deals":20,"prime-day-deals":20},"freeformTags":[{"handle":"hardware","label":"Hardware","requestValue":"Hardware"},{"handle":"amazon-prime","label":"Amazon Prime","requestValue":"Amazon Prime"},{"handle":"pc-deals","label":"PC deals","requestValue":"PC deals"},{"handle":"deals","label":"Deals","requestValue":"Deals"},{"handle":"prime-day-deals","label":"prime day deals","requestValue":"prime day deals"}],"tagCounts":{"Hardware":20},"tags":["Hardware"],"totalAuthorCount":1,"totalDealCount":20}}}(()=>{var Z1=Object.create;var cg=Object.defineProperty;var W1=Object.getOwnPropertyDescriptor;var I1=Object.getOwnPropertyNames;var J1=Object.getPrototypeOf,$1=Object.prototype.hasOwnProperty;var un=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var eb=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of I1(t))!$1.call(e,l)&&l!==n&&cg(e,l,{get:()=>t[l],enumerable:!(a=W1(t,l))||a.enumerable});return e};var B=(e,t,n)=>(n=e!=null?Z1(J1(e)):{},eb(t||!e||!e.__esModule?cg(n,"default",{value:e,enumerable:!0}):n,e));var Ag=un(z=>{"use strict";var Tc=Symbol.for("react.transitional.element"),tb=Symbol.for("react.portal"),nb=Symbol.for("react.fragment"),ab=Symbol.for("react.strict_mode"),lb=Symbol.for("react.profiler"),ib=Symbol.for("react.consumer"),rb=Symbol.for("react.context"),ob=Symbol.for("react.forward_ref"),ub=Symbol.for("react.suspense"),cb=Symbol.for("react.memo"),mg=Symbol.for("react.lazy"),sb=Symbol.for("react.activity"),sg=Symbol.iterator;function db(e){return e===null||typeof e!="object"?null:(e=sg&&e[sg]||e["@@iterator"],typeof e=="function"?e:null)}var hg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},pg=Object.assign,yg={};function ml(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}ml.prototype.isReactComponent={};ml.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};ml.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function vg(){}vg.prototype=ml.prototype;function Ec(e,t,n){this.props=e,this.context=t,this.refs=yg,this.updater=n||hg}var Dc=Ec.prototype=new vg;Dc.constructor=Ec;pg(Dc,ml.prototype);Dc.isPureReactComponent=!0;var dg=Array.isArray;function Rc(){}var he={H:null,A:null,T:null,S:null},bg=Object.prototype.hasOwnProperty;function xc(e,t,n){var a=n.ref;return{$$typeof:Tc,type:e,key:t,ref:a!==void 0?a:null,props:n}}function fb(e,t){return xc(e.type,t,e.props)}function Mc(e){return typeof e=="object"&&e!==null&&e.$$typeof===Tc}function gb(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var fg=/\/+/g;function Cc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?gb(""+e.key):t.toString(36)}function mb(e){switch(e.status){case"fulfilled":return e.value;case"rejected":throw e.reason;default:switch(typeof e.status=="string"?e.then(Rc,Rc):(e.status="pending",e.then(function(t){e.status==="pending"&&(e.status="fulfilled",e.value=t)},function(t){e.status==="pending"&&(e.status="rejected",e.reason=t)})),e.status){case"fulfilled":return e.value;case"rejected":throw e.reason}}throw e}function gl(e,t,n,a,l){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var r=!1;if(e===null)r=!0;else switch(i){case"bigint":case"string":case"number":r=!0;break;case"object":switch(e.$$typeof){case Tc:case tb:r=!0;break;case mg:return r=e._init,gl(r(e._payload),t,n,a,l)}}if(r)return l=l(e),r=a===""?"."+Cc(e,0):a,dg(l)?(n="",r!=null&&(n=r.replace(fg,"$&/")+"/"),gl(l,t,n,"",function(c){return c})):l!=null&&(Mc(l)&&(l=fb(l,n+(l.key==null||e&&e.key===l.key?"":(""+l.key).replace(fg,"$&/")+"/")+r)),t.push(l)),1;r=0;var o=a===""?".":a+":";if(dg(e))for(var u=0;u>1;aoo(o,n))uoo(c,o)?(e[a]=c,e[u]=n,a=u):(e[a]=o,e[r]=n,a=r);else if(uoo(c,n))e[a]=c,e[u]=n,a=u;else break e}}return t}function oo(e,t){var n=e.sortIndex-t.sortIndex;return n!==0?n:e.id-t.id}Se.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(Sg=performance,Se.unstable_now=function(){return Sg.now()}):(_c=Date,Cg=_c.now(),Se.unstable_now=function(){return _c.now()-Cg});var Sg,_c,Cg,wn=[],Qn=[],yb=1,Ut=null,et=3,kc=!1,Mi=!1,_i=!1,Lc=!1,Eg=typeof setTimeout=="function"?setTimeout:null,Dg=typeof clearTimeout=="function"?clearTimeout:null,Rg=typeof setImmediate0?t.reduce((n,a)=>a&&a.lengtha(r.target.value),children:[(0,Fn.jsx)("option",{value:"",style:{textAlign:"left"},children:Zw({articles:e,authorHandle:t,authorName:n})}),e.map(r=>{let o=i?.[r.id]||Ww(r);return o&&o.length>38&&(o=o.substring(0,36)+"\u2026"),(0,Fn.jsx)("option",{value:r.id,style:{textAlign:"left"},children:o},r.id)})]})]})})}var A0=B(ft(),1);function o0(e,t=new Date){if(!e)return"";let n=new Date(e),a=Math.floor((t.getTime()-n.getTime())/1e3);if(a1?"s":""} ago`}function Iw(e){return e.replace(//gi," ").replace(/]*>/gi," ").replace(//gi," ").replace(/[\r\n]+/g," ").replace(/\s+/g," ").trim()}function _r(e,t,n){let a="";return n==="short"?a=e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"":a=e.articleauthorlongbio&&e.articleauthorlongbio[t]&&e.articleauthorlongbio[t]!=="null"?e.articleauthorlongbio[t]:e.articleauthorbio&&e.articleauthorbio[t]&&e.articleauthorbio[t]!=="null"?e.articleauthorbio[t]:"",a?Iw(a):""}function u0(e,t){return e.articleauthorrole&&e.articleauthorrole[t]&&e.articleauthorrole[t]!=="null"?e.articleauthorrole[t]:""}function c0(e,t){return e.articleauthormedia&&e.articleauthormedia[t]?e.articleauthormedia[t]:""}function ri(e){if(typeof e!="string"||!e.trim())return"";try{let t=new URL(e);if(t.hostname.toLowerCase()!=="cdn.mos.cms.futurecdn.net")return e;let n=/\.(?:jpe?g|png|webp)$/i;return!n.test(t.pathname)||/-\d+-\d+\.(?:jpe?g|png|webp)$/i.test(t.pathname)?e:(t.pathname=t.pathname.replace(n,"-480-80$&"),t.toString())}catch{return e}}function Uu(e,t=0){if(!e||!e.articleauthorsocialnetworks)return[];let n=e.articleauthorsocialnetworks[t];if(n||(n=e.articleauthorsocialnetworks[0]),!n)return[];let a=null;if(typeof n=="string")try{a=JSON.parse(n)}catch{try{a=JSON.parse(n.replace(/\\"/g,'"'))}catch{}}else typeof n=="object"&&n!==null&&(a=n);if(!a||typeof a!="object")return[];let l=[];for(let[i,r]of Object.entries(a)){if(!r)continue;let o="",u="";if(typeof r=="string"?o=r:typeof r=="object"&&r!==null&&(o=r.url||r.address||r.link||"",u=r.address||""),!o&&!u)continue;let c=i.toLowerCase().trim(),s=o||u;c==="email"?s.startsWith("mailto:")||(s=s.includes("@")?`mailto:${s}`:`mailto:${s}`):!s.startsWith("http://")&&!s.startsWith("https://")&&!s.startsWith("//")&&(s=`https://${s}`);let f=c.charAt(0).toUpperCase()+c.slice(1);c==="linkedin"?f="LinkedIn":c==="youtube"?f="YouTube":c==="tiktok"?f="TikTok":c==="twitch"?f="Twitch":c==="steam"?f="Steam":c==="github"?f="GitHub":c==="rss"?f="RSS":(c==="x"||c==="twitter")&&(f="X (Twitter)"),l.push({key:c,href:s,label:f})}return l}function ee(e){if(!e)return"";let t=String(e);for(let n=0;nString.fromCharCode(Number(i))).replace(/([0-9a-f]+);/gi,(l,i)=>String.fromCharCode(parseInt(i,16)));if(a===t)break;t=a}return t}var Ee=B(O(),1);function cf({authorUrl:e,deal:t}){if(!t.authorName)return null;let n=ee(String(t.authorName)),a=t.authorRole&&!["null","nul","undefined"].includes(String(t.authorRole).toLowerCase())?` \u2022 ${ee(String(t.authorRole))}`:"";return(0,Ee.jsx)("div",{className:"tg-df-author-line-desktop",style:{padding:"0 0 12px 0"},children:(0,Ee.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t.authorImage&&(0,Ee.jsx)("img",{src:ri(t.authorImage),alt:n,className:"tg-df-author-img",width:"36",height:"36",style:{borderRadius:"50%",objectFit:"cover",flexShrink:0,aspectRatio:"1 / 1",minWidth:"36px",minHeight:"36px"}}),(0,Ee.jsxs)("div",{style:{display:"flex",flexDirection:"column"},children:[(0,Ee.jsx)("div",{style:{fontSize:"10px",color:"var(--tg-df-text-muted)",textTransform:"uppercase",letterSpacing:"0.5px",marginBottom:"2px",fontWeight:600},children:t.isReviewProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Product tested by:"}):t.isBuyingGuideProduct?(0,Ee.jsx)(Ee.Fragment,{children:"Expert review by:"}):t.isFeatured?(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:"Top product"})," ","recommended by:"]}):(0,Ee.jsxs)(Ee.Fragment,{children:[(0,Ee.jsx)("span",{style:{color:"#FF6600"},children:t.merchant})," ","deal recommended by:"]})}),(0,Ee.jsxs)("div",{style:{fontSize:"11px",color:"var(--tg-df-text)",lineHeight:1.2},children:[(0,Ee.jsx)("strong",{children:(0,Ee.jsx)("a",{href:e,target:"_blank",rel:"noopener",style:{textDecoration:"none",color:"inherit",borderBottom:"1px dotted var(--tg-df-text-muted)"},children:n})}),a,t.modifiedDate?(0,Ee.jsxs)("span",{style:{color:"var(--tg-df-text-muted)"},children:[" ","\u2022 ",o0(t.modifiedDate)]}):""]})]})]})})}var K=B(O(),1);function s0({authorUrl:e,deal:t,hideHawkPrices:n,msrpFormatted:a,sourceArticleUrl:l}){let i=ee(String(t.merchant||"")),r=ee(String(t.currency||""));if(t.isBuyingGuideProduct||t.isReviewProduct){let o=!!t.hasCommerceOffer,u=o&&!t.isCheckPrice,c=!!t.hawkPricePending,s=!!t.isReviewProduct&&!c&&!o,f=n&&o&&Array.isArray(t.hawkListings)?t.hawkListings.filter(m=>m?.merchant&&m?.url).slice(0,4):[],d=f.length>0;return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[c?(0,K.jsx)("div",{className:"tg-df-card-price-group","aria-live":"polite",children:(0,K.jsx)("span",{className:"tg-df-card-price",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"Checking live price\u2026"})}):d?(0,K.jsxs)("div",{className:"tg-df-card-listings",children:[(0,K.jsx)("span",{className:"tg-df-card-listings-title",children:"Today's cheapest prices:"}),(0,K.jsx)("div",{className:"tg-df-card-listings-links",children:f.map((m,v)=>{let A=ee(String(m.merchant));return(0,K.jsx)("a",{"aria-label":`View product at ${A}`,className:"tg-df-card-listing-link hawk-affiliate-link-container","data-fcaw-affiliate-link":"","data-merchant":A,"data-merchant-id":m.merchantId||void 0,"data-model-id":m.modelId||void 0,"data-product-key":m.productKey||void 0,href:m.url,rel:"sponsored nofollow noopener",target:"_blank",children:A},`${m.merchant}-${m.url}-${v}`)})})]}):u?(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsxs)("div",{className:"tg-df-card-price-group",children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})]}):s?(0,K.jsx)("div",{className:"tg-df-card-price-group",children:(0,K.jsx)("span",{className:"tg-df-card-price tg-df-card-price--unavailable",style:{color:"var(--tg-df-text-muted)",fontSize:"13px",fontWeight:500},children:"No retail listing found"})}):null,(0,K.jsx)(cf,{authorUrl:e,deal:t}),!d&&(0,K.jsx)("a",{href:o?t.url:l,"data-fcaw-affiliate-link":o?"":void 0,target:"_blank",rel:o?"sponsored nofollow noopener":"noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},children:o?u?"VIEW DEAL":"CHECK PRICE":"READ REVIEW"})]})}return(0,K.jsxs)("div",{className:"tg-df-card-footer",children:[!(t.authorName&&!t.isFeatured)&&(0,K.jsx)("div",{className:"tg-df-card-merchant-wrapper",children:(0,K.jsx)("span",{className:"tg-df-card-merchant-pill",title:i,children:i})}),(0,K.jsx)("div",{className:"tg-df-card-price-group",children:t.isCheckPrice?(0,K.jsx)("span",{className:"tg-df-card-price",style:{fontSize:"15px",fontWeight:500,fontStyle:"italic"},children:"See price at retailer"}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsxs)("span",{className:"tg-df-card-price",children:[r,(0,K.jsx)("span",{children:t.rawPrice})]}),t.rawMsrp>t.rawPrice&&(0,K.jsx)("span",{className:"tg-df-card-msrp",children:a})]})}),(0,K.jsx)(cf,{authorUrl:e,deal:t}),(0,K.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":"",target:"_blank",rel:"sponsored nofollow noopener",className:"tg-df-card-cta hawk-affiliate-link-deal-button",style:{textDecoration:"none"},"data-model-id":t.modelId||void 0,"data-product-key":t.productKey||void 0,"data-merchant-id":t.merchantId||void 0,children:t.isCheckPrice?"CHECK PRICE":t.isFeatured?"SHOP NOW":"VIEW DEAL"})]})}var Ze=B(O(),1);function d0({couponStatus:e,deal:t,onOpenVouchers:n}){let a=!!t.hasCommerceOffer;return(0,Ze.jsxs)("div",{className:"tg-df-card-image-box",children:[t.buyingGuideBadge?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge tg-df-buying-guide-badge",children:t.buyingGuideBadge}):t.savingLabel&&!t.isCheckPrice?(0,Ze.jsx)("span",{className:"tg-df-card-discount-badge",children:ee(t.savingLabel)}):null,(0,Ze.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":a?"":void 0,className:a?"hawk-affiliate-link-deal-widget":void 0,target:"_blank",rel:a?"sponsored nofollow noopener":"noopener",style:{display:"flex",alignItems:"center",justifyContent:"center",width:"100%",height:"100%"},children:(0,Ze.jsx)("img",{src:t.image||void 0,alt:ee(String(t.title||"")),className:"tg-df-card-image",loading:"lazy",onError:l=>{t.fallbackImage&&!l.currentTarget.dataset.fb?(l.currentTarget.dataset.fb="1",l.currentTarget.src=t.fallbackImage):l.currentTarget.style.opacity="0"}})}),(0,Ze.jsxs)("div",{className:"tg-df-card-badges",children:[t.isPrime&&(0,Ze.jsxs)("span",{className:"tg-df-tag tg-df-tag-prime",children:[(0,Ze.jsx)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"currentColor",children:(0,Ze.jsx)("path",{d:"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"})})," ","Prime"]}),!t.merchant?.toLowerCase().includes("amazon")&&(e==="loading"||e==="has")&&(0,Ze.jsx)("div",{className:"tg-df-coupon-wrapper",style:{display:"inline-flex",alignItems:"center"},children:e==="loading"?(0,Ze.jsx)("div",{className:"tg-df-coupon-spinner"}):(0,Ze.jsxs)("button",{type:"button",className:"tg-df-tag tg-df-tag-coupons",onClick:l=>{l.preventDefault(),n(t.merchant)},children:[(0,Ze.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,Ze.jsx)("path",{d:"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"}),(0,Ze.jsx)("line",{x1:"7",y1:"7",x2:"7.01",y2:"7"})]})," ","Coupons"]})})]})]})}var ct=B(O(),1);function f0({label:e="Tom's Guide:",starRating:t,color:n="#1f69ff"}){if(!t||t=.5?1:0,i=Math.max(0,5-a-l),r=[];for(let o=0;o0||e.length>0,u=ee(i);return!u&&!o?null:(0,At.jsxs)("div",{style:{marginBottom:"12px"},children:[u&&(0,At.jsx)("p",{style:{color:"var(--tg-df-text-muted)",fontSize:"13px",lineHeight:1.4,margin:"0 0 8px",display:!t&&r?"-webkit-box":"block",WebkitLineClamp:!t&&r?3:void 0,WebkitBoxOrient:!t&&r?"vertical":void 0,overflow:!t&&r?"hidden":void 0},children:u}),t&&o&&(0,At.jsxs)("div",{children:[(0,At.jsx)(g0,{heading:"Pros",items:l}),(0,At.jsx)(g0,{heading:"Cons",items:e})]}),(o||r)&&(0,At.jsxs)("div",{className:"tg-df-review-summary-actions",style:{alignItems:"flex-start",display:"flex",flexDirection:"column",gap:t&&n?"4px":0},children:[t&&n&&(0,At.jsx)("a",{href:n,target:"_blank",rel:"noopener",className:"tg-df-review-full-link",style:{alignItems:"center",color:"var(--tg-df-blue)",display:"flex",fontSize:"12px",fontWeight:700,minHeight:"40px",paddingRight:"12px",textDecoration:"underline"},children:"Read our full review"}),(0,At.jsx)("button",{type:"button",onClick:c=>{c.preventDefault(),c.stopPropagation(),a()},className:"tg-df-review-summary-toggle",style:{appearance:"none",background:"transparent",border:"none",color:"#000000",cursor:"pointer",fontFamily:"inherit",fontSize:"11px",fontWeight:700,minHeight:"40px",padding:"0 12px 0 0",textTransform:"uppercase"},children:t?"LESS":"READ MORE"})]})]})}var oi=B(ft(),1);var Br=B(O(),1);function h0({text:e,expanded:t,onToggle:n}){let[a,l]=(0,oi.useState)(!1),i=(0,oi.useRef)(null),r=ee(e);return(0,oi.useEffect)(()=>{i.current&&l(i.current.scrollHeight>i.current.clientHeight||i.current.scrollHeight>60)},[r]),r?(0,Br.jsxs)("div",{style:{marginBottom:"12px",position:"relative"},children:[(0,Br.jsx)("p",{ref:i,style:{fontSize:"13px",color:"var(--tg-df-text-muted)",marginBottom:"0",lineHeight:"1.4",display:t?"inline":"-webkit-box",WebkitLineClamp:t?"unset":3,WebkitBoxOrient:"vertical",overflow:"hidden"},children:r}),a&&(0,Br.jsx)("button",{type:"button",onClick:o=>{o.preventDefault(),o.stopPropagation(),n()},style:{display:"block",appearance:"none",border:"none",color:"#000000",fontSize:"11px",fontWeight:700,textTransform:"uppercase",cursor:"pointer",fontFamily:"inherit",position:t?"static":"absolute",bottom:"2px",right:0,background:t?"transparent":"linear-gradient(to right, transparent, #fff 20%, #fff)",padding:t?"0":"0 0 0 16px"},children:t?"LESS":"READ MORE"})]}):null}var p0={pcgamer:"#DC191B",space:"#2E4A7F",tomsguide:"#1F69FF",techradar:"#E40784",golfmonthly:"#FFFFFF",androidcentral:"#1CCC3E",cinemablend:"#FFC033",creativebloq:"#DC361A",cyclingnews:"#371B51",cyclingweekly:"#AE1305",decanter:"#1B1B1B",digitalcameraworld:"#CAEBF2",fitandwell:"#BED100",fourfourtwo:"#AE1006",gamesradar:"#DC361A",guitarplayer:"#FFFFFF",guitarworld:"#DC1F26",homesandgardens:"#185A7D",idealhome:"#CAEBF2",imore:"#FFD600",livescience:"#023953",livingetc:"#FFFFFF",loudersound:"#DC0F17",marieclaireus:"#FFFFFF",marieclaireuk:"#FFFFFF",musicradar:"#006EA9",shortlist:"#2853E0",t3:"#DF0A14",theweek:"#DF0A14",theweekjuniorus:"#10A0B0",tomshardware:"#D8373B",wallpaper:"#FFFFFF",whathifi:"#E02928",whowhatwear:"#FFFFFF",windowscentral:"#CE0E5F",womanandhome:"#2F746E"},Nr={tomsguide:"https://proof.vanilla.tools/media/images/brandLogos/tomsguide.png",techradar:"https://proof.vanilla.tools/media/images/brandLogos/techradar.png",tomshardware:"https://proof.vanilla.tools/media/images/brandLogos/tomshardware.png",pcgamer:"https://proof.vanilla.tools/media/images/brandLogos/pcgamer.png",gamesradar:"https://proof.vanilla.tools/media/images/brandLogos/gamesradar.png",creativebloq:"https://proof.vanilla.tools/media/images/brandLogos/creativebloq.png",space:"https://proof.vanilla.tools/media/images/brandLogos/space.png",livescience:"https://proof.vanilla.tools/media/images/brandLogos/livescience.png",cinemablend:"https://proof.vanilla.tools/media/images/brandLogos/cinemablend.png",marieclaireus:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireus.png",marieclaireuk:"https://proof.vanilla.tools/media/images/brandLogos/marieclaireuk.png",homesandgardens:"https://proof.vanilla.tools/media/images/brandLogos/homesandgardens.png",whowhatwear:"https://proof.vanilla.tools/media/images/brandLogos/whowhatwear.png",idealhome:"https://proof.vanilla.tools/media/images/brandLogos/idealhome.png",womanandhome:"https://proof.vanilla.tools/media/images/brandLogos/womanandhome.png",livingetc:"https://proof.vanilla.tools/media/images/brandLogos/livingetc.png",t3:"https://proof.vanilla.tools/media/images/brandLogos/t3.png",whathifi:"https://proof.vanilla.tools/media/images/brandLogos/whathifi.png",digitalcameraworld:"https://proof.vanilla.tools/media/images/brandLogos/digitalcameraworld.png",fitandwell:"https://proof.vanilla.tools/media/images/brandLogos/fitandwell.png",golfmonthly:"https://proof.vanilla.tools/media/images/brandLogos/golfmonthly.png",musicradar:"https://proof.vanilla.tools/media/images/brandLogos/musicradar.png",windowscentral:"https://proof.vanilla.tools/media/images/brandLogos/windowscentral.png",cyclingnews:"https://proof.vanilla.tools/media/images/brandLogos/cyclingnews.png",cyclingweekly:"https://proof.vanilla.tools/media/images/brandLogos/cyclingweekly.png",loudersound:"https://proof.vanilla.tools/media/images/brandLogos/loudersound.png",guitarworld:"https://proof.vanilla.tools/media/images/brandLogos/guitarworld.png",guitarplayer:"https://proof.vanilla.tools/media/images/brandLogos/guitarplayer.png",wallpaper:"https://proof.vanilla.tools/media/images/brandLogos/wallpaper.png",fourfourtwo:"https://proof.vanilla.tools/media/images/brandLogos/fourfourtwo.png",shortlist:"https://proof.vanilla.tools/media/images/brandLogos/shortlist.png",advnture:"https://proof.vanilla.tools/media/images/brandLogos/advnture.png",countrylife:"https://proof.vanilla.tools/media/images/brandLogos/countrylife.png",gardeningknowhow:"https://proof.vanilla.tools/media/images/brandLogos/gardeningknowhow.png",gnomesingardens:"https://proof.vanilla.tools/media/images/brandLogos/gnomesingardens.png",kiplinger:"https://proof.vanilla.tools/media/images/brandLogos/kiplinger.png",moneyweek:"https://proof.vanilla.tools/media/images/brandLogos/moneyweek.png",toptenreviews:"https://proof.vanilla.tools/media/images/brandLogos/toptenreviews.png"},Gu={tomsguide:"Tom's Guide",techradar:"TechRadar",tomshardware:"Tom's Hardware",pcgamer:"PC Gamer",gamesradar:"GamesRadar+",creativebloq:"Creative Bloq",space:"Space",livescience:"Live Science",cinemablend:"CinemaBlend",marieclaireus:"Marie Claire US",marieclaireuk:"Marie Claire UK",homesandgardens:"Homes & Gardens",whowhatwear:"Who What Wear",idealhome:"Ideal Home",womanandhome:"Woman & Home",livingetc:"Living Etc",t3:"T3",whathifi:"What Hi-Fi?",digitalcameraworld:"Digital Camera World",fitandwell:"Fit & Well",golfmonthly:"Golf Monthly",musicradar:"MusicRadar",androidcentral:"Android Central",imore:"iMore",windowscentral:"Windows Central",cyclingnews:"Cycling News",cyclingweekly:"Cycling Weekly",loudersound:"Louder Sound",guitarworld:"Guitar World",guitarplayer:"Guitar Player",theweek:"The Week",theweekjuniorus:"The Week Junior US",wallpaper:"Wallpaper",decanter:"Decanter",fourfourtwo:"FourFourTwo",shortlist:"ShortList",advnture:"Advnture",countrylife:"Country Life",gardeningknowhow:"Gardening Know How",gnomesingardens:"Gnomes in Gardens",kiplinger:"Kiplinger",moneyweek:"Money Week",toptenreviews:"Top 10 Reviews"},y0={pcgamer:[{key:"steam",href:"https://steamcommunity.com/groups/pcgamer",label:"PC Gamer on Steam"},{key:"x",href:"https://twitter.com/pcgamer",label:"PC Gamer on X"},{key:"facebook",href:"https://www.facebook.com/pcgamermagazine",label:"PC Gamer on Facebook"},{key:"instagram",href:"https://www.instagram.com/pcgamer_mag/?hl=en",label:"PC Gamer on Instagram"},{key:"youtube",href:"https://www.youtube.com/user/pcgamer",label:"PC Gamer on YouTube"},{key:"twitch",href:"https://www.twitch.tv/pcgamer",label:"PC Gamer on Twitch"},{key:"tiktok",href:"https://www.tiktok.com/@pcgamer_mag?lang=en",label:"PC Gamer on TikTok"}],homesandgardens:[{key:"instagram",href:"https://www.instagram.com/homesandgardensofficial",label:"Homes & Gardens on Instagram"},{key:"facebook",href:"https://www.facebook.com/homesandgardens/",label:"Homes & Gardens on Facebook"},{key:"x",href:"https://x.com/homesandgardens",label:"Homes & Gardens on X"},{key:"tiktok",href:"https://www.tiktok.com/@homesandgardensofficial",label:"Homes & Gardens on TikTok"},{key:"pinterest",href:"https://pinterest.com/homesgardensofficial/",label:"Homes & Gardens on Pinterest"}],whowhatwear:[{key:"x",href:"https://twitter.com/WhoWhatWear",label:"Who What Wear on X"},{key:"instagram",href:"https://www.instagram.com/whowhatwear/",label:"Who What Wear on Instagram"},{key:"facebook",href:"https://www.facebook.com/WhoWhatWear/",label:"Who What Wear on Facebook"},{key:"pinterest",href:"https://www.pinterest.co.uk/whowhatwearuk/",label:"Who What Wear on Pinterest"},{key:"tiktok",href:"https://www.tiktok.com/@whowhatwear.uk",label:"Who What Wear on TikTok"}]};var Ot=B(O(),1);function v0(e){return String(e||"").normalize("NFD").replace(/[\u0300-\u036f]/g,"").replace(/\s+/g," ").trim().toLowerCase()}function Jw(e){let t=ee(String(e.brand||"")).trim(),n=ee(String(e.productName||e.title||"")).trim(),a=v0(t),l=v0(n);return a.length>0&&l.startsWith(a)&&!/^[a-z0-9]/.test(l.slice(a.length))||!t?n:`${t} ${n}`.trim()}function b0({couponStatus:e,deal:t,editorMode:n,hideHawkPrices:a,isDescriptionExpanded:l,isSelected:i,onDescriptionToggle:r,onOpenVouchers:o,onSelectionChange:u,website:c}){let s=ee(String(t.currency||"")),f=t.rawMsrp?s+t.rawMsrp:null,d=Jw(t),m=ee(String(t.title||"")),v=Gu[c||"tomsguide"]||c||"Tom's Guide",A=(c||"tomsguide").includes(".")?(c||"").startsWith("http")?c:`https://${c}`:`https://www.${c||"tomsguide"}.com`,b=(t.documentUrl||"").replace(/^\/+/,""),h=b.startsWith("http://")||b.startsWith("https://")?b:`${A}/${b}`,g=String(t.sourceArticleUrl||t.documentUrl||t.url||"").replace(/^\/+/,""),p=g.startsWith("http://")||g.startsWith("https://")?g:`${A}/${g}`,y=!!t.hasCommerceOffer;return(0,Ot.jsxs)("div",{className:"tg-df-card","data-brand":t.modelBrand||t.brand||void 0,"data-currency":t.isoCurrencyCode||s||void 0,"data-deal-id":t.externalProductId||t.id||void 0,"data-merchant":t.merchant||void 0,"data-merchant-id":t.merchantId||void 0,"data-model-id":t.modelId||void 0,"data-previous-price":t.rawMsrp||void 0,"data-price":t.rawPrice||void 0,"data-product-key":t.productKey||void 0,"data-product-name":t.productName||t.title||void 0,"data-review-product":t.isReviewProduct?"true":void 0,"data-source-article-url":t.isReviewProduct?p:void 0,children:[n&&(0,Ot.jsx)("input",{type:"checkbox",className:"tg-df-deal-checkbox",checked:i,onChange:C=>u(C.target.checked)}),(0,Ot.jsx)(d0,{couponStatus:e,deal:t,onOpenVouchers:o}),(0,Ot.jsxs)("div",{className:"tg-df-card-body",children:[(0,Ot.jsx)("h3",{className:"tg-df-card-title",title:m,children:(0,Ot.jsx)("a",{href:t.url,"data-fcaw-affiliate-link":y?"":void 0,className:y?"hawk-affiliate-link-container":void 0,target:"_blank",rel:y?"sponsored nofollow noopener":"noopener",style:{textDecoration:"none",color:"inherit"},children:(0,Ot.jsx)("strong",{children:d})})}),(0,Ot.jsx)(f0,{label:t.isBuyingGuideProduct?"":`${v} rating:`,starRating:t.starRating,color:t.isReviewProduct?"var(--tg-df-blue)":void 0}),t.isBuyingGuideProduct||t.isReviewProduct?(0,Ot.jsx)(m0,{cons:t.cons,expanded:l,fullReviewUrl:t.isReviewProduct&&g?p:void 0,onToggle:r,pros:t.pros,subtitle:t.isReviewProduct?t.description:t.subtitle,truncateSubtitle:t.isReviewProduct}):t.description?(0,Ot.jsx)(h0,{text:t.description,expanded:l,onToggle:r}):null,(0,Ot.jsx)(s0,{authorUrl:h,deal:t,hideHawkPrices:a,msrpFormatted:f,sourceArticleUrl:p})]})]})}var ce=B(O(),1);function $w({activeDealTag:e,activeFreeformTags:t=[],query:n,selectedBrands:a=[]}){let l=o=>{let u=String(o||"").trim();return u&&u.toLowerCase()!=="everything"?u:""},r=(t.length>0?t:e?[e]:a.length>0?a:[n]).map(l).filter(Boolean).map(o=>o.replace(/\s+deals?$/i,"").trim()).filter((o,u,c)=>c.findIndex(s=>s.toLowerCase()===o.toLowerCase())===u);return r.length(0,ce.jsxs)("div",{className:"tg-df-card",children:[(0,ce.jsx)("div",{className:"tg-df-card-image-box tg-df-skeleton"}),(0,ce.jsxs)("div",{className:"tg-df-card-body",children:[(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title"}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short",style:{marginBottom:"24px"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text title",style:{width:"80%"}}),(0,ce.jsx)("div",{className:"tg-df-skeleton tg-df-skeleton-text short"}),(0,ce.jsx)("div",{className:"tg-df-card-cta tg-df-skeleton",style:{width:"100%",height:"40px",marginTop:"auto",border:"none"}})]})]},t))})}function t2(e,t){return{"@context":"https://schema.org","@type":"ItemList",itemListElement:e.slice(0,t).map((n,a)=>{let l="USD";return n.currency==="\xA3"?l="GBP":n.currency==="\u20AC"?l="EUR":n.currency==="A$"?l="AUD":n.currency==="CA$"&&(l="CAD"),{"@type":"ListItem",position:a+1,item:{"@type":"Product",name:n.title,image:n.image||"",description:n.description||"",brand:{"@type":"Brand",name:n.brand||""},offers:{"@type":"Offer",priceCurrency:l,price:n.rawPrice||0,url:n.url||"",seller:{"@type":"Organization",name:n.merchant||""}}}}}).filter(n=>n.item.name)}}function w0({activeDealTag:e,activeFreeformTags:t,couponMap:n,deals:a,displayCount:l,editorMode:i,error:r,expandedDealIds:o,hasMore:u,hideHawkPrices:c,loading:s,loadingMore:f,loadMoreStartCount:d,onDescriptionToggle:m,onLoadMore:v,onOpenVouchers:A,query:b,recentDealsOnly:h,selectedBrands:g,selectedDeals:p,setSelectedDeals:y,website:C}){let R=$w({activeDealTag:e,activeFreeformTags:t,query:b,selectedBrands:g}),T=f&&d!=null?d:l,M=!f&&d!=null&&dD.map(k=>(0,ce.jsx)(A0.default.Fragment,{children:(0,ce.jsx)(b0,{couponStatus:n[k.merchant],deal:k,editorMode:i,hideHawkPrices:c,isDescriptionExpanded:o.has(k.id),isSelected:p.has(k.id),onDescriptionToggle:()=>m(k.id),onOpenVouchers:A,onSelectionChange:se=>{let I=new Map(p);se?I.set(k.id,k):I.delete(k.id),y(I)},website:C})},k.id));return(0,ce.jsx)("div",{className:"tg-df-grid-wrapper",children:(0,ce.jsx)("div",{className:"tg-df-grid article-body tg-df-grid-auto",id:"tg-df-grid",children:s?(0,ce.jsx)(e2,{}):r?(0,ce.jsx)("div",{className:"tg-df-message",children:"Failed to load deals. Please try again."}):a.length===0?(0,ce.jsx)("div",{className:"tg-df-message",children:h?`No ${R?`${R} `:""}deals found from the last 30 days.`:!b||b.length{D.preventDefault(),D.stopPropagation(),v()},children:f?"Loading more products\u2026":"Load More"})}),a.length>0&&(0,ce.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(t2(a,T))}})]})})})}var S0=B(O(),1);var pn=B(ft(),1),nn=B(O(),1);function Pu({onScrollLeft:e,onScrollRight:t,showLeft:n,showRight:a}){return(0,nn.jsxs)(nn.Fragment,{children:[(0,nn.jsx)("button",{"aria-label":"Scroll left",className:"tg-df-scroll-btn left tg-df-desktop-only",onClick:e,style:{display:n?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,nn.jsx)("button",{"aria-label":"Scroll right",className:"tg-df-scroll-btn right tg-df-desktop-only",onClick:t,style:{display:a?"flex":"none"},type:"button",children:(0,nn.jsx)("svg",{"aria-hidden":"true",fill:"none",stroke:"currentColor",strokeWidth:"2",viewBox:"0 0 24 24",children:(0,nn.jsx)("path",{d:"M9 18l6-6-6-6"})})})]})}function qu(e){let t=(0,pn.useRef)(null),[n,a]=(0,pn.useState)(!1),[l,i]=(0,pn.useState)(!1),r=(0,pn.useCallback)(()=>{let u=t.current;u&&(a(u.scrollLeft>1),i(Math.ceil(u.scrollLeft+u.clientWidth){let u=t.current;if(!u)return;r();let c=requestAnimationFrame(r),s=typeof ResizeObserver>"u"?null:new ResizeObserver(r);return s?.observe(u),()=>{cancelAnimationFrame(c),s?.disconnect()}},[e,r]);let o=(0,pn.useCallback)(u=>{t.current?.scrollBy({left:u,behavior:"smooth"})},[]);return{onScroll:r,railRef:t,scrollLeft:()=>o(-240),scrollRight:()=>o(240),showLeft:n,showRight:l}}var jn=B(O(),1);function ui({containerClassName:e,itemClassName:t,items:n,loading:a,loadingKey:l,onItemClick:i,rowClassName:r,showCounters:o}){let u=qu(n.length);return n.length===0&&!a?null:(0,jn.jsxs)("div",{className:e,style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[n.length>0&&(0,jn.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,jn.jsx)("div",{className:r,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},onScroll:u.onScroll,children:n.length>0?n.map(c=>(0,jn.jsxs)("button",{className:t,onClick:()=>i(c.key),style:{border:"none",borderRight:"1px solid var(--tg-df-border)",padding:"12px 20px",fontSize:"11px",textTransform:"uppercase",letterSpacing:"1px",cursor:"pointer",whiteSpace:"nowrap",display:"flex",alignItems:"center",gap:"6px",...t==="tg-df-brand-row-item"?{transition:"all 0.2s ease"}:{},background:c.selected?"var(--tg-df-bg-secondary)":"var(--tg-df-bg)",color:c.selected?"var(--tg-df-text-primary)":"var(--tg-df-text-muted)",fontWeight:c.selected?600:500},children:[c.label," ",l===c.key&&(0,jn.jsx)("span",{className:"tg-df-coupon-spinner","aria-label":"Loading",style:{borderWidth:"2px",height:"12px",width:"12px"}}),o!==!1&&(0,jn.jsx)("span",{style:{color:"var(--tg-df-blue)",fontSize:"10px",...t==="tg-df-brand-row-item"?{fontWeight:400}:{}},children:c.count})]},c.key)):[1,2,3,4,5].map(c=>(0,jn.jsx)("div",{className:"tg-df-skeleton",style:{height:"36px",width:"80px",borderRadius:"18px",flexShrink:0,margin:"8px 12px"}},`${r}-skeleton-${c}`))})]})}var R0=B(O(),1);function C0({airedaleBrands:e,brands:t,loading:n,refreshing:a,onBrandToggle:l,selectedBrands:i,showAuthorCounters:r}){let o=e.length>0?e:t||[],u=o.slice(0,15).map(c=>({count:c.count||0,key:c.formatted_value,label:c.formatted_value,selected:i?.includes(c.formatted_value)||!1}));return(0,R0.jsx)(ui,{containerClassName:"tg-df-brands-row-container",itemClassName:"tg-df-brand-row-item",items:u,loading:n&&o.length===0,loadingKey:a?i?.[0]:null,onItemClick:c=>l?.(c),rowClassName:"tg-df-brands-row",showCounters:r})}var E0=B(O(),1);function T0({activeDealTag:e,airedaleTagCounts:t,airedaleTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>{let c=u.split(":::"),s=c[0];return{count:t[u]||0,key:s,label:c[1]||u,selected:e===s}});return(0,E0.jsx)(ui,{containerClassName:"tg-df-categories-row-container",itemClassName:"tg-df-category-row-item",items:o,loading:a&&n.length===0,loadingKey:l?e:null,onItemClick:i,rowClassName:"tg-df-categories-row",showCounters:r})}var x0=B(O(),1);function D0({activeFreeformTags:e,freeformTagCounts:t,freeformTags:n,loading:a,refreshing:l,onTagClick:i,showAuthorCounters:r}){let o=n.map(u=>({count:t[u.handle]||0,key:u.handle,label:u.label,selected:e.includes(u.handle)}));return(0,x0.jsx)(ui,{containerClassName:"tg-df-freeform-tags-row-container",itemClassName:"tg-df-freeform-tag-row-item",items:o,loading:a&&n.length===0,loadingKey:l&&e.at(-1)||null,onItemClick:i,rowClassName:"tg-df-freeform-tags-row",showCounters:r})}var _e=B(O(),1),n2=4;function M0({authors:e,clickedAuthorOverride:t,loading:n,refreshing:a,onAuthorClick:l,overriddenAuthorHandle:i,overriddenAuthorName:r,website:o}){let u=qu(e.length);return e.length===0&&!n?null:(0,_e.jsxs)("div",{className:"tg-df-authors-row-container",style:{borderBottom:"1px solid var(--tg-df-border)",position:"relative"},children:[e.length>0&&(0,_e.jsx)(Pu,{onScrollLeft:u.scrollLeft,onScrollRight:u.scrollRight,showLeft:u.showLeft,showRight:u.showRight}),(0,_e.jsx)("div",{className:"tg-df-authors-row tg-df-mobile-authors",onScroll:u.onScroll,ref:u.railRef,style:{display:"flex",overflowX:"auto",scrollbarWidth:"none",msOverflowStyle:"none",gap:"24px",padding:"4px 16px 2px 16px",alignItems:"flex-start"},children:e.length>0?e.map((c,s)=>{let f=Nr[c.brandKey]||Nr[o||"tomsguide"],d=t&&(i===c.handle||r===c.fullName);return(0,_e.jsxs)("div",{className:"tg-df-author-row-item",onClick:()=>l(c),style:{cursor:"pointer",display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px",opacity:t?d?1:.4:1},children:[(0,_e.jsxs)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px",borderRadius:"50%",boxShadow:d?"0 0 0 3px var(--tg-df-blue, #1F69FF)":"none"},children:[(0,_e.jsx)("img",{src:ri(c.image),alt:c.fullName,decoding:"async",loading:s(0,_e.jsxs)("div",{className:"tg-df-author-row-item",style:{display:"flex",flexDirection:"column",alignItems:"center",width:"72px",flexShrink:0,gap:"4px"},children:[(0,_e.jsx)("div",{className:"tg-df-author-img-wrapper",style:{position:"relative",width:"64px",height:"64px"},children:(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{width:"100%",height:"100%",borderRadius:"50%"}})}),(0,_e.jsxs)("div",{style:{textAlign:"center",width:"100%"},children:[(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"12px",width:"80%",margin:"0 auto 4px auto",borderRadius:"2px"}}),(0,_e.jsx)("div",{className:"tg-df-skeleton",style:{height:"10px",width:"60%",margin:"0 auto",borderRadius:"2px"}})]})]},`author-skeleton-${c}`))})]})}var Ja=B(O(),1);function _0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,freeformTagCounts:i,freeformTags:r,allAuthorsList:o,brands:u,clickedAuthorOverride:c,loading:s,refreshing:f,onAuthorClick:d,onBrandToggle:m,onTagClick:v,onFreeformTagClick:A,overriddenAuthorHandle:b,overriddenAuthorName:h,selectedBrands:g,showAuthorRail:p,showAuthorCounters:y,showBrandRail:C,showCategoryRail:R,showFreeformTagRail:T,website:M}){let w=R!==!1&&l.length>0||T!==!1&&r.length>0||C!==!1&&(n.length>0||!!u?.length)||p&&o.length>0;return!(p||R!==!1||T!==!1||C!==!1)||!w&&!s?null:(0,Ja.jsxs)("div",{id:"tg-df-spreadsheet-filters",style:{display:"block",marginBottom:"16px"},children:[p&&(0,Ja.jsx)(M0,{authors:o,clickedAuthorOverride:c,loading:s&&o.length===0,refreshing:f,onAuthorClick:d,overriddenAuthorHandle:b,overriddenAuthorName:h,website:M}),R!==!1&&(0,Ja.jsx)(T0,{activeDealTag:e,airedaleTagCounts:a,airedaleTags:l,loading:s,refreshing:f,onTagClick:v,showAuthorCounters:y}),T!==!1&&(0,Ja.jsx)(D0,{activeFreeformTags:t,freeformTagCounts:i,freeformTags:r,loading:s,refreshing:f,onTagClick:A,showAuthorCounters:y}),C!==!1&&(0,Ja.jsx)(C0,{airedaleBrands:n,brands:u,loading:s,refreshing:f,onBrandToggle:m,selectedBrands:g,showAuthorCounters:y})]})}var O0=B(ft(),1);var B0=[{value:"date_desc",label:"Most recent"},{value:"rating_desc",label:"Highest rating"},{value:"scored_first",label:"Scored products first"}];function Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}){return!!(a&&e!==!0&&t===!1&&n===!1)}function Fu({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a,lightweightReviewDelivery:l,showPriceDiscountFilters:i,showReviewSort:r}){return!!(l&&i===!1&&r===!1&&Or({includeBuyingGuideProducts:e,includeCollections:t,includeDeals:n,includeReviewProducts:a}))}function ju(e=!0){return e?B0:B0.filter(t=>t.value!=="scored_first")}function wa(e,t=!0){return!t&&e==="scored_first"?"date_desc":e||"date_desc"}var H=B(O(),1),N0=[{value:"all",label:"All Prices",shortLabel:""},{value:"under50",label:"Under $50",shortLabel:"< $50"},{value:"50_100",label:"$50 - $100",shortLabel:"$50-$100"},{value:"100_200",label:"$100 - $200",shortLabel:"$100-$200"},{value:"200_500",label:"$200 - $500",shortLabel:"$200-$500"},{value:"over500",label:"Over $500",shortLabel:"> $500"}],a2=[{value:"0",label:"Any discount"},...[5,10,15,20,25,30,40,50,60,70].map(e=>({value:String(e),label:`Min ${e}% off`}))];function l2({open:e}){return(0,H.jsx)("svg",{"aria-hidden":"true",className:e?"is-open":void 0,width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("path",{d:"m6 9 6 6 6-6"})})}function Yn(){return(0,H.jsx)("svg",{"aria-hidden":"true",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",children:(0,H.jsx)("polyline",{points:"20 6 9 17 4 12"})})}function k0({activeDealTag:e,activeFreeformTags:t,airedaleBrands:n,airedaleTagCounts:a,airedaleTags:l,brands:i,discountAmount:r,enabled:o,freeformTagCounts:u,freeformTags:c,includeScoredFirst:s,onBrandSelect:f,onBrandToggle:d,onDiscountAmountChange:m,onFreeformTagClear:v,onFreeformTagToggle:A,onPriceRangeChange:b,onReviewSortChange:h,onTagClear:g,onTagClick:p,priceRange:y,reviewSort:C,selectedBrands:R,showCounters:T,showBrandRail:M,showCategoryRail:w,showFreeformTagRail:D,showPriceDiscountFilters:k,showReviewSort:se}){let[I,j]=(0,O0.useState)(null);if(!o)return null;let He=l.map(x=>{let P=x.split(":::");return{count:a[x]||0,handle:P[0],label:P[1]||x}}),ze=n.length>0?n:i||[],St=He.find(x=>x.handle===e),Ie=y||"all",rn=!r||r==="all"?"0":r,Be=N0.find(x=>x.value===Ie),Je=k!==!1,nt=wa(C,s),X=ju(s),de=nt==="rating_desc"?"Highest rating":nt==="scored_first"?"Scored first":"Most recent",$e=x=>{j(P=>P===x?null:x)},Z=[];return w!==!1&&Z.push({active:!!e,label:`CATEGORIES${St?` (${St.label})`:""}`,menu:"categories"}),D!==!1&&Z.push({active:t.length>0,label:`KEYWORDS${t.length>0?` (${t.length})`:""}`,menu:"keywords"}),M!==!1&&Z.push({active:R.length>0,label:`BRANDS${R.length>0?` (${R.length})`:""}`,menu:"brands"}),Je&&Z.push({active:Ie!=="all",label:`PRICES${Be?.shortLabel?` (${Be.shortLabel})`:""}`,menu:"prices"}),(Je||se)&&Z.push({active:se?nt!=="date_desc":rn!=="0",label:se?`SORT REVIEWS (${de})`:`DISCOUNTS${rn!=="0"?` (${rn}%+)`:""}`,menu:se?"review-sort":"discounts"}),(0,H.jsxs)("div",{className:"tg-df-mobile-2x2-container",children:[(0,H.jsx)("div",{className:`tg-df-mobile-2x2-grid tg-df-mobile-2x2-grid--${Z.length%2===0?"even":"odd"}`,children:Z.map(x=>(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-grid-cell${x.active?" has-active-filter":""}${I===x.menu?" active":""}`,"aria-expanded":I===x.menu,onClick:()=>$e(x.menu),children:[(0,H.jsx)("span",{children:x.label}),(0,H.jsx)(l2,{open:I===x.menu})]},x.menu))}),w!==!1&&I==="categories"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${e?"":" selected"}`,onClick:()=>{g(),j(null)},children:[(0,H.jsx)("span",{children:"All Categories"}),!e&&(0,H.jsx)(Yn,{})]}),He.map(x=>{let P=e===x.handle;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{p(x.handle),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},x.handle)})]}),M!==!1&&I==="brands"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${R.length===0?" selected":""}`,onClick:()=>f?.([]),children:[(0,H.jsx)("span",{children:"All Brands"}),R.length===0&&(0,H.jsx)(Yn,{})]}),ze.map(x=>{let P=x.formatted_value,Q=R.includes(P);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${Q?" selected":""}`,onClick:()=>d?.(P),children:[(0,H.jsx)("span",{children:P}),Q?(0,H.jsx)(Yn,{}):T!==!1&&x.count?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:x.count}):null]},P)})]}),D!==!1&&I==="keywords"&&(0,H.jsxs)("div",{className:"tg-df-mobile-menu-drawer",children:[(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${t.length===0?" selected":""}`,onClick:()=>{v(),j(null)},children:[(0,H.jsx)("span",{children:"All Keywords"}),t.length===0&&(0,H.jsx)(Yn,{})]}),c.map(x=>{let P=t.includes(x.handle);return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>A(x.handle),children:[(0,H.jsx)("span",{children:x.label}),P?(0,H.jsx)(Yn,{}):T!==!1&&u[x.handle]?(0,H.jsx)("span",{className:"tg-df-mobile-cell-badge",children:u[x.handle]}):null]},x.handle)})]}),I==="prices"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:N0.map(x=>{let P=Ie===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{b?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="discounts"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:a2.map(x=>{let P=rn===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{m?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})}),I==="review-sort"&&(0,H.jsx)("div",{className:"tg-df-mobile-menu-drawer",children:X.map(x=>{let P=nt===x.value;return(0,H.jsxs)("button",{type:"button",className:`tg-df-mobile-menu-item${P?" selected":""}`,onClick:()=>{h?.(x.value),j(null)},children:[(0,H.jsx)("span",{children:x.label}),P&&(0,H.jsx)(Yn,{})]},x.value)})})]})}var $a=B(ft(),1);var W=B(O(),1);function L0({airedaleBrands:e,airedaleTags:t,discountAmount:n,hidden:a,includeScoredFirst:l,onDiscountAmountChange:i,onPriceRangeChange:r,onReviewSortChange:o,priceRange:u,reviewSort:c,showReviewSort:s,showPriceDiscountFilters:f}){let d=(0,$a.useRef)(null),[m,v]=(0,$a.useState)(!1),[A,b]=(0,$a.useState)(!1),h=ju(l),g=wa(c,l),p=()=>{if(!d.current)return;let{scrollLeft:y,scrollWidth:C,clientWidth:R}=d.current;v(y>0),b(Math.ceil(y+R)(p(),window.addEventListener("resize",p),setTimeout(p,100),setTimeout(()=>{document.querySelector(".tg-df-categories-row")?.dispatchEvent(new Event("scroll")),document.querySelector(".tg-df-brands-row")?.dispatchEvent(new Event("scroll"))},150),()=>window.removeEventListener("resize",p)),[t,e]),(0,W.jsx)("div",{className:"tg-df-controls",id:"tg-df-controls",style:{display:a?"none":"flex",marginTop:"12px",marginBottom:"16px",justifyContent:"center"},children:(0,W.jsxs)("div",{className:"tg-df-filters-container",style:{position:"relative",width:"100%",maxWidth:"800px",margin:"0 auto"},children:[(0,W.jsx)("button",{className:"tg-df-scroll-btn left",style:{display:m?"flex":"none"},onClick:()=>d.current?.scrollBy({left:-200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M15 18l-6-6 6-6"})})}),(0,W.jsx)("button",{className:"tg-df-scroll-btn right",style:{display:A?"flex":"none"},onClick:()=>d.current?.scrollBy({left:200,behavior:"smooth"}),children:(0,W.jsx)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M9 18l6-6-6-6"})})}),(0,W.jsxs)("div",{className:"tg-df-filters",ref:d,onScroll:p,children:[(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-legacy-price-wrapper",style:{display:f!==!1?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-price-filter","aria-label":"Filter Prices",value:u||"all",onChange:y=>r?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"All Prices"}),(0,W.jsx)("option",{value:"under50",children:"Under $50"}),(0,W.jsx)("option",{value:"50_100",children:"$50 - $100"}),(0,W.jsx)("option",{value:"100_200",children:"$100 - $200"}),(0,W.jsx)("option",{value:"200_500",children:"$200 - $500"}),(0,W.jsx)("option",{value:"over500",children:"Over $500"})]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-discount-filter-wrapper",style:{display:f!==!1&&!s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",children:(0,W.jsx)("path",{d:"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z"})}),(0,W.jsxs)("select",{className:"tg-df-filter-select",id:"tg-df-discount-filter","aria-label":"Discount Amount",value:n||"all",onChange:y=>i?.(y.target.value),children:[(0,W.jsx)("option",{value:"all",children:"Any discount"}),[5,10,15,20,25,30,40,50,60,70].map(y=>(0,W.jsxs)("option",{value:y,children:["Min ",y,"%"]},y))]})]}),(0,W.jsxs)("div",{className:"tg-df-sort-wrapper",id:"tg-df-review-sort-wrapper",style:{display:s?"flex":"none"},children:[(0,W.jsx)("svg",{className:"tg-df-sort-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:(0,W.jsx)("path",{d:"M4 7h16M7 12h10m-7 5h4"})}),(0,W.jsx)("select",{className:"tg-df-filter-select",id:"tg-df-review-sort","aria-label":"Sort Reviews",value:g,onChange:y=>o?.(y.target.value),children:h.map(y=>(0,W.jsx)("option",{value:y.value,children:y.label},y.value))})]})]})]})})}var be=B(ft(),1);function kr(e,t){return e.filter(n=>{let a=n.handle.toLowerCase(),l=n.fullName.toLowerCase(),i=n.name.toLowerCase();return t.some(r=>{let o=r.articleauthorhandle||[],u=r.articleauthor||[],c=r.articleauthortext||[];return[...o,...u,...c].some(s=>{let f=String(s||"").toLowerCase();return f===a||f===l||f===i})})})}function Yu(e,t){return e.map((n,a)=>({index:a,profile:n,productCount:t[n.handle]||0})).sort((n,a)=>a.productCount-n.productCount||n.index-a.index).map(({profile:n})=>n)}function Vu(e,t){return e==="all-authors"||t==="all-authors"||t==="All authors"||!e&&!t}function Xu(e,t,n){let a=e;if((t||n)&&t!=="all-authors"&&n!=="all-authors"&&n!=="All authors"){if(t){let l=t.toLowerCase(),i=e.filter(r=>r.articleauthorhandle&&r.articleauthorhandle.some(o=>o.toLowerCase()===l));if(i.length>0)a=i;else if(n){let r=n.toLowerCase(),o=e.filter(u=>u.articleauthor&&u.articleauthor.some(c=>c.toLowerCase()===r));o.length>0&&(a=o)}}else if(n){let l=n.toLowerCase();a=e.filter(i=>i.articleauthor&&i.articleauthor.some(r=>r.toLowerCase()===l))}}return a}function sf(e,t,n){let a=0;if(t&&e.articleauthorhandle){let l=e.articleauthorhandle.findIndex(i=>i.toLowerCase()===t.toLowerCase());l>=0&&(a=l)}else if(n&&e.articleauthor){let l=e.articleauthor.findIndex(i=>i.toLowerCase()===n.toLowerCase());l>=0&&(a=l)}return a}function Qu(e,t,n){let a=sf(e,t,n),l=i=>typeof i=="string"?ee(i):i||"";return{authorName:e.articleauthortext?l(e.articleauthortext[a]):e.articleauthor?l(e.articleauthor[a]):"",authorRole:e.articleauthorrole?l(e.articleauthorrole[a]):"",authorImage:e.articleauthormedia?e.articleauthormedia[a]:""}}function Lr(e,t){let n=new Map;return e.forEach(a=>{if(!a.articleauthor)return;let l=t;if(a.documenturl)try{let f=new URL(a.documenturl).hostname.replace("www.","").split(".");f.length>0&&(l=f[0].toLowerCase())}catch{}let i=a.articleauthorhandle||[],r=a.articleauthor||[],o=a.articleauthortext||[],u=a.articleauthorrole||[],c=a.articleauthormedia||[];r.forEach((s,f)=>{if(!s||s==="null"||s.toLowerCase()==="all authors")return;let d=i[f]&&i[f]!=="null"?i[f]:s.toLowerCase().replace(/\s+/g,"-");if(!d||d==="null")return;let m=o[f]&&o[f]!=="null"?o[f]:s,v=u[f]&&u[f]!=="null"?u[f]:"",A=ee(String(m)),b=ee(String(v)),h=c[f]&&c[f]!=="null"?c[f]:"",g=A.split(" ")[0],p=_r(a,f,"short"),y=_r(a,f,"long"),C=Uu(a,f),R=n.get(d);!R&&A&&h?n.set(d,{...y?{bioLong:y}:{},...p?{bioShort:p}:{},name:g,fullName:A,handle:d,role:b,image:h,brandKey:l,...C.length>0?{socialNetworks:C}:{}}):R&&(!R.bioShort&&p&&(R.bioShort=p),!R.bioLong&&y&&(R.bioLong=y),!R.socialNetworks?.length&&C.length>0&&(R.socialNetworks=C))})}),Array.from(n.values())}var E=B(O(),1);function z0(e){let t=(0,be.useRef)(""),n=(0,be.useRef)(null),a=(0,be.useCallback)(()=>{n.current!==null&&(window.clearTimeout(n.current),n.current=null)},[]),l=(0,be.useCallback)(r=>{a(),t.current=r},[a]),i=(0,be.useCallback)((r,o,u=!1)=>{if(!e)return;if(r===t.current){a();return}let c=()=>{n.current=null,t.current=r,e(o)};a(),u?c():n.current=window.setTimeout(c,350)},[a,e]);return(0,be.useEffect)(()=>a,[a]),{save:i,synchronise:l}}function H0({contentKey:e,defaultText:t,kind:n,onChange:a,value:l}){let i=(0,be.useRef)(null),r=(0,be.useRef)(e),[o,u]=(0,be.useState)(!1),c=l??t,s=!!a,{save:f,synchronise:d}=z0(a);(0,be.useLayoutEffect)(()=>{let g=r.current!==e;i.current&&(g||document.activeElement!==i.current)&&(i.current.innerHTML!==c&&(i.current.innerHTML=c),d(c)),r.current=e},[e,d,c]);let m=(g=!1)=>{if(!i.current)return;let p=i.current.innerHTML;f(p,p===t?void 0:p,g)},v=(g,p)=>{document.execCommand(g,!1,p),m(!0)},A=n==="kicker"?{fontSize:"0.875rem",color:"#6B7280",fontStyle:"normal",margin:"0 0 0.25rem 0"}:{fontSize:"2.25rem",fontWeight:300,color:"#111827",margin:"0 0 0.25rem 0",lineHeight:1.1,letterSpacing:"-0.02em"},b=n==="kicker"?"tg-df-author-curated-by tg-df-author-kicker":"tg-df-author-name",h=()=>n==="kicker"?(0,E.jsx)("p",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}}):(0,E.jsx)("h2",{ref:i,className:b,contentEditable:s||void 0,dangerouslySetInnerHTML:s?void 0:{__html:c},onBlur:s?()=>{u(!1),m(!0)}:void 0,onFocus:s?()=>u(!0):void 0,onInput:s?()=>m():void 0,suppressContentEditableWarning:s,style:{...A,outline:s&&o?"2px solid #3b82f6":"none",borderRadius:"4px",cursor:s?"text":"default"}});return s?(0,E.jsxs)("div",{className:"tg-df-author-header-text-shell",style:{position:"relative"},children:[o&&(0,E.jsxs)("div",{className:"tg-df-author-header-text-toolbar",role:"toolbar","aria-label":`${n==="kicker"?"Shop by text":"Site or author name"} formatting`,style:{display:"flex",justifyContent:"center",alignItems:"center",gap:"0.25rem",margin:"0 auto 0.375rem",width:"fit-content",padding:"0.25rem 0.5rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",fontSize:"11px",zIndex:10},children:[(0,E.jsx)("span",{style:{color:"#64748b",padding:"2px 2px 2px 0"},children:"Editing"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("bold"),title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>v("italic"),title:"Italic",children:(0,E.jsx)("em",{children:"I"})}),(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{let g=prompt("Enter URL:");g&&v("createLink",g)},title:"Add link",children:"\u{1F517}"}),l!==void 0&&(0,E.jsx)("button",{type:"button",onMouseDown:g=>g.preventDefault(),onClick:()=>{i.current&&(i.current.innerHTML=t),d(t),a?.(void 0)},title:"Restore default",children:"Reset"})]}),h()]}):h()}function i2({contentKey:e,initialBio:t,defaultPlaceholder:n,onBioChange:a,stabilizeHeight:l=!1}){let r=(0,be.useRef)(null),o=(0,be.useRef)(e),u=(0,be.useRef)(n),c=(0,be.useRef)(!1),[s,f]=(0,be.useState)(!1),[d,m]=(0,be.useState)(!1),[v,A]=(0,be.useState)(!1),b=t||n,h=l&&b.replace(/]*>/g,"").trim().length>240,g=!!a,{save:p,synchronise:y}=z0(a);(0,be.useLayoutEffect)(()=>{let w=o.current!==e,D=u.current!==n;w&&(c.current=!1);let k=!t&&D&&!c.current;r.current&&(w||document.activeElement!==r.current||k)&&(r.current.innerHTML!==b&&(r.current.innerHTML=b),y(b)),o.current=e,u.current=n},[b,e,n,t,y]),(0,be.useLayoutEffect)(()=>{m(!1)},[e]),(0,be.useLayoutEffect)(()=>{if(!h||!r.current){A(!1);return}let w=r.current,D=()=>{A(w.scrollHeight>w.clientHeight+1)};if(D(),typeof ResizeObserver>"u")return;let k=new ResizeObserver(D);return k.observe(w),()=>k.disconnect()},[b,e,d,h]);let C=(w,D=null)=>{if(c.current=!0,document.execCommand(w,!1,D||void 0),r.current){let k=r.current.innerHTML;p(k,k===n?"":k,!0)}},R=(w=!1)=>{if(!r.current)return;let D=r.current.innerHTML;p(D,D===n?"":D,w)};return(0,E.jsxs)("div",{style:{position:"relative",maxWidth:"42rem",margin:"0 auto 0.5rem auto",padding:"0.25rem 0.5rem"},className:`tg-df-author-bio-shell${l?" tg-df-author-bio-shell--stable":""}`,children:[g&&s&&(0,E.jsxs)("div",{role:"toolbar","aria-label":"Introduction text formatting",style:{display:"flex",alignItems:"center",justifyContent:"center",gap:"0.375rem",marginBottom:"0.5rem",padding:"0.25rem 0.625rem",background:"#ffffff",border:"1px solid #cbd5e1",borderRadius:"9999px",boxShadow:"0 4px 12px rgba(0,0,0,0.1)",width:"fit-content",margin:"0 auto 0.5rem auto",fontSize:"12px",userSelect:"none",zIndex:10},children:[(0,E.jsx)("span",{style:{fontSize:"11px",color:"#64748b",fontWeight:500,marginRight:"2px"},children:"Editing \u2014 saves when you click away"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("bold"),style:{fontWeight:"bold",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Bold",children:"B"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>C("italic"),style:{fontStyle:"italic",padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Italic",children:"I"}),(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:()=>{let w=prompt("Enter URL:");w&&C("createLink",w)},style:{padding:"2px 8px",borderRadius:"4px",background:"#f1f5f9",cursor:"pointer",border:"1px solid #e2e8f0"},title:"Add Link",children:"\u{1F517}"}),t&&(0,E.jsx)("button",{type:"button",onMouseDown:w=>w.preventDefault(),onClick:w=>{w.preventDefault(),w.stopPropagation(),r.current&&(r.current.innerHTML=n),c.current=!1,y(n),a&&a("")},style:{fontSize:"10px",padding:"2px 8px",borderRadius:"4px",background:"#fee2e2",color:"#991b1b",cursor:"pointer",border:"1px solid #fca5a5"},title:"Reset Bio",children:"Reset"})]}),(0,E.jsx)("div",{ref:r,contentEditable:g?!0:void 0,suppressContentEditableWarning:g,onFocus:g?()=>{f(!0)}:void 0,onBlur:g?()=>{f(!1),R(!0),c.current=!1}:void 0,onInput:g?()=>{c.current=!0}:void 0,className:`tg-df-author-bio ${g?"wysiwyg-bio-editable":"tg-df-author-bio--static"}${h?d?" tg-df-author-bio--expanded":" tg-df-author-bio--clamped":""}`,style:{color:"#4b5563",lineHeight:1.6,fontWeight:300,fontSize:"0.9375rem",textAlign:"center",outline:g&&s?"2px solid #3b82f6":"none",borderRadius:"6px",padding:"0.375rem 0.5rem",cursor:g?"text":"default",transition:"all 0.15s ease-in-out"}}),h?(0,E.jsx)("div",{className:"tg-df-author-bio-toggle-slot",children:(0,E.jsx)("button",{type:"button",className:"tg-df-author-bio-toggle","aria-expanded":d,onClick:()=>m(w=>!w),style:{visibility:v||d?"visible":"hidden"},children:d?"Show less":"Read more"})}):null]})}function r2(e){let t=(e||"").toLowerCase();return t==="linkedin"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M19 3a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14m-.5 15.5v-5.3a3.26 3.26 0 0 0-3.26-3.26c-.85 0-1.84.52-2.28 1.3v-1.11h-2.79v8.37h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 0 1 1.4 1.4v4.93h2.75M6.88 8.56a1.68 1.68 0 0 0 1.68-1.68c0-.93-.75-1.69-1.68-1.69a1.69 1.69 0 0 0-1.69 1.69c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.37H5.5v8.37h2.77z"})}):t==="twitter"||t==="x"?(0,E.jsx)("svg",{className:"icon-svg",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,E.jsx)("path",{fill:"currentColor",d:"M18 2h4l-8 9 9 11h-7l-5-7-6 7H2l7-9L1 2h7l5 6zm-1 18h2L7 4H5z"})}):t==="email"||t==="mail"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("rect",{width:"20",height:"16",x:"2",y:"4",rx:"2"}),(0,E.jsx)("path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"})]}):t==="instagram"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("rect",{x:"3",y:"3",width:"18",height:"18",rx:"5",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"12",cy:"12",r:"4.25",fill:"none",stroke:"currentColor",strokeWidth:"2.25"}),(0,E.jsx)("circle",{cx:"17.4",cy:"6.7",r:"1.25",fill:"currentColor"})]}):t==="steam"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("circle",{fill:"#0f1618",cx:"12",cy:"12",r:"12"}),(0,E.jsx)("path",{d:"m18.22 8.9a2.269 2.269 0 1 1 -2.27-2.265 2.267 2.267 0 0 1 2.27 2.265zm2.258.005a4.534 4.534 0 0 1 -4.533 4.526h-.1l-4.087 2.911v.161a3.4 3.4 0 0 1 -6.74.669l-4.549-1.879c-.032-.109-.057-.219-.085-.329a11.973 11.973 0 0 1 -.384-2.964c0-.214.02-.423.032-.635 0-.1.008-.206.016-.308l6.394 2.643a3.385 3.385 0 0 1 1.915-.591c.065 0 .127 0 .191.005l2.865-4.145v-.062a4.533 4.533 0 0 1 9.066 0zm-9.763 6.618a2.55 2.55 0 0 0 -3.262-1.411l1.525.63a1.877 1.877 0 1 1 -1.446 3.464l-1.475-.606a2.529 2.529 0 0 0 1.315 1.25 2.559 2.559 0 0 0 3.339-1.374 2.526 2.526 0 0 0 .004-1.951zm8.251-6.618a3.021 3.021 0 1 0 -3.021 3.015 3.022 3.022 0 0 0 3.021-3.013z",fill:"#fff"})]}):t==="youtube"?(0,E.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"})}):t==="twitch"?(0,E.jsxs)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,E.jsx)("path",{d:"m24 12a12 12 0 1 1 -12-12 12 12 0 0 1 12 12z",fill:"#111"}),(0,E.jsx)("path",{d:"m12.308 17.167-1.833 1.833h-1.818v-1.833h-3.357v-9.733l.925-2.434h12.475v8.517l-3.648 3.65zm5.175-10.95h-10.043v8.824h2.743v1.833l1.817-1.833h3.342l2.14-2.126zm-5.483 6.083v-3.65h-1.218v3.65zm3.342 0v-3.65h-1.216v3.65z",fill:"#fff"})]}):t==="facebook"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m13.079 19h-2.9v-7h-1.441v-2.408h1.442v-1.456c0-1.96.813-3.136 3.136-3.136h1.933v2.408h-1.2c-.91 0-.965.35-.965.966v1.218h2.183l-.257 2.408h-1.931z",fill:"currentColor"})}):t==="pinterest"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.336 5c-3.822 0-5.754 2.744-5.754 5.025a3.065 3.065 0 0 0 1.652 3.066.279.279 0 0 0 .407-.2l.154-.644a.373.373 0 0 0-.113-.448 2.341 2.341 0 0 1-.532-1.582 3.812 3.812 0 0 1 3.961-3.849 3.009 3.009 0 0 1 3.346 3.08c0 2.323-1.022 4.283-2.547 4.283a1.253 1.253 0 0 1-1.273-1.554 17.616 17.616 0 0 0 .713-2.856 1.081 1.081 0 0 0-1.092-1.2c-.854 0-1.553.881-1.553 2.071a2.954 2.954 0 0 0 .266 1.274l-1.038 4.383a9.389 9.389 0 0 0-.027 3.065.109.109 0 0 0 .2.042 8.737 8.737 0 0 0 1.457-2.631l.561-2.212a2.3 2.3 0 0 0 1.959 1.008c2.59 0 4.34-2.366 4.34-5.516a4.8 4.8 0 0 0-5.087-4.605z",fill:"currentColor"})}):t==="substack"?(0,E.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z"})}):t==="threads"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12.186 24h-.007c-3.582-.024-6.332-1.22-8.173-3.555C2.26 18.212 1.5 15.228 1.5 11.83 1.5 8.16 2.673 5.097 4.902 2.935 7.026.877 10.02 0 13.565 0c3.784 0 6.81 1.028 8.995 3.056 2.008 1.862 3.013 4.417 2.91 7.391-.122 3.518-1.57 6.136-4.304 7.781-1.892 1.138-4.103 1.62-6.57 1.433-.122.392-.266.769-.434 1.127-.514 1.096-1.18 1.96-1.982 2.569-.884.67-1.933 1.01-3.118 1.01-1.34 0-2.42-.42-3.21-1.248-.78-.82-1.17-1.89-1.17-3.18 0-1.512.52-2.73 1.545-3.62 1.018-.883 2.45-1.33 4.258-1.33.56 0 1.11.04 1.63.12-.04-.53-.13-1.02-.27-1.46-.26-.81-.71-1.45-1.34-1.92-.62-.47-1.42-.71-2.38-.71-1.09 0-2.02.29-2.77.87-.29.22-.68.17-.9-.12l-.76-1.03c-.22-.3-.16-.71.13-.93C7.43 5.37 8.95 4.9 10.8 4.9c1.64 0 2.99.41 4.02 1.22 1.04.81 1.73 1.93 2.06 3.33.15.65.25 1.42.3 2.31 1.68-.31 3.05-1.05 4.08-2.2 1.01-1.13 1.52-2.58 1.52-4.31 0-2.43-.84-4.32-2.5-5.62C18.63 1.32 16.32.5 13.56.5c-3.03 0-5.54.73-7.27 2.21C4.48 4.27 3.5 6.78 3.5 10c0 3.1.66 5.62 1.96 7.49 1.34 1.93 3.38 2.92 6.07 2.95 1.76.02 3.32-.34 4.64-1.07.28-.15.63-.05.78.22l.55.98c.15.28.05.63-.22.78-1.63.9-3.55 1.35-5.7 1.35z"})}):t==="tiktok"?(0,E.jsx)("svg",{className:"icon-svg",height:"24",viewBox:"0 0 24 24",width:"24",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,E.jsx)("path",{d:"m12.308 5.012c.763-.012 1.522 0 2.281-.012a3.636 3.636 0 0 0 1.02 2.434 4.12 4.12 0 0 0 2.473 1.043v2.349a6.177 6.177 0 0 1-2.449-.564 7.207 7.207 0 0 1-.947-.543c0 1.705.008 3.406-.01 5.105a4.442 4.442 0 0 1-.789 2.3 4.343 4.343 0 0 1-3.448 1.872 4.254 4.254 0 0 1-2.379-.6 4.393 4.393 0 0 1-2.127-3.331c-.014-.292-.019-.584-.007-.868a4.395 4.395 0 0 1 5.091-3.9c.013.864-.021 1.727-.021 2.591a2.007 2.007 0 0 0-2.558 1.237 2.316 2.316 0 0 0-.079.939 1.992 1.992 0 0 0 3.658.736 1.39 1.39 0 0 0 .239-.62c.057-1.043.034-2.082.041-3.126.006-2.351-.007-4.7.011-7.041z",fill:"currentColor"})}):t==="bluesky"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.879.139 2.588-.02 3.868.002 5.03c.08 4.201 1.84 10.024 3.931 12.397 2.091 2.373 4.545 1.573 5.467.927.817-.573 1.564-1.611 2.6-2.92 1.036 1.309 1.783 2.347 2.6 2.92.922.646 3.376 1.446 5.467-.927 2.091-2.373 3.851-8.196 3.931-12.397.022-1.162-.137-2.442-.9-3.151-.659-.613-1.664-.935-4.3-1.074C16.046 4.747 13.087 8.686 12 10.8z"})}):t==="github"?(0,E.jsx)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"currentColor",children:(0,E.jsx)("path",{d:"M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0 0 24 12c0-6.63-5.37-12-12-12z"})}):t==="rss"?(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("path",{d:"M4 11a9 9 0 0 1 9 9"}),(0,E.jsx)("path",{d:"M4 4a16 16 0 0 1 16 16"}),(0,E.jsx)("circle",{cx:"5",cy:"19",r:"1"})]}):(0,E.jsxs)("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,E.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,E.jsx)("path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"}),(0,E.jsx)("path",{d:"M2 12h20"})]})}function U0({authorCount:e=0,authorArticlesList:t,authorBioLength:n,customBio:a,customHeaderKicker:l,customHeaderTitle:i,effectiveAuthorHandle:r,effectiveAuthorName:o,isReviewWidget:u=!1,onBioChange:c,onHeaderKickerChange:s,onHeaderTitleChange:f,selectedProfile:d,showAuthorBio:m=!0,showAuthorIdentity:v=!0,showSocialButtons:A=!0,stabilizeBio:b=!1,totalDealCount:h=0,website:g}){let p=Vu(r,o),y=g||"tomsguide",C=Gu[y]||y,R=Nr[y],T=r?.toLowerCase(),M=o?.toLowerCase(),w=t.find(Be=>T&&Be.articleauthorhandle?.some(Je=>Je?.toLowerCase()===T)||M&&Be.articleauthor?.some(Je=>Je?.toLowerCase()===M))||null,D=w?sf(w,r,o):0,k=d?.image||(w?c0(w,D):""),se=d?n==="short"?d.bioShort||"":d.bioLong||d.bioShort||"":w?_r(w,D,n):"",I=p?`Our team is dedicated to researching, reviewing and recommending the latest and best products in all the categories that matter to you. Below you can shop the latest ${h} ${u?"review ":""}recommendations from ${e} ${C} ${u?"editor tests":"editors"}.`:se||`Handpicked deals and recommendations curated by ${o||"our expert editorial team"}.`,j=d?.role||"",He=p?y0[y]||[]:d?.socialNetworks||[];!p&&w&&(j||(j=u0(w,D)),He.length===0&&(He=Uu(w,D)));let ze=d?.fullName||o||"Author Name",St=p?`site:${y}`:`author:${d?.handle||r||ze}`,Ie=A&&He.length>0,rn=!p&&!!j||Ie;return(0,E.jsxs)("div",{className:"tg-df-author-card",style:{textAlign:"center",padding:"1.75rem 1rem 0.25rem 1rem",margin:"0 auto",maxWidth:"48rem"},children:[v&&(p?(0,E.jsx)("div",{className:"tg-df-author-media-slot tg-df-author-image-container",style:{margin:"0 auto 0.75rem auto",textAlign:"center",minHeight:"180px",display:"flex",alignItems:"center",justifyContent:"center"},children:R?(0,E.jsx)("img",{src:R,alt:C,className:"tg-df-site-logo",style:{maxHeight:"150px",maxWidth:"520px",objectFit:"contain",margin:"0 auto",display:"block"}}):(0,E.jsx)("div",{style:{fontSize:"1.75rem",fontWeight:700,color:"#111827"},children:C})}):(0,E.jsx)("div",{className:"tg-df-author-media-slot",children:(0,E.jsxs)("div",{className:"tg-df-author-profile-image-wrapper",children:[k?(0,E.jsx)("img",{src:ri(k),alt:ze,className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",objectFit:"cover",display:"block"}}):(0,E.jsx)("div",{className:"tg-df-author-image",style:{width:"180px",height:"180px",borderRadius:"50%",background:"#e2e8f0",display:"block"}}),R?(0,E.jsx)("img",{src:R,alt:"",className:"tg-df-author-profile-brand-logo"}):null]})})),v&&(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(H0,{contentKey:`${St}:kicker`,defaultText:u?"Reviews shop by":"Shop by",kind:"kicker",onChange:s,value:l}),(0,E.jsx)(H0,{contentKey:`${St}:title`,defaultText:p?C:ze,kind:"title",onChange:f,value:i}),rn&&(0,E.jsxs)("div",{className:`tg-df-author-meta-slot${p?" tg-df-author-meta-slot--site":""}${Ie?"":" tg-df-author-meta-slot--no-social"}`,children:[!p&&j?(0,E.jsx)("div",{className:"tg-df-author-role",id:"tg-df-author-role-display",style:{fontSize:"0.9375rem",fontWeight:500,color:"var(--tg-df-blue, #1F69FF)",margin:"0 0 0.5rem 0",lineHeight:1.3},children:j}):null,Ie?(0,E.jsx)("div",{className:"tg-df-author-social-links",children:He.map(Be=>(0,E.jsx)("a",{href:Be.href,target:"_blank",rel:"noopener noreferrer",title:Be.label,"aria-label":Be.label,className:"tg-df-author-social-btn","data-social-key":Be.key.toLowerCase(),children:r2(Be.key)},Be.key))}):null]})]}),m&&(0,E.jsx)(i2,{contentKey:St,initialBio:a,defaultPlaceholder:I,onBioChange:c,stabilizeHeight:b})]})}var te=B(O(),1);function df(e){if(!e||typeof e!="object")return"";if(e.type==="voucher_code"&&e.display_value)return e.display_value;let t=Array.isArray(e)?e:Object.keys(e).filter(n=>Object.prototype.hasOwnProperty.call(e,n)).map(n=>e[n]);for(let n of t){let a=df(n);if(a)return a}return""}function o2({endTime:e}){if(!e)return null;let t=e;!isNaN(Number(t))&&String(t).length===10&&(t=Number(t)*1e3);let n=new Date(t),a=new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric",year:"numeric"});return(0,te.jsxs)("span",{className:"tg-df-voucher-expiry",children:[(0,te.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginRight:"4px"},children:[(0,te.jsx)("circle",{cx:"12",cy:"12",r:"10"}),(0,te.jsx)("polyline",{points:"12 6 12 12 16 14"})]}),"Expires ",a.format(n)]})}function G0({error:e,loading:t,merchant:n,onClose:a,vouchers:l}){return(0,te.jsx)("div",{className:`tg-df-modal-backdrop ${n?"active":""}`,onClick:i=>{i.target===i.currentTarget&&a()},children:(0,te.jsxs)("div",{className:"tg-df-modal",children:[(0,te.jsxs)("div",{className:"tg-df-modal-header",children:[(0,te.jsx)("h3",{className:"tg-df-modal-title",children:n?`${n} Coupons & Deals`:"Available Coupons & Deals"}),(0,te.jsx)("button",{className:"tg-df-modal-close",onClick:a,children:(0,te.jsxs)("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,te.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,te.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),(0,te.jsx)("div",{className:"tg-df-modal-body",children:t?(0,te.jsx)("div",{className:"tg-df-message",children:(0,te.jsx)("div",{className:"tg-df-coupon-spinner",style:{width:"24px",height:"24px",borderColor:"#ccc",borderTopColor:"#3b82f6"}})}):e?(0,te.jsx)("div",{className:"tg-df-message",children:"Failed to load vouchers."}):l.length===0?(0,te.jsxs)("div",{className:"tg-df-message",children:["No active vouchers found for ",n,"."]}):l.map((i,r)=>{let o=i.offer?.name||i.offer?.title||i.name||i.title||i.model_name||"Voucher",u=i.offer?.link||i.offer?.url||i.link||i.url||"#",c=i.merchant,s=Array.isArray(c)?c[0]?.logo_url||"":c?.logo_url||"",f=df(i.offer)||df(i)||i.offer?.voucher_code||i.voucher_code||"",d=i.offer?.end_time||i.end_time||"";return(0,te.jsxs)("a",{href:u,target:"_blank",rel:"noopener nofollow",className:"tg-df-voucher-item",children:[s?(0,te.jsx)("img",{src:s,alt:"Logo",className:"tg-df-voucher-logo"}):(0,te.jsx)("div",{className:"tg-df-voucher-logo",style:{background:"#e2e8f0"}}),(0,te.jsxs)("div",{className:"tg-df-voucher-content",children:[(0,te.jsx)("h4",{className:"tg-df-voucher-title",children:o}),(0,te.jsxs)("div",{style:{display:"flex",alignItems:"center",flexWrap:"wrap",gap:"8px",marginTop:"8px"},children:[f&&(0,te.jsxs)("span",{className:"tg-df-voucher-code",title:"Copy to clipboard",onClick:m=>{m.preventDefault(),m.stopPropagation();let v=m.currentTarget;navigator.clipboard.writeText(f).then(()=>{v.classList.add("copied");let A=v.querySelector(".tg-df-voucher-code-text"),b=v.querySelector(".tg-df-voucher-copy-icon"),h=A.innerText,g=b.innerHTML;A.innerText="Copied!",b.innerHTML='',setTimeout(()=>{v.classList.remove("copied"),A&&(A.innerText=h),b&&(b.innerHTML=g)},2e3)})},children:[(0,te.jsx)("span",{className:"tg-df-voucher-code-text",children:f}),(0,te.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",style:{marginLeft:"6px",flexShrink:0},className:"tg-df-voucher-copy-icon",children:[(0,te.jsx)("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),(0,te.jsx)("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]})]}),d&&(0,te.jsx)(o2,{endTime:d})]})]})]},r)})})]})})}var N=B(ft(),1);function ci(e){if(!e||!e.articlepage)return[];try{let t=e.articlepage;if(!Array.isArray(t))return typeof t=="string"?JSON.parse(t):t;if(t.length===0)return[];let n=t[0];return typeof n=="string"?JSON.parse(n):Array.isArray(n)?n:n&&typeof n=="object"&&"type"in n?t:n}catch{return[]}}function si(e,t=!1,{includeCollections:n=!0,includeDeals:a=!0}={}){let l=t?e.filter(r=>r.type==="buying-guide"):[];if(l.length>0)return l;let i=e.filter(r=>r.type==="deal"||r.type==="featured-product");return a&&!n&&!t?i.filter(r=>r.type==="deal"):i}function di(e,t){if(!t||t.length===0)return!0;let n=e&&(e.brand||e.retailer)||"";if(!n)return!1;let a=n.replace(/^\d+\.\s*/,"").trim().toLowerCase();return t.some(l=>{let i=l.trim().toLowerCase();return a===i||a.startsWith(`${i} `)||a.includes(i)||i.includes(a)})}function wt(e){return!e||e==="auto"?"US":e}function an(e){return e==="GB"||e==="UK"?"GBP":e==="AU"?"AUD":e==="CA"?"CAD":["DE","FR","IT","ES","NL"].includes(e)?"EUR":"USD"}function P0(e,t){if(e.isBuyingGuideProduct||e.isReviewProduct)return!0;if(t==="unavailable")return!1;let n=String(e.isoCurrency||e.currency||"").trim().toUpperCase();return({$:"USD",A$:"AUD",CA$:"CAD","\xA3":"GBP","\u20AC":"EUR"}[n]||n)===an(t)}function fi(e,t){let n=e.data||{},a=e.type==="featured-product",l=n.price||{},i=a?n.currency||(n.price&&typeof n.price=="object"?n.price.currency:""):l.currency||(typeof l=="string"?l:"")||n.currency||"";!i&&n.variants&&n.variants.length>0&&(i=n.variants[0].currency||"");let r="$",o="USD",u=(i||"").toString().toUpperCase().trim();return u==="GBP"||u==="\xA3"||u.includes("POUND")||u.includes("163")?(r="\xA3",o="GBP"):u==="EUR"||u==="\u20AC"||u.includes("EURO")||u.includes("8364")?(r="\u20AC",o="EUR"):u==="AUD"||u==="A$"?(r="A$",o="AUD"):u==="CAD"||u==="CA$"?(r="CA$",o="CAD"):u==="USD"||u==="$"||u.includes("DOLLAR")||u.includes("36")?(r="$",o="USD"):(o=an(t),o==="GBP"?r="\xA3":o==="AUD"?r="A$":o==="CAD"?r="CA$":o==="EUR"&&(r="\u20AC")),{isoCurr:o,currencyStr:r}}function Ku(e){let t=e.data||{},n=e.type==="featured-product",a=t.price||{},l=0,i=0;return n?(l=typeof a=="number"?a:a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):t.msrp?parseFloat(t.msrp):0):(l=a.amount?parseFloat(a.amount):0,i=a.amountWas?parseFloat(a.amountWas):0),{rawPrice:l,rawMsrp:i}}function Sa(e,t){if(!t||t==="all"||e=50||t==="over50"&&et.includes("channelgaminghardware"))}function F0(e,t,n){let a=Zt(e),l=mf(e),i=c=>l.some(s=>s.includes(c)),r=a==="news"&&i("shopping")&&i("deal")&&i("typedeal"),o=a==="deals"||r,u=a==="collection"||i("sigproductcollection")||i("vanhawkcollectionwidget")||a==="news"&&i("shopping")&&!r||a==="idea"&&i("shopping")&&(i("sigproductcollection")||i("vanhawkcollectionwidget"));return t&&o||n&&u}function el(e,t=!0,n=!0,a){if(a==="homesandgardens")return F0(e,t,n);let l=Zt(e),i=mf(e),r=l==="deals"||i.some(u=>u.includes("typedeal")),o=i.some(u=>u.includes("sigproductcollection"));return t&&r||n&&o}function j0(e,t,n=!1,a=!1,l=!0,i=!0){if(a&&Zt(e)==="review")return t!=="pcgamer"||s2(e);if(t==="homesandgardens")return Zt(e)==="buying guide"?n:F0(e,i,l);let r=Wu(t,{includeBuyingGuideProducts:n,includeCollections:l,includeDeals:i});if(r.includeAllContent)return i&&l?!0:n||el(e,i,l);let o=Zt(e),u=[...Array.isArray(e.articlecontroltag)?e.articlecontroltag:[],...Array.isArray(e.articletagtypetaghandle)?e.articletagtypetaghandle:[]],c=f=>!f.requiredArticleType||o===f.requiredArticleType.toLowerCase(),s=f=>!f.requiredControlTags||f.requiredControlTags.every(d=>u.some(m=>typeof m=="string"&&Hr(m).includes(Hr(d))));return r.scopes.some(f=>!c(f)||!s(f)?!1:f.parameter==="articleType"?o===f.value.toLowerCase():f.parameter==="articleControlTag"?u.some(d=>typeof d=="string"&&Hr(d).includes(Hr(f.value))):!1)}function hf(e,t){let n=e.map(a=>({...a}));return t.filter(a=>(a.isBuyingGuideProduct||a.isReviewProduct)&&a.brand).forEach(a=>{let l=String(a.brand).trim();if(!l)return;let i=n.find(r=>r.formatted_value.toLowerCase()===l.toLowerCase());i?i.count++:n.push({formatted_value:l,count:1})}),n.sort((a,l)=>l.count-a.count)}function Iu(e,t){let n={};return e.forEach(a=>{if(!a.articlepage)return;let l=ci(a),i=si(l,t.includeBuyingGuideProducts,{includeCollections:t.includeCollections,includeDeals:t.includeDeals});(t.includeDeals===!1||t.includeCollections===!1)&&!i.some(r=>r.type==="buying-guide")&&!el(a,t.includeDeals,t.includeCollections,t.website)||i.forEach(r=>{if(fi(r,t.activeRegionCode).isoCurr!==t.targetIso)return;let{rawPrice:o,rawMsrp:u}=Ku(r);if(!Sa(o,t.priceRange)||!Ca(o,u,t.discountAmount))return;let c=r.data||{},s=c.brand||c.retailer;if(!s)return;let f=s.replace(/^\d+\.\s*/,"").trim(),d=f.toLowerCase(),m=Object.keys(n).find(v=>v.toLowerCase()===d);m?n[m]++:(f===f.toLowerCase()&&(f=f.replace(/\b\w/g,v=>v.toUpperCase())),n[f]=1)})}),Object.keys(n).map(a=>({formatted_value:a,count:n[a]})).sort((a,l)=>l.count-a.count)}function d2(e){return String(e||"").trim().toLowerCase()}function Ju(e){return(Array.isArray(e)?e:[e]).map(d2).filter(Boolean)}function pf(e){let t=Ju(e.articletype),n=[...Ju(e.articlecontroltag),...Ju(e.articletagtypetaghandle)];return t.includes("deals")||n.some(a=>a.replace(/[\s-]+/g,"_")==="type_deal")}function V0(e){let t=Array.isArray(e)?e[0]:e,n=new Date(String(t||"")).getTime();return Number.isFinite(n)?n:null}function f2(e){for(let t of[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]){let n=V0(t);if(n!==null)return n}return null}function g2(e){for(let t of[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]){let n=V0(t);if(n!==null)return n}return null}function Y0(e){return Ju(e.articletype).includes("review")}function yf(e,t=new Date,n=0){let a=pf(e)?1:Y0(e)?36:n;if(a=i.getTime()}function tl(e,t,n=0){return e.filter(a=>yf(a,t,n))}var m2=15;function Q0(e){return Array.isArray(e.articlemedia)?e.articlemedia[0]:""}function zr(e){return Array.isArray(e.documenturl)?e.documenturl[0]:e.documenturl||""}function h2(e){return kt(String(e||"").replace(/^\d+\.\s*/,"").trim())}function tt(e){return Array.isArray(e)?e.map(tt).find(Boolean)||"":typeof e=="string"||typeof e=="number"?String(e).trim():""}function vf(e,t=!1){return(t?[e.datepublished,e.publisheddate,e.createddate,e.contentmodifieddate,e.modifieddate]:[e.contentmodifieddate,e.modifieddate,e.createddate,e.datepublished,e.publisheddate]).map(tt).find(Boolean)||""}function p2(e,t,n){let a=tt(e).match(/^\s*(\d+)\s*[.)]\s*/)?.[1];return a||[t.rank,t.position,t.number,t.productNumber,t.product_number].map(tt).map(i=>i.match(/^\s*(\d+)\s*$/)?.[1]||"").find(Boolean)||String(n+1)}function y2(e){let t=tt(e);try{t=new URL(t).pathname}catch{}return t=t.split(/[?#]/)[0].split("/").filter(Boolean).at(-1)||"",t.split(/[-_]+/).filter(Boolean).map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}function v2(e){return tt(e.documenthandle)||tt(e.document_handle)||zr(e)||tt(e.documentname)||tt(e.documentnametext)}function b2(e,t){if(!t)return"";let n=t.length>m2?"Ranked":t;return`#${e} ${n}`}function A2(e){if(typeof e=="object"&&e)return String(e["data-model-name"]||"");try{return String(JSON.parse(String(e||""))["data-model-name"]||"")}catch{return""}}function w2(e){let t=e.brand||e.productBrand||e.manufacturer||e.maker||"";return typeof t=="string"?kt(t.replace(/^\d+\.\s*/,"").trim()):""}function S2(e){let t=e.price&&typeof e.price=="object"?e.price:{},n=Number(t.salePrice||t.price||e.salePrice||e.current_price||(typeof e.price=="number"?e.price:0)),a=Number(t.wasPrice||t.msrp||e.was_price||e.msrp||0),l=e.url||e.link?.url||e.link?.href||"";return{currency:t.currency||e.currency||"",rawMsrp:Number.isFinite(a)?a:0,rawPrice:Number.isFinite(n)?n:0,url:l}}function bf(e){let t=e?.review||{},n=t.rating??t.starRating??t.score??e?.rating??e?.starRating??e?.score,a=Number(n);if(!Number.isFinite(a)||a5?a/20:a;return Math.min(l,5)}function K0({article:e,block:t,articleIdentity:n,blockIndex:a,authorProfile:l,imageUrl:i}){let r=t.data||{},o=r.review||{},u=h2(r.title),c=p2(r.title,r,a),s=y2(v2(e)),f=zr(e),d=S2(r),m=!!d.url,v=m?d.url:o.url||f,A=i||Q0(e);return{id:`airedale-buying-guide-${n}-${a}`,url:v,image:A,fallbackImage:A,title:u,brand:w2(r),productName:u,merchant:"",rawPrice:d.rawPrice,rawMsrp:d.rawMsrp,price:d.rawPrice>0?String(d.rawPrice):"",msrp:d.rawMsrp>0?String(d.rawMsrp):"",currency:d.currency,isoCurrency:"",isCheckPrice:d.rawPriceOriginal reporting appears on the publisher’s site.
Open original article →