The Butterfly 4-Head Intimate Massager Kit
.llqpd-offer{--llq-lavender:#efe2fc;--llq-lime:#d9f69f;--llq-blue:#5a72c4;--llq-ice:#bbdcfa;--llq-ink:#21192f;--llq-muted:#51476a;display:block;width:100%;margin:12px 0 16px;color: var(--llq-ink);font-family:inherit}.llqpd-offer *{box-sizing:border-box}.llqpd-options{display:grid;gap:10px}.llqpd-option{position:relative;display:grid;grid-template-columns:24px 58px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:92px;width:100%;padding:12px 14px;border:2px solid rgba(90,114,196,.18);border-radius:18px;background:#fff;box-shadow:0 10px 20px rgba(90,114,196,.08);cursor:pointer}.llqpd-option--featured{padding-top:18px;border-color:var(--llq-blue);background:linear-gradient(135deg,#fff 0%,var(--llq-lavender) 52%,var(--llq-ice) 100%);box-shadow:0 16px 30px rgba(90,114,196,.18)}.llqpd-radio{position:absolute;opacity:0;pointer-events:none}.llqpd-check{display:grid;place-items:center;width:24px;height:24px;border:2px solid rgba(90,114,196,.35);border-radius:50%;background:#fff}.llqpd-check:after{content:'';width:12px;height:12px;border-radius:50%;background:var(--llq-blue);opacity:0;transform:scale(.7);transition:opacity .16s ease,transform .16s ease}.llqpd-option:has(.llqpd-radio:checked) .llqpd-check{border-color:var(--llq-blue);background:var(--llq-lime)}.llqpd-option:has(.llqpd-radio:checked) .llqpd-check:after{opacity:1;transform:scale(1)}.llqpd-media{position:relative;display:grid;place-items:center;width:58px;height:58px;border:1px solid rgba(90,114,196,.18);border-radius:14px;background:#fff;overflow:hidden}.llqpd-image{display:block;width:52px;height:52px;border-radius:11px;object-fit:cover}.llqpd-media--stack{overflow:visible}.llqpd-media--stack .llqpd-image{position:relative;z-index:2;box-shadow:0 6px 12px rgba(33,25,47,.12)}.llqpd-media--stack .llqpd-image--back{position:absolute;z-index:1;right:-10px;top:8px;opacity:.72;transform:rotate(7deg)}.llqpd-copy{display:grid;gap:4px;min-width:0}.llqpd-option-title{color:var(--llq-ink);font-size:18px;font-weight:900;letter-spacing:0;line-height:1.12}.llqpd-note{color:var(--llq-muted);font-size:14px;line-height:1.3}.llqpd-tags{display:flex;flex-wrap:wrap;gap:6px}.llqpd-tags span{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border:1px solid rgba(90,114,196,.18);border-radius:999px;background:rgba(255,255,255,.8);color:var(--llq-blue);font-size:12px;font-weight:900;white-space:nowrap}.llqpd-price{display:grid;justify-items:end;gap:2px;min-width:78px;color:var(--llq-ink);font-size:20px;font-weight:950;line-height:1.05;text-align:right}.llqpd-price s{color:#8b8198;font-size:13px;font-weight:800}.llqpd-price small{color:var(--llq-muted);font-size:12px;font-weight:800}.llqpd-badge{position:absolute;top:-10px;right:14px;display:inline-flex;align-items:center;min-height:24px;padding:0 11px;border-radius:999px;background:var(--llq-lime);color:#23325f;font-size:11px;font-weight:950;letter-spacing:0;text-transform:uppercase;box-shadow:0 8px 16px rgba(90,114,196,.14)}@media(max-width:640px){.llqpd-option{grid-template-columns:24px 52px minmax(0,1fr);align-items:start;gap:10px;min-height:0;padding:13px}.llqpd-price{grid-column:3;justify-items:start;text-align:left}.llqpd-media{width:52px;height:52px}.llqpd-image{width:46px;height:46px}} shop-pay-wallet-button{display:none!important}#more-payment-options-link{display:flex!important;align-items:center!important;justify-content:center!important;height:50px!important;border-radius:999px!important;background:linear-gradient(135deg,#5A72C4 0%,#C9A7F2 52%,#F7D4EC 100%)!important;color:#fff!important;text-decoration:none!important;font-weight:800!important;font-size:0!important;border:2px solid #EFE2FC!important;box-shadow:0 12px 26px rgba(90,114,196,.28)!important}#more-payment-options-link:before{content:'Buy it now';font-size:16px}.product-form__submit{background:#D9F69F!important;color:#23325f!important;border:2px solid #5A72C4!important;border-radius:999px!important;min-height:48px!important;font-weight:800!important;box-shadow:0 12px 24px rgba(217,246,159,.44)!important}.product-form__submit:hover{background:#BBDCFA!important;color:#23325f!important;border-color:#5A72C4!important}.price .price-item{color:#5A72C4!important;font-weight:800!important}product-info[data-product-handle='the-butterfly'] h1.product__title,product-info[data-product-handle='the-butterfly'] .product__title h1,product-info[data-product-handle='the-butterfly'] .product__title__wrapper h1{font-weight:950!important;letter-spacing:0!important}.ll-page{--lav:#EFE2FC;--lime:#D9F69F;--ice:#BBDCFA;--mauve:#C9A7F2;--royal:#5A72C4;--petal:#F7D4EC;--ink:#21192F;--muted:#51476A;color:var(--ink);font-family:inherit;margin-top:10px;clear:both;display:flow-root;width:100%;max-width:100%}.ll-page *{box-sizing:border-box}.ll-section{margin:0 0 24px}.ll-card{border:2px solid rgba(90,114,196,.18);border-radius:26px;padding:20px;background:#fff;box-shadow:0 12px 26px rgba(90,114,196,.10)}.ll-label{display:inline-flex;align-items:center;min-height:28px;padding:0 11px;border-radius:999px;background:var(--royal);color:#fff;font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:0;margin:0 0 10px}.ll-section h3{font-size:clamp(22px,3vw,31px);line-height:1.12;margin:0 0 12px;color:var(--ink);letter-spacing:0}.ll-body{margin:0;color:var(--muted);line-height:1.65;font-size:16px}.ll-hero{position:relative;overflow:hidden;border:2px solid var(--royal);border-radius:28px;padding:24px;background:linear-gradient(135deg,#F8FCFF 0%,#DDF1FF 45%,#BBDCFA 100%);box-shadow:0 18px 42px rgba(90,114,196,.18)}.ll-hero-inner{position:relative;display:flex;flex-wrap:wrap;gap:22px;align-items:center;z-index:1}.ll-copy{flex:1 1 310px;min-width:240px}.ll-visual{flex:0 1 250px;min-width:190px;margin-left:auto}.ll-kicker{display:inline-flex;align-items:center;min-height:32px;padding:0 13px;border-radius:999px;background:#fff;color:var(--royal);border:1px solid rgba(90,114,196,.35);font-size:12px;text-transform:uppercase;font-weight:900;letter-spacing:0;margin:0 0 12px}.ll-hero h2{max-width:640px;font-size:clamp(30px,5vw,50px);line-height:1.02;margin:0;color:var(--ink);letter-spacing:0}.ll-lede{margin:14px 0 18px;color:#2f2850;font-size:17px;line-height:1.65;max-width:660px}.ll-pill-row{display:flex;flex-wrap:wrap;gap:9px}.ll-pill{display:inline-flex;align-items:center;min-height:36px;padding:0 13px;border-radius:999px;background:#fff;color:#24305f;border:1px solid rgba(90,114,196,.32);font-size:13px;font-weight:900;box-shadow:0 8px 16px rgba(90,114,196,.10)}.ll-product-pop{position:relative;border:2px solid #fff;border-radius:26px;background:linear-gradient(145deg,#fff 0%,var(--lav) 44%,var(--lime) 100%);padding:16px;box-shadow:0 16px 34px rgba(90,114,196,.22)}.ll-product-pop img{display:block;width:100%;height:auto;border-radius:20px;background:#fff;border:1px solid rgba(90,114,196,.22)}.ll-bubble-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.ll-bubble{min-height:118px;border-radius:26px;padding:16px;border:2px solid #fff;box-shadow:0 12px 26px rgba(90,114,196,.14);color:var(--ink)}.ll-bubble strong{display:block;font-size:15px;margin:0 0 7px;color:var(--ink);font-weight:900}.ll-bubble span{display:block;color:#352d52;line-height:1.45;font-size:14px}.ll-bubble:nth-child(1){background:var(--lime)}.ll-bubble:nth-child(2){background:var(--ice)}.ll-bubble:nth-child(3){background:var(--lav)}.ll-card-color{background:linear-gradient(135deg,#fff 0%,var(--lav) 50%,var(--petal) 100%);border-color:rgba(90,114,196,.28)}.ll-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.ll-feature{border-radius:24px;padding:16px;background:#fff;border:2px solid rgba(90,114,196,.16)}.ll-feature:nth-child(1){background:linear-gradient(135deg,#fff,var(--ice))}.ll-feature:nth-child(2){background:linear-gradient(135deg,#fff,var(--lime))}.ll-feature:nth-child(3){background:linear-gradient(135deg,#fff,var(--petal))}.ll-feature strong{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}.ll-feature span{color:#3d3559;line-height:1.55}.ll-heads-art,.ll-compare-art{border-radius:28px;overflow:hidden;background:#BBDCFA;box-shadow:0 18px 36px rgba(90,114,196,.18)}.ll-heads-art picture,.ll-heads-art img,.ll-compare-art picture,.ll-compare-art img{display:block;width:100%;height:auto}.ll-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px!important}.ll-split>.ll-card{position:relative;overflow:hidden;border:2px solid #fff!important;border-radius:26px!important;padding:22px 18px 18px!important;box-shadow:0 18px 34px rgba(90,114,196,.18)!important}.ll-split>.ll-card:nth-child(1){background:linear-gradient(135deg,#D9F69F 0%,#BBDCFA 58%,#EFE2FC 100%)!important}.ll-split>.ll-card:nth-child(2){background:linear-gradient(135deg,#F7D4EC 0%,#EFE2FC 48%,#BBDCFA 100%)!important}.ll-split>.ll-card:before{content:'';position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(90deg,#5A72C4,#C9A7F2,#D9F69F);pointer-events:none}.ll-split>.ll-card:nth-child(2):before{background:linear-gradient(90deg,#C9A7F2,#F7D4EC,#BBDCFA)}.ll-split>.ll-card>*{position:relative;z-index:1}.ll-split>.ll-card .ll-label{min-height:38px!important;padding:0 17px!important;font-size:13px!important;background:#5A72C4!important;box-shadow:0 10px 20px rgba(90,114,196,.23)!important;margin-bottom:13px!important}.ll-split>.ll-card:nth-child(2) .ll-label{background:#8872D8!important}.ll-list{margin:0;padding-left:20px;color:#342d50;line-height:1.75}.ll-split .ll-list{list-style:none!important;padding-left:0!important;margin:0!important;display:grid!important;gap:9px!important;line-height:1.35!important}.ll-split .ll-list li{position:relative!important;margin:0!important;padding:10px 12px 10px 16px!important;border-radius:16px!important;background:rgba(255,255,255,.78)!important;border:1px solid rgba(90,114,196,.14)!important;box-shadow:0 8px 16px rgba(90,114,196,.08)!important;color:#21192F!important;font-weight:650!important}.ll-split .ll-list li:before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:4px;border-radius:999px;background:#5A72C4!important}.ll-split>.ll-card:nth-child(2) .ll-list li:before{background:#C9A7F2!important}.ll-video-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}.ll-video-strip{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))!important;gap:12px!important;overflow:visible!important;padding:2px 0 8px!important}.ll-video-card{width:100%;max-width:none;min-width:0;border:2px solid #fff;border-radius:24px;background:#fff;overflow:hidden;box-shadow:0 12px 26px rgba(90,114,196,.14)}.ll-video-card:nth-child(1){background:var(--lav)}.ll-video-card:nth-child(2){background:var(--ice)}.ll-video-card:nth-child(3){background:var(--petal)}.ll-video-card:nth-child(4){background:var(--lime)}.ll-video-card:nth-child(5){background:var(--lav)}.ll-video-frame{position:relative;display:block;width:100%;aspect-ratio:9/16;background:#21192F;overflow:hidden;border-bottom:5px solid var(--mauve)}.ll-video-frame video{display:block;width:100%;height:100%;object-fit:cover;background:#21192F}.ll-video-copy{padding:13px;color:#352d52}.ll-video-copy strong{display:block;color:var(--ink);margin-bottom:4px}.ll-video-copy span{font-size:14px;line-height:1.45}.ll-care{background:linear-gradient(135deg,var(--lime),var(--ice) 45%,var(--lav));border-color:#fff}.ll-faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ll-faq{border-radius:22px;padding:16px!important;border:2px solid rgba(90,114,196,.16)!important;box-shadow:0 10px 20px rgba(90,114,196,.10)!important}.ll-faq:nth-child(3n+1){background:var(--ice)!important}.ll-faq:nth-child(3n+2){background:var(--lime)!important}.ll-faq:nth-child(3n){background:var(--lav)!important}.ll-faq strong{display:block!important;color:#21192F!important;margin:0 0 7px!important;font-size:16px!important;line-height:1.2!important;font-weight:950!important}.ll-faq p{margin:0!important;color:#51476A!important;line-height:1.52!important;font-size:14px!important;font-weight:400!important}@media(min-width:900px){.ll-page{clear:both!important;display:flow-root!important;position:relative!important;z-index:1!important}.product__media,.product__media-item{display:flex!important;align-items:center!important;justify-content:center!important}.product__media img,.product__media-item img,.product-media img{max-height:min(70vh,700px)!important;width:auto!important;max-width:100%!important;height:auto!important;object-fit:contain!important;margin-left:auto!important;margin-right:auto!important}}@media(max-width:760px){.ll-page{display:flex!important;flex-direction:column!important}.ll-hero{order:1;padding:18px;border-radius:24px}.ll-bubble-grid{order:2}.ll-video-section{display:contents!important}.ll-video-head{order:3;display:block!important;margin:0 0 24px!important;padding:18px!important;border:2px solid rgba(90,114,196,.18)!important;border-radius:24px!important;background:linear-gradient(135deg,#fff 0%,var(--lav) 58%,var(--ice) 100%)!important;box-shadow:0 12px 26px rgba(90,114,196,.10)!important}.ll-video-head h3{font-size:24px!important;line-height:1.12!important;margin:0!important}.ll-video-strip{display:contents!important}.ll-video-card{margin:0 0 24px!important}.ll-video-strip .ll-video-card:nth-child(1){order:4}.ll-card-color{order:5}.ll-video-strip .ll-video-card:nth-child(2){order:6}.ll-heads-art{order:7}.ll-video-strip .ll-video-card:nth-child(3){order:8}.ll-split{order:9}.ll-video-strip .ll-video-card:nth-child(4){order:10}.ll-compare-art{order:11}.ll-video-strip .ll-video-card:nth-child(5){order:12}.ll-care{order:13}.ll-faq-section{order:14}.ll-visual{margin-left:0}.ll-bubble-grid,.ll-feature-grid,.ll-split,.ll-faq-grid{grid-template-columns:1fr}.ll-bubble{min-height:auto}.ll-pill-row{display:grid;grid-template-columns:1fr;gap:9px;max-width:240px}.ll-pill{width:100%;justify-content:center;text-align:center}.ll-hero h2{font-size:32px}.ll-split{gap:14px!important}.ll-split>.ll-card{padding:21px 14px 15px!important}.ll-split .ll-list li{font-size:14px!important;padding:10px 10px 10px 15px!important}.ll-heads-art,.ll-compare-art{border-radius:24px}} @media(max-width:760px){.ll-video-head{display:none!important}.ll-video-strip .ll-video-card:nth-child(1){order:0!important}.ll-video-strip .ll-video-card:nth-child(2){order:3!important}.ll-card-color{order:4!important}.ll-video-strip .ll-video-card:nth-child(3){order:5!important}.ll-heads-art{order:6!important}.ll-split{order:7!important}.ll-video-strip .ll-video-card:nth-child(4){order:8!important}.ll-compare-art{order:9!important}.ll-care{order:10!important}.ll-video-strip .ll-video-card:nth-child(5){order:11!important}.ll-faq-section{order:12!important}} See what our customers and influencers are saying. Real reviews from real people. First lookA quick feel for the product, scale, and presentation. Unboxing detailSee what the kit looks like before it arrives. Attachment viewA clearer look at the interchangeable heads. In-hand scaleUseful context for size, shape, and handling. Before you buyOne more quick clip to make checkout feel clearer. Love Lacy intimate wellness One sensational product. Four ways to explore. The Butterfly is designed by women, for women. With four interchangeable heads & 10 vibration modes, you can explore the shape, pressure, and rhythm that feels right for you. 4 heads included10 vibration modesUSB rechargeableDiscreet shipping Discreet deliveryAll external packaging for deliveries are unlabeled, so only you will know what is on the way. Smooth siliconeBody-safe medical grade silicone. Support includedAny questions? We are here to help, send us an email at [email protected]. Why it feels different More ways to play, all in one toy. Swap the attachment, change the sensation, and discover what feels best. The Butterfly, designed by women in New York City, packs multiple mind blowing experiences into one easy-to-use massager. Find your perfect fit. Four removable heads let you switch between different sensations. Can't decide between suction or vibration? The Butterfly lets you experiment with both. Easy pace control10 vibration and air pulsing modes make it simple to start gentle and build slowly. Designed for privacyQuiet, sleek, and discreet. This toy comes in a soft, subtle lavender. Best for First-time exploration (4 different heads help you learn what you like) Ladies who want a toy that can be used solo AND with a partner. Because of its unique design, it doesn't get in the way when you are getting intimate with a partner. Upgrading from a single-shape massager (BYE BULLET, HELLO BUTTERFLY) What is included The Butterfly rechargeable massager Four interchangeable heads USB rechargeable cable Cleaning & Use Guides Care and cleaning Clean removable heads before and after use with mild soap and water. Dry fully before storing. Keep the charging area dry and follow the included care instructions. Use only with compatible water-based products. Quick FAQ Is the Butterfly rechargeable?Yes. It is USB rechargeable. How many modes does it have?It includes 10 vibration modes. How many head attachments are included?It includes four interchangeable heads. Is checkout private?Checkout is handled through Shopify, and the order is prepared with discreet shipping in mind. Can I return it?Return requests must follow the Love Lacy shipping and returns policy. For hygiene reasons, intimate items need to be unused, unopened, and in original packaging. Who is it for?Adults looking for a discreet, high quality pleasure tool with more flexibility than a single-shape massager. product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page { display: flex; flex-direction: column; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section { order: 0; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section:has(.ll-video-head) { order: -1; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-video-head .ll-label { display: none; } (() => { const moveButterflyVideos = () => { const productInfo = document.querySelector('product-info[data-product-handle="the-butterfly"]'); const page = productInfo?.querySelector('[data-product-description] .ll-page'); if (!page) return; const videoHeader = page.querySelector('.ll-video-head'); const videoSection = videoHeader?.closest('.ll-section'); const heroSection = page.querySelector('.ll-hero'); if (!videoSection || !heroSection) return; videoHeader.querySelector('.ll-label')?.remove(); if (videoSection !== heroSection.previousElementSibling) { page.insertBefore(videoSection, heroSection); } }; moveButterflyVideos(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', moveButterflyVideos, { once: true }); } window.addEventListener('load', moveButterflyVideos, { once: true }); window.setTimeout(moveButterflyVideos, 500); })(); product-info[data-product-handle='the-butterfly'] .product__info__wrapper{display:flex;flex-direction:column}product-info[data-product-handle='the-butterfly'] .product__info__wrapper>*{order:20}product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX{order:1}product-info[data-product-handle='the-butterfly'] #shopify-block-ANlBrM2Rka2xKMjJNS__judge_me_reviews_preview_badge_YG9cky{order:2;margin:0 0 12px}product-info[data-product-handle='the-butterfly'] .product__title__wrapper{order:3}product-info[data-product-handle='the-butterfly'] .jdgm-preview-badge{display:block!important;visibility:visible!important;width:100%;min-height:40px;padding:9px 12px;border:1px solid #e5dccf;border-radius:0;background:#fffaf1;box-shadow:none}product-info[data-product-handle='the-butterfly'] .jdgm-prev-badge{display:flex!important;align-items:center;gap:7px;min-height:20px;color:#111;visibility:visible!important}product-info[data-product-handle='the-butterfly'] .jdgm-prev-badge__stars .jdgm-star,.jdgm-star{color:#f2b705!important}product-info[data-product-handle='the-butterfly'] .jdgm-prev-badge__text{color:#111!important;font-weight:700!important;font-family:Georgia,serif!important;visibility:visible!important}.ll-review{display:none!important}#judgeme_product_reviews .jdgm-rev-widg{display:block!important;visibility:visible!important} (() => { if (window.__lovelacyButterflyPriceSync) return; window.__lovelacyButterflyPriceSync = true; const productSelector = 'product-info[data-product-handle="the-butterfly"]'; const priceState = { price: 7999, compare: 15999 }; const formatMoney = (cents) => { const amount = Number(cents); if (!Number.isFinite(amount)) return ''; return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(amount / 100); }; const compareMarkup = (cents) => cents ? `${formatMoney(cents)}` : ''; const selectedQuantity = (root) => { const offerQuantity = root.querySelector('[data-llqpd-offer] .llqpd-radio:checked')?.value; if (offerQuantity === '2') return 2; const inputQuantity = Number(root.querySelector('input[name="quantity"]')?.value); return inputQuantity === 2 ? 2 : 1; }; const buttonMarkup = (quantity) => `${formatMoney(priceState.price * quantity)}${compareMarkup(priceState.compare * quantity)}`; const syncPrices = () => { const root = document.querySelector(productSelector); if (!root) return; const onePrice = formatMoney(priceState.price); const oneCompare = formatMoney(priceState.compare); const twoPrice = formatMoney(priceState.price * 2); const twoCompare = formatMoney(priceState.compare * 2); const offerPrices = root.querySelectorAll('[data-llqpd-offer] .llqpd-price'); if (offerPrices[0]) offerPrices[0].innerHTML = `${onePrice}${oneCompare}`; if (offerPrices[1]) offerPrices[1].innerHTML = `${twoPrice}${twoCompare}${onePrice} each`; const quantity = selectedQuantity(root); root.querySelectorAll('.product-form__submit .btn__price[data-product-price], .product-form__shop-bar .btn__price[data-product-price]') .forEach((node) => { node.innerHTML = buttonMarkup(quantity); }); }; const loadProductPrice = () => { fetch('/products/the-butterfly.js?lovelacy_price_sync=' + Date.now(), { cache: 'no-store', credentials: 'same-origin' }) .then((response) => response.ok ? response.json() : null) .then((product) => { const variant = product?.variants?.find((item) => item.available) || product?.variants?.[0]; if (!variant) return; if (variant.price) priceState.price = Number(variant.price); if (variant.compare_at_price) priceState.compare = Number(variant.compare_at_price); syncPrices(); }) .catch(syncPrices); }; const scheduleSync = () => { syncPrices(); window.setTimeout(syncPrices, 80); window.setTimeout(syncPrices, 300); }; document.addEventListener('change', (event) => { if (event.target?.matches?.(`${productSelector} .llqpd-radio, ${productSelector} input[name="quantity"]`)) { scheduleSync(); } }); document.addEventListener('DOMContentLoaded', scheduleSync, { once: true }); window.addEventListener('load', scheduleSync, { once: true }); window.setTimeout(scheduleSync, 600); window.setTimeout(scheduleSync, 1400); loadProductPrice(); scheduleSync(); })(); product-info[data-product-handle='the-butterfly'] .product__info__wrapper{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:10px!important;row-gap:10px!important;align-items:stretch!important} product-info[data-product-handle='the-butterfly'] .product__info__wrapper>*{grid-column:1/-1!important} product-info[data-product-handle='the-butterfly'] #shopify-block-ANlBrM2Rka2xKMjJNS__judge_me_reviews_preview_badge_YG9cky{display:block!important;visibility:visible!important;order:1!important;grid-column:1/-1!important;margin:0 0 12px!important;max-height:none!important;overflow:visible!important} product-info[data-product-handle='the-butterfly'] .product__title__wrapper{order:2!important;grid-column:1/-1!important;margin-bottom:0!important;padding-bottom:0!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT{grid-column:auto!important;display:block!important;margin:0!important;padding:0!important;min-width:0!important;width:100%!important;max-width:100%!important;justify-self:stretch!important;align-self:stretch!important;--PBB:0!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX{order:3!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C{order:4!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG{order:5!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT{order:6!important} product-info[data-product-handle='the-butterfly'] .product__block.product-form{order:7!important;grid-column:1/-1!important;margin-top:0!important} product-info[data-product-handle='the-butterfly'] #shopify-block-AaUVSdzI0VEZIeHRCQ__frequently_bought_app_block_3g4QQP{order:8!important;grid-column:1/-1!important} product-info[data-product-handle='the-butterfly'] [data-product-description]{order:9!important;grid-column:1/-1!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon__row{display:grid!important;grid-template-columns:30px minmax(0,1fr)!important;align-items:center!important;gap:7px!important;width:100%!important;min-height:50px!important;padding:6px 10px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#000!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon{display:grid!important;place-items:center!important;width:28px!important;height:28px!important;min-width:28px!important;border-radius:999px!important;background:#D9F69F!important;color:#5A72C4!important} product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon__text{margin:0!important;color:#000!important;font-size:12.5px!important;line-height:1.1!important;font-weight:850!important;letter-spacing:0!important;text-transform:none!important;font-family:inherit!important;text-align:left!important} product-info[data-product-handle='the-butterfly'] .product__block.product-form [data-llqpd-offer]{margin:12px 0 16px!important} @media(max-width:360px){product-info[data-product-handle='the-butterfly'] .product__info__wrapper{column-gap:8px!important;row-gap:8px!important}product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon__row,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon__row{grid-template-columns:27px minmax(0,1fr)!important;gap:5px!important;padding:6px 8px!important}product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon{width:27px!important;height:27px!important;min-width:27px!important}product-info[data-product-handle='the-butterfly'] #product__icon--icon_xrJwqX .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_tzMX7C .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_bpQcTG .product__icon__text,product-info[data-product-handle='the-butterfly'] #product__icon--icon_MGiLxT .product__icon__text{font-size:11.5px!important}} (() => { if (window.__lovelacyPurchasePlacement) return; window.__lovelacyPurchasePlacement = true; const productSelector = 'product-info[data-product-handle="the-butterfly"]'; const placeOffer = () => { const root = document.querySelector(productSelector); if (!root) return; const offer = root.querySelector('[data-llqpd-offer]'); const buttons = root.querySelector('.product__block.product-form .product-form__buttons'); if (offer && buttons && offer.nextElementSibling !== buttons) { buttons.parentNode.insertBefore(offer, buttons); } }; const setQuantity = (root, quantity) => { const input = root.querySelector('input[name="quantity"]'); if (!input) return; input.value = String(quantity); input.setAttribute('value', String(quantity)); input.dispatchEvent(new Event('input', { bubbles: true })); input.dispatchEvent(new Event('change', { bubbles: true })); }; const syncOfferSelection = (event) => { const radio = event.target?.closest?.('[data-llqpd-offer] .llqpd-radio'); if (!radio) return; const root = radio.closest(productSelector); const quantity = Number(radio.value) || Number(radio.closest('[data-quantity]')?.dataset.quantity) || 1; if (root) setQuantity(root, quantity); }; const schedulePlacement = () => { placeOffer(); window.setTimeout(placeOffer, 100); window.setTimeout(placeOffer, 500); }; document.addEventListener('change', syncOfferSelection); document.addEventListener('DOMContentLoaded', schedulePlacement, { once: true }); window.addEventListener('load', schedulePlacement, { once: true }); schedulePlacement(); })(); (() => { if (window.__lovelacyButterflyVideoRepair20260729) return; window.__lovelacyButterflyVideoRepair20260729 = true; const clips = [ { old: ['7922e08cd84e482481606669d74e253b', 'butterfly-video-poster-first-look'], src: 'https://cdn.shopify.com/videos/c/o/v/560cc77537b043ccacefe029b8c93116.mp4', poster: 'https://cdn.shopify.com/s/files/1/0794/6885/5527/files/love-lacy-butterfly-video-poster-01.png?v=1782505895' }, { old: ['eb9f9085271e4535b5c57d8726485d07', 'butterfly-video-poster-unboxing-detail'], src: 'https://cdn.shopify.com/videos/c/o/v/672cbe98c0f5400a867e9c99db577b43.mp4', poster: 'https://cdn.shopify.com/s/files/1/0794/6885/5527/files/love-lacy-butterfly-video-poster-02.png?v=1782505911' }, { old: ['545124387b7d4bd9a546ce6e70674d8e', 'butterfly-video-poster-attachment-view'], src: 'https://cdn.shopify.com/videos/c/o/v/392169687aa84f27ac7fa206ba203bc3.mp4', poster: 'https://cdn.shopify.com/s/files/1/0794/6885/5527/files/love-lacy-butterfly-video-poster-03.png?v=1782505943' }, { old: ['9b6d83bd03cc4a09a36d6ae2fe6a678d', 'butterfly-video-poster-in-hand-scale'], src: 'https://cdn.shopify.com/videos/c/o/v/e9db175e6f724c48a13fb552c01d6995.mp4', poster: 'https://cdn.shopify.com/s/files/1/0794/6885/5527/files/love-lacy-butterfly-video-poster-04.png?v=1782505963' }, { old: ['2397932697004c0aa3afaf55c8398208', 'butterfly-video-poster-before-you-buy'], src: 'https://cdn.shopify.com/videos/c/o/v/02c94ad76a0244f1a183a78a79afbf04.mp4', poster: 'https://cdn.shopify.com/s/files/1/0794/6885/5527/files/love-lacy-butterfly-video-poster-05.png?v=1782505987' } ]; const readAttr = (element, attr) => element ? element.getAttribute(attr) || '' : ''; const findByOldUrl = (value) => clips.find((clip) => clip.old.some((token) => value.includes(token))); const repairVideos = () => { const videos = Array.from(document.querySelectorAll('product-info[data-product-handle="the-butterfly"] .ll-video-frame video, [data-product-description] .ll-video-frame video, .ll-video-frame video')); videos.forEach((video, index) => { const source = video.querySelector('source'); const currentValues = [ readAttr(video, 'src'), video.currentSrc || '', readAttr(source, 'src'), readAttr(video, 'poster'), video.poster || '' ].join(' '); const clip = findByOldUrl(currentValues) || clips[index]; if (!clip) return; let changed = false; if (readAttr(video, 'src') !== clip.src || (source && readAttr(source, 'src') !== clip.src) || findByOldUrl(currentValues)) { video.setAttribute('src', clip.src); if (source) source.setAttribute('src', clip.src); changed = true; } if (readAttr(video, 'poster') !== clip.poster) { video.setAttribute('poster', clip.poster); changed = true; } video.classList.add('ll-autoplay-video'); video.setAttribute('controls', 'controls'); video.setAttribute('playsinline', 'playsinline'); video.setAttribute('muted', 'muted'); video.muted = true; video.setAttribute('loop', 'loop'); video.setAttribute('autoplay', 'autoplay'); video.setAttribute('preload', 'auto'); if (changed) { try { video.load(); } catch (error) {} } }); }; repairVideos(); document.addEventListener('DOMContentLoaded', repairVideos, { once: true }); window.addEventListener('load', repairVideos, { once: true }); document.addEventListener('shopify:section:load', repairVideos); let runs = 0; const timer = window.setInterval(() => { repairVideos(); runs += 1; if (runs >= 24) window.clearInterval(timer); }, 250); if (document.documentElement && 'MutationObserver' in window) { const observer = new MutationObserver(repairVideos); observer.observe(document.documentElement, { childList: true, subtree: true }); window.setTimeout(() => observer.disconnect(), 8000); } })(); product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page { display: flex; flex-direction: column; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section { order: 0; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section:has(.ll-video-head) { order: -1; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-video-head .ll-label { display: none; } (() => { const moveButterflyVideos = () => { const productInfo = document.querySelector('product-info[data-product-handle="the-butterfly"]'); const page = productInfo?.querySelector('[data-product-description] .ll-page'); if (!page) return; const videoHeader = page.querySelector('.ll-video-head'); const videoSection = videoHeader?.closest('.ll-section'); const heroSection = page.querySelector('.ll-hero'); if (!videoSection || !heroSection) return; videoHeader.querySelector('.ll-label')?.remove(); if (videoSection !== heroSection.previousElementSibling) { page.insertBefore(videoSection, heroSection); } }; moveButterflyVideos(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', moveButterflyVideos, { once: true }); } window.addEventListener('load', moveButterflyVideos, { once: true }); window.setTimeout(moveButterflyVideos, 500); })(); #judgeme_product_reviews .jm-media-grid { display: none !important; } #judgeme_product_reviews .ll-photo-reviews { width: 100%; margin: 26px 0 32px; } #judgeme_product_reviews .ll-photo-reviews__title { margin: 0 0 14px; color: #17131f; font-size: 20px; font-weight: 750; line-height: 1.2; letter-spacing: 0; } #judgeme_product_reviews .ll-photo-review-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } #judgeme_product_reviews .ll-photo-review-card { min-width: 0; overflow: hidden; border: 1px solid #ded8ea; border-radius: 8px; background: #fff; } #judgeme_product_reviews .ll-photo-review-card__media { display: block; width: 100%; aspect-ratio: 4 / 5; overflow: hidden; background: #f3f0f6; } #judgeme_product_reviews .ll-photo-review-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 180ms ease; } #judgeme_product_reviews .ll-photo-review-card__media:hover img { transform: scale(1.02); } #judgeme_product_reviews .ll-photo-review-card__content { display: flex; flex-direction: column; gap: 9px; min-height: 188px; padding: 14px; } #judgeme_product_reviews .ll-photo-review-card__stars { color: #108474; font-size: 17px; line-height: 1; letter-spacing: 0; } #judgeme_product_reviews .ll-photo-review-card__body { display: -webkit-box; flex: 1; margin: 0; overflow: hidden; color: #25202e; font-size: 14px; line-height: 1.45; letter-spacing: 0; -webkit-box-orient: vertical; -webkit-line-clamp: 5; } #judgeme_product_reviews .ll-photo-review-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #6d6675; font-size: 12px; line-height: 1.3; } #judgeme_product_reviews .ll-photo-review-card__name { overflow: hidden; color: #17131f; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; } #judgeme_product_reviews .jdgm-review-list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; } #judgeme_product_reviews .jm-review-item { min-width: 0; padding: 18px !important; border: 1px solid #e3dfea !important; border-radius: 8px !important; background: #fff !important; } @media (max-width: 900px) { #judgeme_product_reviews .ll-photo-review-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (max-width: 640px) { #judgeme_product_reviews .ll-photo-reviews { margin: 22px 0 28px; overflow: hidden; } #judgeme_product_reviews .ll-photo-review-grid { display: flex; gap: 12px; overflow-x: auto; padding: 0 1px 8px; scroll-snap-type: x mandatory; scrollbar-width: none; } #judgeme_product_reviews .ll-photo-review-grid::-webkit-scrollbar { display: none; } #judgeme_product_reviews .ll-photo-review-card { flex: 0 0 min(82vw, 318px); scroll-snap-align: start; } #judgeme_product_reviews .ll-photo-review-card__content { min-height: 174px; } #judgeme_product_reviews .jdgm-review-list { grid-template-columns: minmax(0, 1fr) !important; } } (() => { if (window.__lovelacyPhotoReviewGallery20260802) return; window.__lovelacyPhotoReviewGallery20260802 = true; const reviews = [ { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-07.jpg", date: "04/12/2026", body: "OMG. My new favorite toy hands down. My mind is blown lol. The suction attachment deserves all the attention it gets." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-08.jpg", date: "06/03/2026", body: "Okay I get the hype now. Absolutely recommend, super easy to use by yourself or with your partner." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-04.jpg", date: "05/27/2026", body: "I don't know who came up with the interchangeable head idea but they deserve a raise. Such a fun concept. The suction & pulse attachments are my favs." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-05.jpg", date: "04/19/2026", body: "My boyfriend actually picked this out for me. IM OBSESSED. Need to get one for my friends now haha." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-06.jpg", date: "06/08/2026", body: "I still mostly use the suction head but every once in a while I'll swap to one of the others just to change it up." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-01.jpg", date: "05/15/2026", body: "Didn't think I'd care about the shape but it's actually really comfortable to hold. Way easier than my rose." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-02.jpg", date: "04/02/2026", body: "Love that it doesn't look super obvious. If someone found it in my drawer they probably wouldn't even know what it was." }, { image: "https://cdn.shopify.com/s/files/1/0794/6885/5527/files/lovelacy-butterfly-real-review-03.jpg", date: "06/30/2026", body: "Honestly thought the rose couldn't be beat but I was wrong." } ]; const escapeHtml = (value) => String(value) .replaceAll("&", "&") .replaceAll("") .replaceAll('"', """) .replaceAll("'", "'"); const toIsoDate = (value) => { const [month, day, year] = value.split("/"); return `${year}-${month}-${day}`; }; const galleryHtml = () => ` Customer photos ${reviews.map((review, index) => ` ★★★★★ ${escapeHtml(review.body)} Anonymous ${review.date} `).join("")} `; const mountGallery = () => { const root = document.getElementById("judgeme_product_reviews"); if (!root || root.querySelector("[data-lovelacy-photo-reviews='20260802']")) return; const template = document.createElement("template"); template.innerHTML = galleryHtml().trim(); const gallery = template.content.firstElementChild; const header = root.querySelector(".jm-review-widget__header"); const frame = root.querySelector(".ll-review-frame-wrap"); if (header?.parentNode) { header.parentNode.insertBefore(gallery, header.nextSibling); } else if (frame) { root.insertBefore(gallery, frame); } else { root.prepend(gallery); } }; const schedule = () => { mountGallery(); [120, 400, 900, 1800, 3500, 6500, 10000, 15000].forEach((delay) => { window.setTimeout(mountGallery, delay); }); }; schedule(); if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", schedule, { once: true }); } window.addEventListener("load", schedule, { once: true }); if ("MutationObserver" in window && document.documentElement) { let queued = false; const observer = new MutationObserver(() => { if (queued) return; queued = true; window.requestAnimationFrame(() => { queued = false; mountGallery(); }); }); observer.observe(document.documentElement, { childList: true, subtree: true }); window.setTimeout(() => observer.disconnect(), 20000); } })(); product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page { display: flex; flex-direction: column; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section { order: 0; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-page > .ll-section:has(.ll-video-head) { order: -1; } product-info[data-product-handle="the-butterfly"] [data-product-description] .ll-video-head .ll-label { display: none; } (() => { const moveButterflyVideos = () => { const productInfo = document.querySelector('product-info[data-product-handle="the-butterfly"]'); const page = productInfo?.querySelector('[data-product-description] .ll-page'); if (!page) return; const videoHeader = page.querySelector('.ll-video-head'); const videoSection = videoHeader?.closest('.ll-section'); const heroSection = page.querySelector('.ll-hero'); if (!videoSection || !heroSection) return; videoHeader.querySelector('.ll-label')?.remove(); if (videoSection !== heroSection.previousElementSibling) { page.insertBefore(videoSection, heroSection); } }; moveButterflyVideos(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', moveButterflyVideos, { once: true }); } window.addEventListener('load', moveButterflyVideos, { once: true }); window.setTimeout(moveButterflyVideos, 500); })();