Skip to content

YOUR CART IS EMPTY

CONTINUE SHOPPING

Have an account?

Log in to check out faster.

Best Sellers

Best Sellers

At Linens & Hutch, our commitment to providing premium bedding products that... 

Best Sellers

YOUR CART

Loading...

ADD ORDER INSTRUCTIONS

SUBTOTAL

$0

Taxes, Discounts and shipping calculated at checkout

FREE SHIPPING & RETURNS | 101-NIGHT GUARANTEE

  • BEDDING
    • SHEETS
      • All Sheets
      • NEW! Holiday Sheets
      • Solid Sheets
      • Patterned Sheets
      • Linen & Rayon Bamboo Sheets
      • Cotton Sheets
      • Flannel Sheets
      • Embossed Sheets
      • Pillowcases & Shams
    • COMFORTERS
      • All Comforters
      • NEW! Textured Comforters
      • Solid Comforters
      • Patterned Comforters
      • Reversible Comforters
      • 8-Piece Comforter Set
    • DUVETS
      • All Duvet Covers
      • Solid Duvet Covers
      • Patterned Duvet Covers
      • Reversible Duvet Covers
      • Pinch Pleat Duvet Covers
      • Cotton Duvet Cover
      • Cotton Duvet Insert
    • QUILTS
      • All Quilts
      • Solid Quilts
      • Patterned Quilts
      • Reversible Quilts
    • BEDDING ESSENTIALS
      • All Bedding Essentials
      • Jersey Knit Pillow Protector
      • Mattress Protectors
      • Plush Mattress Topper
      • Bed Skirts
  • PILLOWS & THROWS
    • PILLOWS
      • All Pillows
      • Throw Pillows
      • Plush Gel-Fiber Pillow
      • Microfiber Pillow
    • THROW BLANKETS
      • All Throws
      • Oversized Chunky Knit Blanket
      • Chunky Knit Throw Blanket Bundle
      • Faux Fur Tie Dye Throw Blanket
      • Herringbone Throw Blanket
      • Slub-Yarn Throw Blanket
  • BATH & DECOR
    • BATH
      • All Towels
      • Bath Towels
      • Cabana Towels
    • CURTAINS
      • All Curtains
      • Grommet Curtains
  • NEW ARRIVALS
  • BEST SELLERS
  • X (Twitter)
  • Facebook
  • Pinterest
  • Instagram
  • TikTok
Linen-sandhutch
  • BEDDING
    • SHEETS
      • All Sheets
      • NEW! Holiday Sheets
      • Solid Sheets
      • Patterned Sheets
      • Linen & Rayon Bamboo Sheets
      • Cotton Sheets
      • Flannel Sheets
      • Embossed Sheets
      • Pillowcases & Shams
    • COMFORTERS
      • All Comforters
      • NEW! Textured Comforters
      • Solid Comforters
      • Patterned Comforters
      • Reversible Comforters
      • 8-Piece Comforter Set
    • DUVETS
      • All Duvet Covers
      • Solid Duvet Covers
      • Patterned Duvet Covers
      • Reversible Duvet Covers
      • Pinch Pleat Duvet Covers
      • Cotton Duvet Cover
      • Cotton Duvet Insert
    • QUILTS
      • All Quilts
      • Solid Quilts
      • Patterned Quilts
      • Reversible Quilts
    • BEDDING ESSENTIALS
      • All Bedding Essentials
      • Jersey Knit Pillow Protector
      • Mattress Protectors
      • Plush Mattress Topper
      • Bed Skirts
  • PILLOWS & THROWS
    • PILLOWS
      • All Pillows
      • Throw Pillows
      • Plush Gel-Fiber Pillow
      • Microfiber Pillow
    • THROW BLANKETS
      • All Throws
      • Oversized Chunky Knit Blanket
      • Chunky Knit Throw Blanket Bundle
      • Faux Fur Tie Dye Throw Blanket
      • Herringbone Throw Blanket
      • Slub-Yarn Throw Blanket
    • Throw Pillows

      Mix and Match to Make it Your Own

    • Luxurious Throw Blankets

      Equally Beautiful as it is Comfortable

  • BATH & DECOR
    • BATH
      • All Towels
      • Bath Towels
      • Cabana Towels
    • CURTAINS
      • All Curtains
      • Grommet Curtains
    • Ultra Soft Bath Towel Sets

      Made From 100% Cotton and Ultra-Absorbent

    • 100% Total Blackout Curtains

      Thermal Insulated to Keep your Home Temperature Controlled

  • NEW ARRIVALS
  • BEST SELLERS
Cart

ABOUT

  • Our Story
  • Reviews
  • Blog
  • Affiliates
  • E-Gift Cards

