Your Cart

.lbz-cta { /* size */ width: 230px; /* adjust as needed */ height: 56px; /* adjust as needed */ box-sizing: border-box; /* layout */ display: inline-grid; grid-template-columns: 1fr auto; /* label | arrow */ align-items: center; gap: 12px; padding: 8px 8px; /* visuals */ border: none; border-radius: 10px; background: #f9794c; /* idle color */ color: #fff; /* idle text color */ text-decoration: none; box-shadow: 0 8px 28px rgba(0,0,0,.15); /* effects */ position: relative; overflow: hidden; /* for shine sweep */ isolation: isolate; transform-origin: center; transition: transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease; /* subtle attention bounce (idle) */ animation: lbz-bounce 3s ease-in-out infinite both; } /* label */ .lbz-cta__text { font-size: 14px; font-family: lato; font-weight: 500; line-height: 1; margin: 0; padding: 0; } /* arrow bubble */ .lbz-cta__arrow { display: inline-grid; place-items: center; width: 25px; height: 25px; border-radius: 999px; background: #fff; /* bubble background */ color: #000; /* arrow is gray by default */ font-size: 14px; line-height: 1; transition: transform .22s ease, color .22s ease, opacity .22s ease; opacity: .95; /* tiny idle nudge to catch the eye */ animation: lbz-arrow-nudge 3s ease-in-out infinite both; } /* hover / focus / active state */ .lbz-cta:hover, .lbz-cta:focus-visible, .lbz-cta:active { transform: scale(1.03); background: linear-gradient(135deg, #f9794c 0%, #f68b65 100%); color: #fff; /* make label white */ box-shadow: 0 14px 36px rgba(0,0,0,.15); } /* arrow reacts too */ .lbz-cta:hover .lbz-cta__arrow, .lbz-cta:focus-visible .lbz-cta__arrow, .lbz-cta:active .lbz-cta__arrow { color: #22c55e; /* arrow glyph turns white */ transform: translateX(4px); } /* pause idle animations while interacting */ .lbz-cta:hover, .lbz-cta:focus-visible { animation: none; } .lbz-cta:hover .lbz-cta__arrow, .lbz-cta:focus-visible .lbz-cta__arrow { animation: none; } /* subtle shine sweep */ .lbz-cta::after { content: “”; position: absolute; inset: 0; background: linear-gradient(75deg, transparent 0%, rgba(255,255,255,.5) 45%, transparent 65%); transform: translateX(-130%) skewX(-8deg); transition: transform .8s cubic-bezier(.22,.61,.36,1); pointer-events: none; opacity: .22; } .lbz-cta:hover::after { transform: translateX(130%) skewX(-8deg); } /* accessible focus ring */ .lbz-cta:focus-visible { outline: 3px solid #fff; outline-offset: 2px; } /* keyframes */ @keyframes lbz-bounce { 0%, 100% { transform: translateY(0) scale(1); box-shadow: 0 8px 28px rgba(0,0,0,.15); } 20% { transform: translateY(-2px) scale(1.015); box-shadow: 0 14px 36px rgba(0,0,0,.15); } 40% { transform: translateY(0) scale(1); } 60% { transform: translateY(-1px) scale(1.008); } 80% { transform: translateY(0) scale(1); } } @keyframes lbz-arrow-nudge { 0%,100% { transform: translateX(0); opacity: .95; } 20% { transform: translateX(3px); opacity: 1; } 40% { transform: translateX(0); } 60% { transform: translateX(2px); } 80% { transform: translateX(0); } } /* reduced motion preference */ @media (prefers-reduced-motion: reduce) { .lbz-cta, .lbz-cta__arrow { animation: none !important; transition: none !important; } } /* Desktop / default */ .lbx-hero-pills { width: 100%; } .lbx-pill-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } .lbx-pill { display: flex; align-items: center; justify-content: flex-start; /* instead of space-between */ gap: 10px; overflow: hidden; min-height: 140px; padding: 20px 22px; border-radius: 20px; text-decoration: none; box-sizing: border-box; position: relative; } /* Desktop (default) */ .lbx-pill-text { font-size: 22px; line-height: 1.2; } .lbx-pill-arrow { position: static; /* remove any weird positioning */ margin-left: 4px; } .lbx-pill-img { margin-left: auto; position: absolute; right: 0; bottom: 0; max-height: 100%; width: auto; z-index: 1; pointer-events: none; } /* Mobile only */ @media (max-width: 767px) { .lbx-hero-pills { overflow: hidden; } .lbx-pill-grid { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; padding: 0 16px 10px 16px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .lbx-pill-grid::-webkit-scrollbar { display: none; } .lbx-pill { flex: 0 0 44%; min-width: 44%; aspect-ratio: 1 / 1; min-height: auto; padding: 4px 8px 8px 8px; border-radius: 18px; scroll-snap-align: start; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 8px; } .lbx-pill-text { font-size: 16px; line-height: 1.1; max-width: 90%; position: relative; z-index: 2; } .lbx-pill-arrow { margin-left: 0; font-size: 14px; line-height: 1; position: relative; z-index: 2; } .lbx-pill-img { margin-left: 0; position: absolute; right: 0; bottom: 0; max-width: 68%; max-height: 68%; width: auto; object-fit: contain; } .lbx-pill { box-shadow: none !important; } } .lbx-shop-look-wrap { background: #000; color: #fff; padding: 28px 0; overflow: hidden; position: relative; } .lbx-shop-look-inner { max-width: 1400px; margin: 0 auto; padding: 0 32px; box-sizing: border-box; } .lbx-shop-look-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; } .lbx-shop-look-title-wrap { max-width: 720px; } .lbx-shop-look-eyebrow { display: inline-block; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255,255,255,0.62); margin-bottom: 10px; } .lbx-shop-look-title { margin: 0; font-family: Cardo, serif; font-size: clamp(30px, 3vw, 44px); line-height: 1.02; font-weight: 400; color: #fff; } .lbx-shop-look-subtitle { margin: 12px 0 0; font-size: 15px; line-height: 1.65; color: rgba(255,255,255,0.72); max-width: 620px; } .lbx-shop-look-nav { display: flex; align-items: center; gap: 10px; flex-shrink: 0; } .lbx-shop-look-btn { width: 48px; height: 48px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.04); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease; padding: 0; } .lbx-shop-look-btn:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.22); transform: translateY(-1px); } .lbx-shop-look-btn:disabled { opacity: 0.45; cursor: default; transform: none; } .lbx-shop-look-carousel { position: relative; overflow: hidden; } .lbx-shop-look-track { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; padding-bottom: 10px; } .lbx-shop-look-track::-webkit-scrollbar { display: none; } .lbx-shop-look-card { flex: 0 0 calc((100% – 36px) / 3); min-width: calc((100% – 36px) / 3); position: relative; border-radius: 26px; overflow: hidden; background: #111; text-decoration: none; color: #fff; display: block; isolation: isolate; } .lbx-shop-look-image-wrap { position: relative; aspect-ratio: 4 / 5; overflow: hidden; background: #0b0b0b; } .lbx-shop-look-image { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.8s ease; } .lbx-shop-look-card:hover .lbx-shop-look-image { transform: scale(1.04); } .lbx-shop-look-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0.5) 28%, rgba(0,0,0,0.08) 56%, rgba(0,0,0,0) 100%); pointer-events: none; z-index: 1; } .lbx-shop-look-content { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; } .lbx-shop-look-copy { min-width: 0; } .lbx-shop-look-label { display: inline-block; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.66); margin-bottom: 6px; } .lbx-shop-look-name { margin: 0; font-size: 22px; line-height: 1.08; font-weight: 500; color: #fff; text-wrap: balance; } .lbx-shop-look-cta { width: 46px; height: 46px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.08); display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease; } .lbx-shop-look-card:hover .lbx-shop-look-cta { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.28); transform: translateX(2px); } .lbx-shop-look-progress { margin-top: 20px; height: 2px; width: 100%; background: rgba(255,255,255,0.12); border-radius: 999px; overflow: hidden; } .lbx-shop-look-progress-bar { height: 100%; width: 0; background: #f9794c; border-radius: 999px; transition: width 0.2s linear; } @media (max-width: 1024px) { .lbx-shop-look-wrap { padding: 60px 0; } .lbx-shop-look-inner { padding: 0 22px; } .lbx-shop-look-card { flex: 0 0 calc((100% – 18px) / 2); min-width: calc((100% – 18px) / 2); } .lbx-shop-look-name { font-size: 20px; } } @media (max-width: 767px) { .lbx-shop-look-wrap { padding: 48px 0; } .lbx-shop-look-inner { padding: 0 16px; } .lbx-shop-look-header { flex-direction: column; align-items: flex-start; gap: 18px; margin-bottom: 20px; } .lbx-shop-look-nav { display: none; } .lbx-shop-look-track { gap: 12px; padding-bottom: 8px; } .lbx-shop-look-card { flex: 0 0 84%; min-width: 84%; border-radius: 22px; } .lbx-shop-look-content { left: 16px; right: 16px; bottom: 16px; } .lbx-shop-look-name { font-size: 18px; } .lbx-shop-look-masks::before, .lbx-shop-look-masks::after { width: 36px; } }

Luxury watches,
from trusted watch experts.

Over 20 years sourcing, selling and buying pre-owned watches.

Talk to an Expert
.lbx-shop-by-brand { –lbx-bg: #ffffff; –lbx-card-bg: #eeeeee; background: var(–lbx-bg); color: #111111; padding: 24px 0; } .lbx-shop-by-brand__head { max-width: 1440px; margin: 0 auto 22px; padding: 0 clamp(16px, 3vw, 28px); display: flex; align-items: end; justify-content: space-between; gap: 20px; } .lbx-shop-by-brand__title { margin: 0; font-family: Cardo, serif; font-size: clamp(30px, 3vw, 44px); line-height: 1.02; font-weight: 400; } .lbx-shop-by-brand__view-all { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 18px; border: 1px solid rgba(17, 17, 17, 0.14); border-radius: 999px; background: #fff; color: #111111; text-decoration: none; font-size: 14px; font-weight: 600; white-space: nowrap; flex-shrink: 0; transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; } .lbx-shop-by-brand__view-all:hover { transform: translateY(-1px); border-color: rgba(17,17,17,0.24); box-shadow: 0 8px 20px rgba(0,0,0,0.06); } .lbx-shop-by-brand__viewport-wrap { position: relative; max-width: 1440px; margin: 0 auto; } .lbx-shop-by-brand__viewport-wrap::before, .lbx-shop-by-brand__viewport-wrap::after { content: “”; position: absolute; top: 0; bottom: 8px; width: clamp(18px, 3vw, 42px); z-index: 3; pointer-events: none; } .lbx-shop-by-brand__viewport-wrap::before { left: clamp(16px, 3vw, 28px); background: linear-gradient(to right, var(–lbx-bg) 0%, rgba(255,255,255,0) 100%); } .lbx-shop-by-brand__viewport-wrap::after { right: clamp(16px, 3vw, 28px); background: linear-gradient(to left, var(–lbx-bg) 0%, rgba(255,255,255,0) 100%); } .lbx-shop-by-brand__viewport { padding: 0 clamp(16px, 3vw, 28px); overflow: hidden; } .lbx-shop-by-brand__track { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 14px 0 30px; cursor: grab; } .lbx-shop-by-brand__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; -webkit-user-select: none; } .lbx-shop-by-brand__track::-webkit-scrollbar { display: none; } .lbx-brand-card { flex: 0 0 min(15%, 190px); min-width: min(15%, 190px); scroll-snap-align: start; display: flex; flex-direction: column; align-items: center; text-align: center; background: var(–lbx-card-bg); border: 1px solid rgba(17, 17, 17, 0.1); border-radius: 15px; padding: 20px 12px; box-sizing: border-box; transition: transform 0.25s ease, box-shadow 0.25s ease; } .lbx-brand-card:hover { transform: translateY(-3px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); } .lbx-brand-card__img-link { display: block; margin-bottom: 12px; } .lbx-brand-card__img { width: auto; height: 90px; max-width: 100%; object-fit: contain; -webkit-user-drag: none; user-select: none; -webkit-user-select: none; } .lbx-brand-card__name { margin: 0 0 4px; font-size: clamp(14px, 1.1vw, 18px); font-weight: 600; line-height: 1.2; } .lbx-brand-card__name a { color: #111111; text-decoration: none; } .lbx-brand-card__links { margin: 0; font-size: 12px; line-height: 1; color: #555555; } .lbx-brand-card__links a { color: #555555; text-decoration: underline; } @media (max-width: 1200px) { .lbx-brand-card { flex: 0 0 min(20%, 180px); min-width: min(20%, 180px); } } @media (max-width: 900px) { .lbx-brand-card { flex: 0 0 min(27%, 160px); min-width: min(27%, 160px); } } @media (max-width: 767px) { .lbx-shop-by-brand__head { align-items: center; } .lbx-shop-by-brand__viewport { padding: 0; overflow: hidden; } .lbx-shop-by-brand__track { gap: 12px; padding: 10px 16px 24px; } .lbx-brand-card { flex: 0 0 40%; min-width: 40%; padding: 16px 10px; } .lbx-brand-card__img { height: 70px; } .lbx-brand-card__name { font-size: 14px; } .lbx-shop-by-brand__viewport-wrap::before, .lbx-shop-by-brand__viewport-wrap::after { width: 20px; } }

Shop by Brand

View All
(function () { var tracks = document.querySelectorAll(‘.lbx-shop-by-brand__track’); Array.prototype.forEach.call(tracks, function (track) { if (track.dataset.lbxDrag === ‘1’) return; track.dataset.lbxDrag = ‘1’; var down = false, moved = false, startX = 0, startScroll = 0, pid = null; track.addEventListener(‘dragstart’, function (e) { e.preventDefault(); }); track.addEventListener(‘pointerdown’, function (e) { if (e.pointerType === ‘touch’) return; if (e.pointerType === ‘mouse’ && e.button !== 0) return; down = true; moved = false; startX = e.clientX; startScroll = track.scrollLeft; pid = e.pointerId; }); track.addEventListener(‘pointermove’, function (e) { if (!down) return; var dx = e.clientX – startX; if (!moved && Math.abs(dx) > 4) { moved = true; track.classList.add(‘is-dragging’); try { track.setPointerCapture(pid); } catch (err) {} } if (moved) { e.preventDefault(); track.scrollLeft = startScroll – dx; } }); function endDrag() { if (!down) return; down = false; track.classList.remove(‘is-dragging’); if (pid !== null) { try { track.releasePointerCapture(pid); } catch (err) {} } pid = null; setTimeout(function () { moved = false; }, 0); } track.addEventListener(‘pointerup’, endDrag); track.addEventListener(‘pointercancel’, endDrag); track.addEventListener(‘pointerleave’, endDrag); track.addEventListener(‘click’, function (e) { if (moved) { e.preventDefault(); e.stopPropagation(); } }, true); }); })();
.lbz-sell-section { background: #fff; padding: 20px 0 26px; } .lbz-sell-subhead { font-size: 0.5em; font-weight: 600; color: #f9794c; } .lbz-sell-container { max-width: 1440px; margin: 0 auto; padding: clamp(24px, 3vw, 40px) clamp(20px, 3vw, 32px); border: 1px solid rgba(17, 17, 17, 0.1) !important; border-radius: 24px; box-sizing: border-box; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(320px, 440px); gap: clamp(40px, 5vw, 96px); align-items: center; } .lbz-sell-content { max-width: 700px; } .lbz-sell-eyebrow { margin: 0 0 14px; font-size: 12px; line-height: 1; letter-spacing: 0.18em; text-transform: uppercase; color: #777; } .lbz-sell-title { margin: 0 0 20px; font-size: clamp(34px, 4vw, 60px); line-height: 0.98; font-weight: 400; letter-spacing: -0.03em; max-width: 760px; } .lbz-sell-sub { margin: 0 0 30px; font-size: 16px; line-height: 1.65; color: #555; max-width: 560px; } .lbz-sell-points { display: grid; gap: 18px; margin: 0 0 32px; } .lbz-sell-point { display: grid; grid-template-columns: 22px 1fr; column-gap: 14px; align-items: start; } .lbz-sell-point-icon { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; font-size: 16px; line-height: 1; color: #f9794c; font-weight: 700; transform: translateY(1px); } .lbz-sell-point p { margin: 0; font-size: 16px; line-height: 1.55; color: #222; } .lbz-sell-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 0 28px; border-radius: 999px; background: #f9794c; color: #fff; text-decoration: none; font-weight: 700; font-size: 15px; transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease; } .lbz-sell-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12); } .lbz-sell-micro { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: #888; } /* RIGHT SIDE */ .lbz-sell-visual { display: flex; justify-content: flex-end; align-items: center; width: 100%; } .lbz-sell-card { width: min(100%, 340px); background: #f5f5f5; border-radius: 28px; padding: 20px 20px 22px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.06); } .lbz-sell-card-top { display: flex; justify-content: flex-start; margin-bottom: 10px; } .lbz-sell-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 28px; font-size: 12px; line-height: 1; font-weight: 600; background: #111; color: #fff; padding: 0 12px; border-radius: 999px; white-space: nowrap; } .lbz-sell-img { display: block; width: 100%; max-width: 250px; height: auto; margin: 8px auto 18px; mix-blend-mode: multiply; } .lbz-sell-card-body { padding: 0 2px; } .lbz-sell-card-title { margin: 0 0 6px; font-size: 16px; line-height: 1.3; font-weight: 700; color: #111; } .lbz-sell-card-meta { margin: 0 0 14px; font-size: 14px; line-height: 1.4; color: #777; } .lbz-sell-offer { display: flex; flex-direction: column; gap: 4px; } .lbz-sell-offer span { font-size: 14px; line-height: 1.3; color: #111; } .lbz-sell-offer strong { font-size: 18px; line-height: 1.25; color: #111; font-weight: 700; } @media (max-width: 900px) { .lbz-sell-section { padding: 36px 0 44px; } .lbz-sell-container { grid-template-columns: 1fr; gap: 32px; } .lbz-sell-visual { justify-content: center; order: -1; } .lbz-sell-card { width: min(100%, 360px); } .lbz-sell-title { max-width: 100%; } .lbz-sell-sub { max-width: 100%; } } @media (max-width: 640px) { .lbz-sell-section { padding: 28px 0 36px; } .lbz-sell-container { padding: 20px 18px 28px; gap: 28px; } .lbz-sell-title { font-size: clamp(32px, 10vw, 44px); line-height: 1.02; } .lbz-sell-sub { font-size: 15px; line-height: 1.6; margin-bottom: 26px; } .lbz-sell-points { gap: 16px; margin-bottom: 28px; } .lbz-sell-point { grid-template-columns: 20px 1fr; column-gap: 12px; } .lbz-sell-point-icon { width: 20px; height: 20px; font-size: 15px; } .lbz-sell-point p { font-size: 15px; line-height: 1.5; } .lbz-sell-card { border-radius: 24px; padding: 18px 18px 20px; } .lbz-sell-img { max-width: 220px; margin: 6px auto 16px; } }

Sell Your Watch.
Get a fair, transparent offer from industry leading buyers!

With over 20 years in the luxury watch market and thousands of transactions completed, Luxury Bazaar offers a fast, secure, and straightforward way to sell your watch.

No pressure. No obligation.

Transparent market-based offers

Fully insured shipping provided

Fast payment once approved

Get Your Quote

Trusted by thousands of watch buyers & sellers worldwide

NOW BUYING
Luxury Watch

Rolex Daytona

Market Value Verified

Offer Range $24,500 – $32,800
.lbx-shop-look-track { cursor: grab; } .lbx-shop-look-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; -webkit-user-select: none; } .lbx-shop-look-track.is-dragging .lbx-shop-look-image { -webkit-user-drag: none; } (function () { const track = document.getElementById(‘lbxShopLookTrack’); const prevBtn = document.getElementById(‘lbxShopLookPrev’); const nextBtn = document.getElementById(‘lbxShopLookNext’); const progressBar = document.getElementById(‘lbxShopLookProgress’); if (!track) return; let autoRotate; let isPaused = false; function getCardWidth() { const firstCard = track.querySelector(‘.lbx-shop-look-card’); if (!firstCard) return 320; const gap = parseFloat(getComputedStyle(track).gap) || 18; return firstCard.getBoundingClientRect().width + gap; } function updateProgress() { const maxScroll = track.scrollWidth – track.clientWidth; const progress = maxScroll > 0 ? (track.scrollLeft / maxScroll) * 100 : 0; if (progressBar) progressBar.style.width = progress + ‘%’; } function updateButtons() { if (!prevBtn || !nextBtn) return; const maxScroll = track.scrollWidth – track.clientWidth; prevBtn.disabled = track.scrollLeft = maxScroll – 4; } function scrollNext() { const maxScroll = track.scrollWidth – track.clientWidth; const next = track.scrollLeft + getCardWidth(); if (next >= maxScroll – 4) { track.scrollTo({ left: 0, behavior: ‘smooth’ }); } else { track.scrollTo({ left: next, behavior: ‘smooth’ }); } } function scrollPrev() { const prev = track.scrollLeft – getCardWidth(); track.scrollTo({ left: Math.max(prev, 0), behavior: ‘smooth’ }); } function startAutoRotate() { stopAutoRotate(); autoRotate = setInterval(() => { if (!isPaused) scrollNext(); }, 5000); } function stopAutoRotate() { if (autoRotate) clearInterval(autoRotate); } if (nextBtn) { nextBtn.addEventListener(‘click’, function () { scrollNext(); }); } if (prevBtn) { prevBtn.addEventListener(‘click’, function () { scrollPrev(); }); } track.addEventListener(‘scroll’, function () { updateProgress(); updateButtons(); }); track.addEventListener(‘mouseenter’, function () { isPaused = true; }); track.addEventListener(‘mouseleave’, function () { isPaused = false; }); track.addEventListener(‘touchstart’, function () { isPaused = true; }, { passive: true }); track.addEventListener(‘touchend’, function () { isPaused = false; }, { passive: true }); window.addEventListener(‘resize’, function () { updateProgress(); updateButtons(); startAutoRotate(); }); /* drag to scroll */ let isDown = false; let didMove = false; let startX = 0; let startScroll = 0; let pointerId = null; track.addEventListener(‘dragstart’, function (e) { e.preventDefault(); }); track.addEventListener(‘pointerdown’, function (e) { if (e.pointerType === ‘touch’) return; if (e.pointerType === ‘mouse’ && e.button !== 0) return; isDown = true; didMove = false; startX = e.clientX; startScroll = track.scrollLeft; pointerId = e.pointerId; isPaused = true; }); track.addEventListener(‘pointermove’, function (e) { if (!isDown) return; const dx = e.clientX – startX; if (!didMove && Math.abs(dx) > 4) { didMove = true; track.classList.add(‘is-dragging’); try { track.setPointerCapture(pointerId); } catch (err) {} } if (didMove) { e.preventDefault(); track.scrollLeft = startScroll – dx; } }); function endDrag() { if (!isDown) return; isDown = false; track.classList.remove(‘is-dragging’); if (pointerId !== null) { try { track.releasePointerCapture(pointerId); } catch (err) {} } pointerId = null; setTimeout(function () { didMove = false; }, 0); } track.addEventListener(‘pointerup’, endDrag); track.addEventListener(‘pointercancel’, endDrag); track.addEventListener(‘pointerleave’, function () { endDrag(); isPaused = false; }); track.addEventListener(‘click’, function (e) { if (didMove) { e.preventDefault(); e.stopPropagation(); } }, true); updateProgress(); updateButtons(); startAutoRotate(); })();
.lbx-popular-pills { –lbx-bg: #ffffff; background: var(–lbx-bg); color: #111111; padding: 24px 0; } .lbx-popular-pills__head { max-width: 1440px; margin: 0 auto 22px; padding: 0 clamp(16px, 3vw, 28px); } .lbx-popular-pills__title { margin: 0; font-family: Cardo, serif; font-size: clamp(30px, 3vw, 44px); line-height: 1.02; font-weight: 400; } .lbx-popular-pills__viewport { max-width: 1440px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 28px); overflow: hidden; } /* Desktop / default — carousel of square pills */ .lbx-popular-pill-grid { display: flex; gap: 16px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 14px 0 30px; cursor: grab; } .lbx-popular-pill-grid.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; -webkit-user-select: none; } .lbx-popular-pill-grid::-webkit-scrollbar { display: none; } .lbx-popular-pill { flex: 0 0 calc((100% – (16px * 5)) / 6); min-width: calc((100% – (16px * 5)) / 6); aspect-ratio: 1 / 1; scroll-snap-align: start; display: flex; align-items: center; justify-content: center; border-radius: 20px; overflow: hidden; background-color: #3a3a3a; background-size: cover; background-position: center; text-decoration: none; position: relative; transition: transform 0.25s ease, box-shadow 0.25s ease; -webkit-user-drag: none; } .lbx-popular-pill:hover { transform: translateY(-3px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); } .lbx-popular-pill-overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); z-index: 1; } /* Pills without an image, use the grey gradients instead */ .lbx-popular-pill–nofill.lbx-popular-pill–1 { background-image: none; background: linear-gradient(145deg, #4a4a4a 0%, #9a9a9a 100%); } .lbx-popular-pill–nofill.lbx-popular-pill–2 { background-image: none; background: linear-gradient(145deg, #5c5c5c 0%, #b0b0b0 100%); } .lbx-popular-pill–nofill.lbx-popular-pill–3 { background-image: none; background: linear-gradient(145deg, #545454 0%, #a5a5a5 100%); } .lbx-popular-pill–nofill.lbx-popular-pill–4 { background-image: none; background: linear-gradient(145deg, #666666 0%, #bcbcbc 100%); } .lbx-popular-pill–nofill.lbx-popular-pill–5 { background-image: none; background: linear-gradient(145deg, #6e6e6e 0%, #c2c2c2 100%); } .lbx-popular-pill–nofill.lbx-popular-pill–6 { background-image: none; background: linear-gradient(145deg, #585858 0%, #aeaeae 100%); } .lbx-popular-pill-text { position: relative; z-index: 2; color: #ffffff; font-size: 20px; line-height: 1.2; font-weight: 600; text-align: center; padding: 0 14px; } .lbx-popular-pill-arrow { position: absolute; bottom: 14px; right: 16px; z-index: 2; color: #f9794c; font-size: 15px; } /* Mobile only */ @media (max-width: 767px) { .lbx-popular-pills__viewport { overflow: hidden; padding: 0; } .lbx-popular-pills__head { padding: 0 16px; } .lbx-popular-pill-grid { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; padding: 0 16px 10px 16px; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; } .lbx-popular-pill-grid::-webkit-scrollbar { display: none; } .lbx-popular-pill { flex: 0 0 44%; min-width: 44%; aspect-ratio: 1 / 1; border-radius: 18px; scroll-snap-align: start; } .lbx-popular-pill-text { font-size: 16px; padding: 0 10px; } .lbx-popular-pill-arrow { bottom: 10px; right: 10px; font-size: 14px; } } (function () { var grids = document.querySelectorAll(‘.lbx-popular-pill-grid’); Array.prototype.forEach.call(grids, function (grid) { if (grid.dataset.lbxDrag === ‘1’) return; grid.dataset.lbxDrag = ‘1’; var down = false, moved = false, startX = 0, startScroll = 0, pid = null; grid.addEventListener(‘dragstart’, function (e) { e.preventDefault(); }); grid.addEventListener(‘pointerdown’, function (e) { if (e.pointerType === ‘touch’) return; if (e.pointerType === ‘mouse’ && e.button !== 0) return; down = true; moved = false; startX = e.clientX; startScroll = grid.scrollLeft; pid = e.pointerId; }); grid.addEventListener(‘pointermove’, function (e) { if (!down) return; var dx = e.clientX – startX; if (!moved && Math.abs(dx) > 4) { moved = true; grid.classList.add(‘is-dragging’); try { grid.setPointerCapture(pid); } catch (err) {} } if (moved) { e.preventDefault(); grid.scrollLeft = startScroll – dx; } }); function endDrag() { if (!down) return; down = false; grid.classList.remove(‘is-dragging’); if (pid !== null) { try { grid.releasePointerCapture(pid); } catch (err) {} } pid = null; setTimeout(function () { moved = false; }, 0); } grid.addEventListener(‘pointerup’, endDrag); grid.addEventListener(‘pointercancel’, endDrag); grid.addEventListener(‘pointerleave’, endDrag); grid.addEventListener(‘click’, function (e) { if (moved) { e.preventDefault(); e.stopPropagation(); } }, true); }); })();
.lbx-featured-collections { –lbx-bg: #ffffff; background: var(–lbx-bg); color: #111111; padding: 24px 0; } .lbx-featured-collections__head { max-width: 1440px; margin: 0 auto 22px; padding: 0 clamp(16px, 3vw, 28px); } .lbx-featured-collections__title { margin: 0; font-family: Cardo, serif; font-size: clamp(30px, 3vw, 44px); line-height: 1.02; font-weight: 400; } .lbx-featured-collections__viewport-wrap { position: relative; max-width: 1440px; margin: 0 auto; } .lbx-featured-collections__viewport-wrap::before, .lbx-featured-collections__viewport-wrap::after { content: “”; position: absolute; top: 0; bottom: 8px; width: clamp(18px, 3vw, 42px); z-index: 3; pointer-events: none; } .lbx-featured-collections__viewport-wrap::before { left: clamp(16px, 3vw, 28px); background: linear-gradient(to right, var(–lbx-bg) 0%, rgba(255,255,255,0) 100%); } .lbx-featured-collections__viewport-wrap::after { right: clamp(16px, 3vw, 28px); background: linear-gradient(to left, var(–lbx-bg) 0%, rgba(255,255,255,0) 100%); } .lbx-featured-collections__viewport { padding: 0 clamp(16px, 3vw, 28px); overflow: hidden; } .lbx-featured-collections__track { display: flex; gap: 18px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding: 14px 0 30px; cursor: grab; } .lbx-featured-collections__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; -webkit-user-select: none; } .lbx-featured-collections__track::-webkit-scrollbar { display: none; } .lbx-collection-card { flex: 0 0 min(23%, 290px); min-width: min(23%, 290px); aspect-ratio: 1 / 1; scroll-snap-align: start; position: relative; display: flex; align-items: center; justify-content: center; border-radius: 20px; overflow: hidden; background-size: cover; background-position: center; text-decoration: none; transition: transform 0.25s ease, box-shadow 0.25s ease; -webkit-user-drag: none; } .lbx-collection-card:hover { transform: translateY(-4px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15); } .lbx-collection-card__overlay { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.45); z-index: 1; } .lbx-collection-card__title { position: relative; z-index: 2; color: #ffffff; font-family: Cardo, serif; font-weight: 400; font-size: clamp(16px, 1.4vw, 22px); text-align: center; padding: 0 12px; } @media (max-width: 1200px) { .lbx-collection-card { flex: 0 0 min(31%, 290px); min-width: min(31%, 290px); } } @media (max-width: 900px) { .lbx-collection-card { flex: 0 0 min(48%, 260px); min-width: min(48%, 260px); } } @media (max-width: 767px) { .lbx-featured-collections__head { padding: 0 16px; } .lbx-featured-collections__viewport { padding: 0; overflow: hidden; } .lbx-featured-collections__track { gap: 12px; padding: 0 16px 10px 16px; } .lbx-collection-card { flex: 0 0 calc(60% – 8px); min-width: calc(60% – 8px); } .lbx-collection-card__title { font-size: 16px; } .lbx-featured-collections__viewport-wrap::before, .lbx-featured-collections__viewport-wrap::after { width: 20px; } } (function () { var tracks = document.querySelectorAll(‘.lbx-featured-collections__track’); Array.prototype.forEach.call(tracks, function (track) { if (track.dataset.lbxDrag === ‘1’) return; track.dataset.lbxDrag = ‘1’; var down = false, moved = false, startX = 0, startScroll = 0, pid = null; track.addEventListener(‘dragstart’, function (e) { e.preventDefault(); }); track.addEventListener(‘pointerdown’, function (e) { if (e.pointerType === ‘touch’) return; if (e.pointerType === ‘mouse’ && e.button !== 0) return; down = true; moved = false; startX = e.clientX; startScroll = track.scrollLeft; pid = e.pointerId; }); track.addEventListener(‘pointermove’, function (e) { if (!down) return; var dx = e.clientX – startX; if (!moved && Math.abs(dx) > 4) { moved = true; track.classList.add(‘is-dragging’); try { track.setPointerCapture(pid); } catch (err) {} } if (moved) { e.preventDefault(); track.scrollLeft = startScroll – dx; } }); function endDrag() { if (!down) return; down = false; track.classList.remove(‘is-dragging’); if (pid !== null) { try { track.releasePointerCapture(pid); } catch (err) {} } pid = null; setTimeout(function () { moved = false; }, 0); } track.addEventListener(‘pointerup’, endDrag); track.addEventListener(‘pointercancel’, endDrag); track.addEventListener(‘pointerleave’, endDrag); track.addEventListener(‘click’, function (e) { if (moved) { e.preventDefault(); e.stopPropagation(); } }, true); }); })();
.lbz-trust { background: #fff; color: #111; padding: clamp(24px, 4vw, 48px) 0; font-family: system-ui, -apple-system, Segoe UI, Roboto, “Helvetica Neue”, Arial, “Noto Sans”, “Liberation Sans”, sans-serif; } /* — 3-column grid: [Trust][Authenticity][2×2 Cards] — */ .lbz-trust__grid { max-width: 1440px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 24px); display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: clamp(16px, 3vw, 28px); align-items: stretch; } /* Stack the three columns on narrower desktop/tablet screens */ @media (max-width: 1024px) { .lbz-trust__grid { grid-template-columns: 1fr; } } /* — Shared tokens — */ :root{ –feature-minh: clamp(300px, 28vw, 360px); –feature-radius: 18px; –feature-pad-y: clamp(20px, 3vw, 28px); –feature-pad-x: clamp(16px, 3vw, 24px); –feature-gap: clamp(10px, 1.8vw, 16px); –feature-text-w: 32ch; –feature-bg: #0a0a0a; –feature-border: #1b1b1b; –feature-shadow: 0 12px 36px rgba(0,0,0,.28); –brand-accent: #f9794c; } /* ====================================== Feature boxes (Trust + Authenticity) ====================================== */ .lbz-trust__left, .authenticity-banner { min-height: var(–feature-minh); background: var(–feature-bg); color: #fff; border: 1px solid var(–feature-border); border-radius: var(–feature-radius); box-shadow: var(–feature-shadow); display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; row-gap: var(–feature-gap); padding: var(–feature-pad-y) var(–feature-pad-x); overflow: hidden; isolation: isolate; } /* Subtle highlight in authenticity only */ .authenticity-banner { background: radial-gradient(120% 120% at 100% 0%, rgba(255,255,255,0.06) 0%, rgba(255,255,255,0) 50%), var(–feature-bg); } /* — Hard-size the two feature logos — */ .lbz-trust__left .lbz-trust__logo, .authenticity-banner .authenticity-banner__logo { height: 125px !important; width: auto !important; max-width: none !important; object-fit: contain !important; display: block !important; margin: 0 auto !important; filter: drop-shadow(0 6px 18px rgba(0,0,0,.35)); } /* — Trust copy — */ .lbz-trust__copy { max-width: var(–feature-text-w); margin: 0; font-weight: 500; line-height: 1.3; letter-spacing: .2px; font-family: ‘cardo’, serif; font-size: clamp(22px, 1.2vw + 14px, 26px); color: #fff; } /* — Authenticity text and link — */ .authenticity-banner__text { max-width: var(–feature-text-w); margin: 0; font-weight: 500; font-family: ‘cardo’, serif; line-height: 1.3; letter-spacing: .2px; font-size: clamp(24px, 1.2vw + 14px, 36px); color: #fff; } .authenticity-banner__link { margin-top: calc(var(–feature-gap) + 2px); font-size: 14px; font-weight: 500; color: #fff; text-decoration: none; text-underline-offset: 3px; text-decoration-thickness: 1.5px; transition: color .2s ease; } .authenticity-banner__link:hover, .authenticity-banner__link:focus-visible { color: #ff9a78; outline: none; } /* ====================================== Column 3: 2×2 feature cards ====================================== */ .lbz-trust__right { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: clamp(12px, 2vw, 18px); align-items: stretch; } /* Cards */ .lbz-card { display: grid; grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 10px; background: #0a0a0a; color: #fff; text-decoration: none; border-radius: 14px; border: 1px solid #1b1b1b; padding: 20px 18px 22px; box-shadow: 0 8px 24px rgba(0,0,0,.22); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease; } .lbz-card:hover { transform: translateY(-2px); box-shadow: 0 14px 32px rgba(0,0,0,.28); border-color: #2a2a2a; background: #0f0f0f; } /* Card image */ .lbz-card__img { height: var(–card-img-h, 64px) !important; width: auto !important; max-width: none !important; object-fit: contain !important; display: block !important; margin: 0 auto !important; filter: drop-shadow(0 4px 10px rgba(0,0,0,.35)); transition: transform .25s ease, opacity .25s ease; } .lbz-card:hover .lbz-card__img { transform: translateY(-1px) scale(1.02); } /* Card text */ .lbz-card__text { font-size: 15px; letter-spacing: .3px; line-height: 1.2; text-transform: uppercase; max-width: 26ch; } .lbz-card__text strong { display: block; font-size: 15px; font-weight: 900; } .lbz-card__text strong + * { margin-left: .25ch; } /* Small text link */ .lbz-card__link { margin-top: auto; font-size: 12px; line-height: 1.2; color: #f9794c; text-decoration: none; text-underline-offset: 2px; text-decoration-thickness: 1.25px; opacity: .95; transition: color .2s ease, opacity .2s ease; } .lbz-card:hover .lbz-card__link, .lbz-card:focus-visible .lbz-card__link { color: #ff9a78; opacity: 1; } /* — Safety: neutralize generic theme img rules ONLY inside this section — */ .lbz-trust img { max-width: none !important; height: auto; } /* ====================================== MOBILE CAROUSEL ====================================== */ @media (max-width: 767px) { .lbz-trust { overflow: hidden; padding: 0px 0; } /* ✅ FIXED: real left/right spacing */ .lbz-trust__grid { display: flex; gap: 12px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 6px; } /* ? THIS is what actually creates visible edge padding */ .lbz-trust__grid::before, .lbz-trust__grid::after { content: “”; flex: 0 0 0px; } .lbz-trust__grid::-webkit-scrollbar { display: none; } .lbz-trust__left, .authenticity-banner, .lbz-trust__right { flex: 0 0 calc(100% – 20px); min-width: calc(100% – 20px); scroll-snap-align: start; } /* tighter feature boxes */ .lbz-trust__left, .authenticity-banner { padding: 16px 12px; box-shadow: none !important; } .lbz-trust__left .lbz-trust__logo, .authenticity-banner .authenticity-banner__logo { height: 80px !important; } .lbz-trust__copy { font-size: 18px; } .authenticity-banner__text { font-size: 22px; } /* cards grid */ .lbz-trust__right { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } /* ✅ RESTORED BLACK CARDS (clean, no shadow) */ .lbz-card { background: #0a0a0a !important; border: 1px solid #1b1b1b !important; box-shadow: none !important; padding: 12px 8px; min-height: 130px; border-radius: 12px; gap: 6px; } .lbz-card__img { height: 38px !important; filter: none; } .lbz-card__text { font-size: 11px; line-height: 1.2; } .lbz-card__text strong { font-size: 11px; } .lbz-card__link { font-size: 9px; margin-top: 4px; } }

Trusted Luxury Watch Dealer. Over 20 Years Sourcing, Selling and Buying Rare & Unique Pre-Owned Watches.

We Guarantee the Authenticity & Quality of Every Product
View Our Commitment to Authenticity

New from Grey Market

View All
.lbz-articles-section { background: #fff; padding: 56px 0; –lbz-border: rgba(17, 17, 17, 0.08); } .lbz-articles-shell { max-width: 1440px; margin: 0 auto; padding: 0 clamp(16px, 3vw, 28px); } .lbz-articles-head { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 26px; } .lbz-articles-eyebrow { margin: 0 0 8px; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #777; } .lbz-articles-title { margin: 0; font-size: clamp(30px, 4vw, 48px); line-height: 1; font-weight: 400; letter-spacing: -0.03em; } .lbz-articles-viewall { display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 0 18px; border: 1px solid var(–lbz-border); border-radius: 999px; background: #fff; color: var(–lbz-text); text-decoration: none; font-size: 14px; font-weight: 600; transition: transform 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease; } .lbz-articles-viewall:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,0.12); } .lbz-articles-carousel-wrap { position: relative; overflow: hidden; -webkit-mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% – 24px), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 24px, #000 calc(100% – 24px), transparent 100%); } .lbz-articles-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% – 36px) / 3); gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 12px; scrollbar-width: none; cursor: grab; } .lbz-articles-track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none; -webkit-user-select: none; } .lbz-articles-track::-webkit-scrollbar { display: none; } .lbz-article-card { background: #f5f5f5; border-radius: 26px; overflow: hidden; text-decoration: none; color: #111; scroll-snap-align: start; display: flex; flex-direction: column; min-height: 100%; transition: transform 0.22s ease, box-shadow 0.22s ease; -webkit-user-drag: none; } .lbz-article-card:hover { transform: translateY(-4px); box-shadow: 0 18px 36px rgba(0,0,0,0.08); } .lbz-article-image-wrap { position: relative; aspect-ratio: 16 / 10; background: #ececec; overflow: hidden; } .lbz-article-image { width: 100%; height: 100%; object-fit: cover; display: block; -webkit-user-drag: none; } .lbz-article-placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: #999; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; background: linear-gradient(135deg, #efefef 0%, #e6e6e6 100%); } .lbz-article-body { padding: 18px 18px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; } .lbz-article-title { margin: 0; font-size: 20px; line-height: 1.2; font-weight: 600; letter-spacing: -0.02em; } .lbz-article-desc { margin: 0; font-size: 14px; line-height: 1.55; color: #666; } .lbz-article-linkline { margin-top: auto; font-size: 13px; font-weight: 700; color: #f9794c; } .lbz-articles-progress { width: 100%; height: 4px; margin-top: 10px; background: #ececec; border-radius: 999px; overflow: hidden; } .lbz-articles-progress-bar { display: block; width: 0%; height: 100%; background: #f9794c; border-radius: inherit; transition: width 0.12s linear; } .lbz-articles-loading, .lbz-articles-error { grid-column: 1 / -1; padding: 32px 20px; border-radius: 20px; background: #f5f5f5; color: #666; font-size: 15px; } @media (max-width: 1024px) { .lbz-articles-track { grid-auto-columns: calc((100% – 18px) / 2); } } @media (max-width: 767px) { .lbz-articles-section { padding: 42px 0; } .lbz-articles-head { align-items: flex-start; flex-direction: column; margin-bottom: 20px; } .lbz-articles-track { grid-auto-columns: 78%; gap: 14px; } .lbz-article-title { font-size: 18px; } .lbz-article-body { padding: 16px 16px 18px; } .lbz-articles-carousel-wrap { -webkit-mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% – 12px), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 12px, #000 calc(100% – 12px), transparent 100%); } } document.addEventListener(‘DOMContentLoaded’, function () { const API_URL = ‘/grey-market/wp-json/wp/v2/posts?per_page=10&_embed’; const track = document.getElementById(‘lbzArticlesTrack’); const progress = document.getElementById(‘lbzArticlesProgress’); if (!track) return; track.innerHTML = ‘
Loading latest articles…
‘; function stripHTML(html) { const div = document.createElement(‘div’); div.innerHTML = html || ”; return (div.textContent || div.innerText || ”).trim(); } function truncate(text, maxLength) { if (!text) return ”; if (text.length <= maxLength) return text; return text.slice(0, maxLength).trim().replace(/[.,;:!?-]?s*$/, '') + '…'; } function localizeUrl(url) { try { const parsed = new URL(url, window.location.origin); if (parsed.hostname === 'www.luxurybazaar.com' || parsed.hostname === 'luxurybazaar.com') { return `${window.location.origin}${parsed.pathname}${parsed.search}${parsed.hash}`; } return parsed.href; } catch (err) { return url; } } function getFeaturedImage(post) { const media = post?._embedded?.['wp:featuredmedia']?.[0]; if (!media) return ''; if (media.media_details?.sizes?.large?.source_url) { return localizeUrl(media.media_details.sizes.large.source_url); } if (media.media_details?.sizes?.medium_large?.source_url) { return localizeUrl(media.media_details.sizes.medium_large.source_url); } if (media.source_url) { return localizeUrl(media.source_url); } return ''; } function renderArticles(posts) { if (!posts.length) { track.innerHTML = '
No articles were found.
‘; return; } track.innerHTML = posts.map(post => { const title = stripHTML(post.title?.rendered || ‘Untitled Article’); const link = localizeUrl(post.link || ‘#’); const image = getFeaturedImage(post); const description = truncate(stripHTML(post.excerpt?.rendered || ”), 130); return `
${ image ? `${title}` : `
Grey Market
` }

${title}

${description || ‘Read the latest article from Grey Market.’}

Read Article
`; }).join(”); updateProgress(); } function updateProgress() { const maxScroll = track.scrollWidth – track.clientWidth; const current = track.scrollLeft; const pct = maxScroll > 0 ? (current / maxScroll) * 100 : 0; progress.style.width = pct + ‘%’; } track.addEventListener(‘scroll’, updateProgress); window.addEventListener(‘resize’, updateProgress); /* drag to scroll */ let isDown = false; let didMove = false; let startX = 0; let startScroll = 0; let pointerId = null; track.addEventListener(‘dragstart’, function (e) { e.preventDefault(); }); track.addEventListener(‘pointerdown’, function (e) { if (e.pointerType === ‘touch’) return; if (e.pointerType === ‘mouse’ && e.button !== 0) return; isDown = true; didMove = false; startX = e.clientX; startScroll = track.scrollLeft; pointerId = e.pointerId; }); track.addEventListener(‘pointermove’, function (e) { if (!isDown) return; const dx = e.clientX – startX; if (!didMove && Math.abs(dx) > 4) { didMove = true; track.classList.add(‘is-dragging’); try { track.setPointerCapture(pointerId); } catch (err) {} } if (didMove) { e.preventDefault(); track.scrollLeft = startScroll – dx; } }); function endDrag() { if (!isDown) return; isDown = false; track.classList.remove(‘is-dragging’); if (pointerId !== null) { try { track.releasePointerCapture(pointerId); } catch (err) {} } pointerId = null; setTimeout(function () { didMove = false; }, 0); } track.addEventListener(‘pointerup’, endDrag); track.addEventListener(‘pointercancel’, endDrag); track.addEventListener(‘pointerleave’, endDrag); track.addEventListener(‘click’, function (e) { if (didMove) { e.preventDefault(); e.stopPropagation(); } }, true); fetch(API_URL, { credentials: ‘same-origin’ }) .then(response => { if (!response.ok) { throw new Error(‘Failed to load posts’); } return response.json(); }) .then(posts => { renderArticles(posts); }) .catch(error => { console.error(‘LBZ articles carousel error:’, error); track.innerHTML = `
Unable to load articles. This usually means the WordPress REST API is blocked, disabled, or being cached incorrectly.
`; updateProgress(); }); });