CONTACT

  • Search
  • Contact
  • FAQ
  • Returns & Exchanges
  • Mobile Terms
  • Facebook
  • Instagram
  • TikTok
  • X (Twitter)
  • Pinterest
© 2025, Linen-sandhutch
  • Refund policy
  • Privacy policy
  • Terms of service
  • Shipping policy
  • Contact information
  • Choosing a selection results in a full page refresh.
  • Opens in a new window.
) // --------------------------- if (isRebuyReady()) { markRebuyReady(); } else { const readyPoll = setInterval(function(){ if (isRebuyReady()) { markRebuyReady(); clearInterval(readyPoll); } }, 100); // Failsafe so the button never stays locked forever setTimeout(markRebuyReady, 5000); } // --------------------------- // A) Intercept Buy It Now (no redirect; AJAX add; open Rebuy; update count) // --------------------------- document.addEventListener('click', function (e) { const btn = e.target.closest(ADD_BUTTON_SELECTOR); if (!btn) return; // Skip accelerated checkout / Buy-It-Now area if (btn.closest('[data-shopify="payment-button"]')) return; const form = btn.form || btn.closest('form'); if (!form) return; // Prevent native submit -> avoids /cart navigation e.preventDefault(); e.stopPropagation(); // Loading affordance btn.setAttribute('aria-disabled', 'true'); btn.classList.add('loading'); const spinner = btn.parentElement?.querySelector?.('.loading__spinner'); if (spinner) spinner.classList.remove('hidden'); const fd = new FormData(form); fetch('/cart/add.js', { method: 'POST', body: fd, headers: { 'Accept': 'application/json' } }) .then(r => r.ok ? r.json() : r.json().then(j => Promise.reject(j))) .then(() => { scheduleCountRefresh(80); // reflect add quickly openRebuy(); document.dispatchEvent(new CustomEvent('cart:update', { detail: { source: 'universal-atc' } })); }) .catch(err => { console.warn('AJAX add failed; staying on page.', err); }) .finally(() => { btn.classList.remove('loading'); btn.removeAttribute('aria-disabled'); if (spinner) spinner.classList.add('hidden'); }); }, true); // Enter-key submits (prevents redirect if user hits Enter in qty field) document.addEventListener('submit', function(e){ const form = e.target; const addBtn = form.querySelector(ADD_BUTTON_SELECTOR); if (!addBtn) return; if (form.closest('[data-shopify="payment-button"]')) return; e.preventDefault(); addBtn.click(); // delegate to the click handler above }, true); // --------------------------- // B) Header Cart: never go to /cart; queue until Rebuy is ready // --------------------------- let queuedOpen = false; document.addEventListener('click', function(e){ const t = e.target.closest(ALL_CART_TOGGLES); if (!t) return; const isHeaderCart = t.matches(HEADER_CART_SELECTORS); // If Rebuy ready: if (isRebuyReady()) { if (isHeaderCart) { // never navigate to /cart e.preventDefault(); e.stopPropagation(); openRebuy(); } return; // let native Rebuy toggles run normally } // Rebuy not ready yet: intercept and queue (prevents black overlay lock) e.preventDefault(); e.stopPropagation(); if (queuedOpen) return; queuedOpen = true; let tries = 0; const id = setInterval(function(){ tries++; if (openRebuy() || tries > 40) { clearInterval(id); queuedOpen = false; } }, 100); // ~4s max }, true); // --------------------------- // C) Fail-safe: clean any stray overlay while Rebuy is not ready // --------------------------- function clearStuckOverlay(){ const open = document.querySelector('.rebuy-cart--open, .rebuy-cart.is-open'); if (open) return; document.querySelectorAll('.rebuy-cart__overlay, .cart-drawer__overlay, .drawer__overlay, #CartDrawer-Overlay') .forEach(function(el){ const cs = getComputedStyle(el); const visible = cs.display !== 'none' && cs.visibility !== 'hidden' && parseFloat(cs.opacity||'1') > 0.01; if (visible) { el.style.opacity = '0'; el.style.visibility = 'hidden'; el.style.pointerEvents = 'none'; } }); document.body.classList.forEach(function(c){ if (c.startsWith('overflow-hidden')) document.body.classList.remove(c); }); document.body.style.overflow = ''; } const overlayGuard = setInterval(function(){ if (!isRebuyReady()) clearStuckOverlay(); else clearInterval(overlayGuard); }, 800); // --------------------------- // D) MutationObserver (last-resort sync when UI changes but no events fire) // --------------------------- const rebuyRoot = document.querySelector(REBUY_ROOT_SELECTOR); if (rebuyRoot && 'MutationObserver' in window) { const mo = new MutationObserver(function(mutations){ // Any child add/remove or text change inside the Rebuy cart likely means quantity changed scheduleCountRefresh(200); }); mo.observe(rebuyRoot, { childList: true, subtree: true, characterData: true }); } })();