{"product_id":"womens-bodycon-cami-midi-dress","title":"Women's Bodycon Cami Midi Dress","description":"\u003cstyle\u003e\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Oswald:wght@500;600;700\u0026family=Inter:wght@400;500;600\u0026display=swap');\n\n.bwc-page{background:#fff;font-family:'Inter',Arial,Helvetica,sans-serif;color:#141414;padding:0;margin:0;-webkit-font-smoothing:antialiased}\n.bwc-page *{box-sizing:border-box}\n.bwc-page .bwc-container{max-width:100%;width:100%;margin:0;padding:0}\n.bwc-page .bwc-card{background:#fff;border:none;padding:0;overflow:hidden}\n\n.bwc-page .bwc-teeth{display:block!important;height:16px!important;width:100%!important;background:\n  linear-gradient(135deg,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#141414 25%,transparent 25%) 0 0\/16px 16px,\n  #fff!important;}\n.bwc-page .bwc-teeth.inv{background:\n  linear-gradient(135deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  linear-gradient(225deg,#fff 25%,transparent 25%) 0 0\/16px 16px,\n  #141414!important;}\n\n.bwc-page .bwc-top{padding:26px 26px 0}\n.bwc-page .bwc-eyebrow{font-family:'Oswald',sans-serif;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:#6b6b6b;text-align:center;margin:0 0 8px}\n.bwc-page .bwc-h1{font-family:'Oswald',sans-serif;font-weight:700;font-size:32px;text-align:center;color:#111;margin:0 0 18px;line-height:1.14;letter-spacing:-.2px;text-transform:uppercase}\n\n.bwc-page .bwc-hero{background:#141414;color:#fff;padding:28px 24px;margin:0;position:relative}\n.bwc-page .bwc-hero h2{font-family:'Oswald',sans-serif;margin:0 0 10px;font-size:22px;line-height:1.25;font-weight:600;letter-spacing:.01em;color:#fff!important}\n.bwc-page .bwc-hero p{margin:0;opacity:.88;line-height:1.7;font-size:15px;color:#fff!important}\n.bwc-page .bwc-hero strong{color:#fff!important;border-bottom:2px solid #fff}\n\n.bwc-page .bwc-img-wrap{width:100%;margin:0;overflow:hidden;background:#f4f4f4}\n.bwc-page .bwc-img-wrap img{width:100%;height:auto;display:block;margin:0}\n\n.bwc-page .bwc-body{padding:0 26px}\n\n.bwc-page .bwc-section-title{font-family:'Oswald',sans-serif;font-weight:700;font-size:22px;text-transform:uppercase;letter-spacing:.02em;color:#111;margin:38px 0 6px;padding-bottom:12px;border-bottom:3px solid #141414;line-height:1.2}\n.bwc-page .bwc-lead{font-size:15px;line-height:1.75;color:#3d3d3d;margin:0 0 18px}\n\n.bwc-page .bwc-carousel{position:relative;margin:22px 0 30px}\n.bwc-page .bwc-carousel-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:4px 4px 14px;scrollbar-width:none;-ms-overflow-style:none}\n.bwc-page .bwc-carousel-track::-webkit-scrollbar{display:none}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start;background:#fff;display:flex;flex-direction:column}\n.bwc-page .bwc-carousel-imgs{display:flex}\n.bwc-page .bwc-carousel-imgs img{flex:1 1 0;width:100%;height:auto;display:block;aspect-ratio:1\/1;object-fit:cover;min-width:0}\n.bwc-page .bwc-carousel-text{padding:18px;flex:1}\n.bwc-page .bwc-carousel-num{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#141414;color:#fff;font-family:'Oswald',sans-serif;font-size:12px;font-weight:600;margin-bottom:10px}\n.bwc-page .bwc-carousel-text h3{margin:0 0 6px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.01em;font-size:15px;color:#111;font-weight:600;line-height:1.3}\n.bwc-page .bwc-carousel-text p{margin:0;color:#4a4a4a;font-size:13px;line-height:1.6}\n.bwc-page .bwc-carousel-nav{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:12px}\n.bwc-page .bwc-carousel-arrow{width:36px;height:36px;border:2px solid #141414;background:#fff;color:#141414;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px;flex-shrink:0;padding:0;line-height:1}\n.bwc-page .bwc-carousel-arrow:hover{background:#141414;color:#fff}\n.bwc-page .bwc-carousel-dots{display:flex;gap:8px}\n.bwc-page .bwc-carousel-dot{width:8px;height:8px;border-radius:50%;background:#d4d4d4;cursor:pointer;transition:background .2s;padding:0;border:0}\n.bwc-page .bwc-carousel-dot.active{background:#141414}\n\n.bwc-page .bwc-review-title{font-family:'Oswald',sans-serif;font-size:14.5px;font-weight:600;text-transform:uppercase;letter-spacing:.01em;color:#111;margin:0 0 6px}\n.bwc-page .bwc-review-quote{font-size:13px;line-height:1.6;color:#4a4a4a;margin:0 0 8px;font-style:italic}\n.bwc-page .bwc-review-name{font-family:'Oswald',sans-serif;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:#111;font-weight:600}\n\n.bwc-page .bwc-review-carousel-slide{flex:0 0 100%;max-width:100%;scroll-snap-align:start;display:grid;grid-template-columns:1fr 1fr;gap:14px}\n.bwc-page .bwc-review-mini{padding:14px;background:#fff}\n.bwc-page .bwc-review-mini .bwc-review-quote{font-size:12.5px;line-height:1.55;margin-bottom:4px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}\n.bwc-page .bwc-review-mini .bwc-review-name{font-size:11px}\n\n.bwc-page .bwc-media-block{margin:22px 0 6px;overflow:hidden;background:#f4f4f4}\n.bwc-page .bwc-media-block img,.bwc-page .bwc-media-block video{width:100%;height:auto;display:block}\n.bwc-page .bwc-media-caption{padding:11px 16px;font-size:12px;color:#6b6b6b;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.05em;background:#fff}\n\n.bwc-page .bwc-spec{margin-top:36px;background:#141414;padding:0}\n.bwc-page .bwc-spec h2{color:#fff;margin:0;padding:20px 24px;font-size:19px;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #3a3a3a}\n.bwc-page .bwc-table{width:100%;border-collapse:collapse;background:#fff}\n.bwc-page .bwc-table td{padding:14px 20px;border-bottom:1px solid #e4e4e4;vertical-align:top;line-height:1.5;font-size:14.5px;color:#222}\n.bwc-page .bwc-table tr:last-child td{border-bottom:0}\n.bwc-page .bwc-table td:first-child{font-family:'Oswald',sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:#111;width:34%;background:#f5f5f5;font-size:12.5px}\n\n.bwc-page .bwc-faq{margin-top:36px}\n.bwc-page .bwc-faq-item{border-bottom:1px solid #e4e4e4;padding:16px 2px}\n.bwc-page .bwc-faq-item:first-child{padding-top:0}\n.bwc-page .bwc-faq-q{font-family:'Oswald',sans-serif;font-size:14.5px;text-transform:uppercase;letter-spacing:.01em;color:#111;font-weight:600;margin:0;display:flex;align-items:center;gap:10px;width:100%;background:none;border:0;padding:0;cursor:pointer;text-align:left}\n.bwc-page .bwc-faq-q .qmark{flex:0 0 auto;width:22px;height:22px;border-radius:50%;background:#141414;color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-family:'Oswald',sans-serif}\n.bwc-page .bwc-faq-q .qtext{flex:1}\n.bwc-page .bwc-faq-q .bwc-faq-toggle{flex:0 0 auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:#141414;transition:transform .2s}\n.bwc-page .bwc-faq-item.open .bwc-faq-q .bwc-faq-toggle{transform:rotate(45deg)}\n.bwc-page .bwc-faq-a{font-size:14px;line-height:1.65;color:#4a4a4a;margin:8px 0 0;padding-left:32px;display:none}\n.bwc-page .bwc-faq-item.open .bwc-faq-a{display:block}\n\n.bwc-page .bwc-cta{margin-top:36px;background:#141414;color:#fff;padding:40px 24px;text-align:center}\n.bwc-page .bwc-cta h2{margin:0 0 12px;font-size:24px;line-height:1.25;font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.02em;font-weight:700;color:#fff!important}\n.bwc-page .bwc-cta p{margin:0 auto 22px;line-height:1.65;max-width:560px;opacity:.85;font-size:14.5px;color:#fff!important}\n.bwc-page .bwc-btn{display:inline-block;background:#fff;color:#111!important;padding:15px 40px;font-family:'Oswald',sans-serif;font-size:15px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border:2px solid #fff;cursor:pointer}\n.bwc-page .bwc-cta-form{margin:0;display:inline-block}\n\n.bwc-page .bwc-bottom-pad{height:26px}\n\n@media(max-width:768px){\n.bwc-page .bwc-container{padding:0}\n.bwc-page .bwc-top{padding:20px 16px 0}\n.bwc-page .bwc-body{padding:0 16px}\n.bwc-page .bwc-h1{font-size:24px}\n.bwc-page .bwc-hero{padding:20px 16px}\n.bwc-page .bwc-hero h2{font-size:19px}\n.bwc-page .bwc-section-title{font-size:19px;margin-top:30px}\n.bwc-page .bwc-carousel-slide{flex:0 0 100%;max-width:100%}\n.bwc-page .bwc-carousel-track{gap:0}\n.bwc-page .bwc-table td{display:block;width:100%;padding:10px 16px}\n.bwc-page .bwc-table td:first-child{width:100%;border-bottom:0;padding-bottom:2px}\n.bwc-page .bwc-faq-a{padding-left:0;margin-top:6px}\n.bwc-page .bwc-btn{display:block;width:100%;text-align:center}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"bwc-page\"\u003e\n\u003cdiv class=\"bwc-container\"\u003e\n\u003cdiv class=\"bwc-card\"\u003e\n\n\u003c!-- ① 标题区 --\u003e\n\u003cdiv class=\"bwc-top\"\u003e\n\u003cp class=\"bwc-eyebrow\"\u003eWomen's Bodycon Cami Midi Dress\u003c\/p\u003e\n\u003ch1 class=\"bwc-h1\"\u003eThe Dress That Turns Every Entrance Into A Statement\u003c\/h1\u003e\n\u003c\/div\u003e\n\n\u003c!-- ② Hero 横幅 --\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003ch2\u003eElegant. Flattering. Unforgettable.\u003c\/h2\u003e\n\u003cp\u003eDesigned to celebrate your silhouette, this sleek bodycon cami dress combines timeless simplicity with effortless confidence. The figure-hugging fit, delicate spaghetti straps, and open-back design create a sophisticated look that's perfect for everything from date nights to vacation dinners.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-teeth\"\u003e\u003c\/div\u003e\n\n\u003c!-- ③ 主图：请替换为你自己的产品图 --\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/1_978dc9a6-83da-4f74-a0d5-87c7ee3cb73c.jpg?v=1785488376\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- ⑤ 功能特性：轮播（2 个核心卖点，自动播放 2 秒） --\u003e\n\u003ch2 class=\"bwc-section-title\" style=\"margin-left:26px;margin-right:26px\"\u003eWhy You'll Love It\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\" style=\"margin-left:26px;margin-right:26px\"\u003eTwo reasons it's the smarter way to dress for every occasion.\u003c\/p\u003e\n\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"2000\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/2_8a2a04ec-e821-4c6b-8123-52bf925e0955.jpg?v=1785488375\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e1\u003c\/span\u003e\n\u003ch3\u003eDesigned To Flatter Every Curve\u003c\/h3\u003e\n\u003cp\u003eThe body-skimming fit gently enhances your natural shape while the soft stretch fabric keeps you comfortable from day to night. It's the kind of dress that makes you feel confident the moment you put it on.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/3_8df8e7cc-185e-476c-a592-8d0546fd96b9.jpg?v=1785488376\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e2\u003c\/span\u003e\n\u003ch3\u003eOne Dress. Endless Occasions.\u003c\/h3\u003e\n\u003cp\u003eWhether you're heading to brunch, enjoying a beach vacation, celebrating with friends, or dressing up for date night, this versatile dress adapts effortlessly to every occasion with just a change of accessories.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous slide\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next slide\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-teeth\" style=\"margin-top:8px\"\u003e\u003c\/div\u003e\n\u003c!-- Size Guide：服装类产品固定加的尺码图区域 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eSize Guide\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eCheck the chart below to find your best fit.\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/5_dd0f55fa-f1c9-4f18-9b34-43c68269aa59.jpg?v=1785488376\" alt=\"Bodycon cami midi dress size chart\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-body\"\u003e\n\u003c!-- Perfect For（使用场景，一段话形式，下面加了配图区域） --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003ePerfect For\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003ePerfect for vacations, beach getaways, date nights, cocktail parties, brunch, birthdays, club nights, weekend outings, holiday dinners, casual shopping, and everyday summer style. Pair it with heels for an elevated look or sneakers and a light jacket for effortless everyday elegance.\u003c\/p\u003e\n\n\u003c!-- 使用场景配图区域 --\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/4_bf9da9d0-26b9-4edf-b4fe-6108fdf88e55.jpg?v=1785488376\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- 规格参数表 --\u003e\n\u003cdiv class=\"bwc-spec\"\u003e\n\u003ch2\u003eProduct Specifications\u003c\/h2\u003e\n\u003ctable class=\"bwc-table\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eProduct Type\u003c\/td\u003e\n\u003ctd\u003eWomen's Bodycon Cami Midi Dress\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStyle\u003c\/td\u003e\n\u003ctd\u003eElegant \/ Casual \/ Party\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003ePolyester \u0026amp; Spandex Blend\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFabric Features\u003c\/td\u003e\n\u003ctd\u003eSoft, Stretchy, Lightweight, Breathable\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eNeckline\u003c\/td\u003e\n\u003ctd\u003eCami Neckline\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSleeve Type\u003c\/td\u003e\n\u003ctd\u003eSleeveless\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBack Design\u003c\/td\u003e\n\u003ctd\u003eOpen Back\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFit\u003c\/td\u003e\n\u003ctd\u003eSlim Bodycon Fit\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDress Length\u003c\/td\u003e\n\u003ctd\u003eMidi Length\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStraps\u003c\/td\u003e\n\u003ctd\u003eAdjustable Spaghetti Straps\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePattern\u003c\/td\u003e\n\u003ctd\u003eSolid Color\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAvailable Sizes\u003c\/td\u003e\n\u003ctd\u003eXS, S, M, L, XL, XXL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAvailable Colors\u003c\/td\u003e\n\u003ctd\u003eMultiple Colors Available\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCare Instructions\u003c\/td\u003e\n\u003ctd\u003eMachine wash cold with similar colors. Hang dry or tumble dry low. Do not bleach.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\n\n\n\u003c!-- Customer Reviews：纯文字卡片，一页展示两条，手动切换 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eCustomer Reviews\u003c\/h2\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"0\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eEmily R.\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"This dress hugs in all the right places without feeling tight. I received compliments all night.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eJessica M.\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"The fit is beautiful, and the fabric feels soft and comfortable. Perfect for vacation dinners.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eAshley T.\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"Simple, elegant, and so easy to dress up. I already ordered another color.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-review-mini\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eSophia L.\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e\"Exactly what I was looking for. Flattering, comfortable, and looks much more expensive than it is.\"\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev aria-label=\"Previous slide\"\u003e‹\u003c\/button\u003e\n\u003cdiv class=\"bwc-carousel-dots\" data-dots\u003e\u003c\/div\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-next aria-label=\"Next slide\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- FAQ：点击问题展开\/收起答案 --\u003e\n\u003cdiv class=\"bwc-faq\" data-accordion\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eIs the fabric stretchy?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The soft stretch fabric offers a comfortable fit while maintaining its flattering shape.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eCan I wear this dress for formal occasions?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eAbsolutely. Pair it with heels and accessories for parties, weddings, or evening events, or dress it down for casual outings.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eIs it suitable for summer?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The lightweight sleeveless design keeps you cool during warm weather while remaining easy to layer in cooler seasons.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eAre the shoulder straps adjustable?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The spaghetti straps can be adjusted for a more personalized fit.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\" aria-expanded=\"false\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eHow should I care for the dress?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eMachine wash cold with similar colors and hang dry or tumble dry on low heat for best results.\u003c\/p\u003e\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth inv\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-bottom-pad\"\u003e\u003c\/div\u003e\n\n\u003c!-- ⑩ CTA --\u003e\n\u003cdiv class=\"bwc-cta\"\u003e\n\u003ch2\u003eYour Next Favorite Dress\u003c\/h2\u003e\n\u003cp\u003eMade to flatter, designed to stand out.\u003c\/p\u003e\n\u003c!-- 这个按钮不再绑定固定的 VARIANT_ID：点击时会去读页面上真正的商品选购表单（客户选好的颜色\/尺寸\/规格），\n     取出当前选中的那个变体 id，再用 Shopify 的 \/cart\/add.js 接口把“客户选的那个变体”加入购物车。\n     data-fallback-variant 是兜底用的，如果在页面上找不到选购表单，就退回用这个固定ID（记得替换成你商品的默认变体ID）。 --\u003e\n\u003cbutton type=\"button\" class=\"bwc-btn bwc-add-to-cart\" data-fallback-variant=\"VARIANT_ID\"\u003eAdd To Cart Today\u003c\/button\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\n  \/\/ Initialize every carousel on the page independently (feature carousel + reviews carousel)\n  var carousels = document.querySelectorAll('[data-carousel]');\n  carousels.forEach(function(carousel){\n    var track = carousel.querySelector('[data-track]');\n    var slides = track.querySelectorAll('.bwc-carousel-slide');\n    var dotsWrap = carousel.querySelector('[data-dots]');\n    var prevBtn = carousel.querySelector('[data-prev]');\n    var nextBtn = carousel.querySelector('[data-next]');\n    var activeIndex = 0;\n    var AUTOPLAY_DELAY = parseInt(carousel.getAttribute('data-autoplay'), 10) || 0;\n    var autoplayEnabled = AUTOPLAY_DELAY \u003e 0; \/\/ data-autoplay=\"0\" (or omitted) means manual-only, no autoplay\n    var autoplayTimer = null;\n    var carouselInView = false; \/\/ becomes true only once the carousel scrolls into view\n\n    slides.forEach(function(slide, i){\n      var dot = document.createElement('button');\n      dot.type = 'button';\n      dot.className = 'bwc-carousel-dot' + (i === 0 ? ' active' : '');\n      dot.setAttribute('aria-label', 'Go to slide ' + (i + 1));\n      dot.addEventListener('click', function(){\n        goToSlide(i);\n        restartAutoplay();\n      });\n      dotsWrap.appendChild(dot);\n    });\n    var dots = dotsWrap.querySelectorAll('.bwc-carousel-dot');\n\n    \/\/ Scroll the track itself (horizontal only). Never use scrollIntoView here —\n    \/\/ it can also scroll the whole page vertically to \"reveal\" the slide, which\n    \/\/ yanks the page back up to this section if the user has scrolled past it.\n    function goToSlide(i){\n      var slide = slides[i];\n      track.scrollTo({ left: slide.offsetLeft, behavior: 'smooth' });\n    }\n\n    function updateActive(){\n      var trackRect = track.getBoundingClientRect();\n      var closest = 0, closestDist = Infinity;\n      slides.forEach(function(slide, i){\n        var dist = Math.abs(slide.getBoundingClientRect().left - trackRect.left);\n        if (dist \u003c closestDist) { closestDist = dist; closest = i; }\n      });\n      activeIndex = closest;\n      dots.forEach(function(d, i){ d.classList.toggle('active', i === closest); });\n    }\n\n    var scrollTimer;\n    track.addEventListener('scroll', function(){\n      clearTimeout(scrollTimer);\n      scrollTimer = setTimeout(updateActive, 80);\n    });\n\n    function stepWidth(){\n      if (slides.length \u003e 1) {\n        return slides[1].offsetLeft - slides[0].offsetLeft;\n      }\n      return slides[0].getBoundingClientRect().width;\n    }\n\n    prevBtn.addEventListener('click', function(){\n      track.scrollBy({left: -stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n    nextBtn.addEventListener('click', function(){\n      track.scrollBy({left: stepWidth(), behavior:'smooth'});\n      restartAutoplay();\n    });\n\n    function nextSlide(){\n      var next = (activeIndex + 1) % slides.length;\n      goToSlide(next);\n    }\n\n    function startAutoplay(){\n      stopAutoplay();\n      \/\/ This carousel is manual-only (data-autoplay=\"0\") — never auto-advance.\n      if (!autoplayEnabled) return;\n      \/\/ Don't run autoplay (and thus don't touch scroll position at all)\n      \/\/ while the carousel isn't visible on screen.\n      if (!carouselInView) return;\n      autoplayTimer = setInterval(nextSlide, AUTOPLAY_DELAY);\n    }\n    function stopAutoplay(){\n      if (autoplayTimer) { clearInterval(autoplayTimer); autoplayTimer = null; }\n    }\n    function restartAutoplay(){\n      stopAutoplay();\n      startAutoplay();\n    }\n\n    \/\/ pause while the user is actively swiping\/dragging\/hovering, resume after\n    track.addEventListener('pointerdown', stopAutoplay);\n    track.addEventListener('touchstart', stopAutoplay, {passive:true});\n    track.addEventListener('pointerup', restartAutoplay);\n    track.addEventListener('touchend', restartAutoplay, {passive:true});\n    carousel.addEventListener('mouseenter', stopAutoplay);\n    carousel.addEventListener('mouseleave', restartAutoplay);\n\n    \/\/ Only autoplay while the carousel is actually on screen (and only if\n    \/\/ autoplay is enabled for this carousel) — the countdown only starts\n    \/\/ once the user has scrolled to this section, not on page load.\n    if (autoplayEnabled \u0026\u0026 'IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function(entries){\n        entries.forEach(function(entry){\n          carouselInView = entry.isIntersecting;\n          if (carouselInView) {\n            restartAutoplay();\n          } else {\n            stopAutoplay();\n          }\n        });\n      }, { threshold: 0.4 });\n      io.observe(carousel);\n    }\n\n    updateActive();\n  });\n})();\n\u003c\/script\u003e\n\n\u003cscript\u003e\n(function(){\n  var accordion = document.querySelector('[data-accordion]');\n  if(!accordion) return;\n  var buttons = accordion.querySelectorAll('.bwc-faq-q');\n  buttons.forEach(function(btn){\n    btn.addEventListener('click', function(){\n      var item = btn.closest('.bwc-faq-item');\n      var isOpen = item.classList.contains('open');\n      item.classList.toggle('open', !isOpen);\n      btn.setAttribute('aria-expanded', String(!isOpen));\n    });\n  });\n})();\n\u003c\/script\u003e\n\n\u003cscript\u003e\n(function(){\n  \/\/ Elements matching these are almost always \"related \/ recommended \/ upsell\"\n  \/\/ product widgets elsewhere on the page — never treat a button\/form inside\n  \/\/ one of these as this landing page's own add-to-cart control.\n  var EXCLUDE_SELECTOR = [\n    '[class*=\"related\"]','[id*=\"related\"]',\n    '[class*=\"recommend\"]','[id*=\"recommend\"]',\n    '[class*=\"upsell\"]','[id*=\"upsell\"]',\n    '[class*=\"cross-sell\"]','[id*=\"cross-sell\"]',\n    '[class*=\"also-like\"]','[id*=\"also-like\"]',\n    '[class*=\"complementary\"]','[id*=\"complementary\"]',\n    '[class*=\"bundle\"]','[id*=\"bundle\"]',\n    '[class*=\"quick-add\"]','[id*=\"quick-add\"]',\n    '[class*=\"quick-buy\"]','[id*=\"quick-buy\"]',\n    '[class*=\"product-card\"]','[class*=\"product-grid-item\"]',\n    '[class*=\"trending\"]','[class*=\"carousel-card\"]'\n  ].join(',');\n\n  function isInsideExcludedWidget(el){\n    return !!el.closest(EXCLUDE_SELECTOR);\n  }\n\n  function findRealAddToCartButton(){\n    \/\/ 1) Most specific \u0026 reliable: the standard Shopify add-to-cart control,\n    \/\/ name=\"add\", that isn't sitting inside a recommendations\/upsell widget.\n    var named = document.querySelectorAll('button[name=\"add\"], input[name=\"add\"]');\n    for (var i = 0; i \u003c named.length; i++) {\n      if (!isInsideExcludedWidget(named[i]) \u0026\u0026 !named[i].classList.contains('bwc-add-to-cart')) {\n        return named[i];\n      }\n    }\n\n    \/\/ 2) A real cart\/add form, again skipping anything inside an excluded widget.\n    var forms = document.querySelectorAll('form[action*=\"\/cart\/add\"]');\n    for (var f = 0; f \u003c forms.length; f++) {\n      if (isInsideExcludedWidget(forms[f])) continue;\n      var btn = forms[f].querySelector('button[name=\"add\"], button[type=\"submit\"], input[type=\"submit\"]');\n      if (btn) return btn;\n    }\n\n    \/\/ 3) Last resort: visible text match, still excluding recommendation widgets.\n    var all = document.querySelectorAll('button, input[type=\"submit\"]');\n    for (var j = 0; j \u003c all.length; j++) {\n      var txt = (all[j].textContent || all[j].value || '').trim().toLowerCase();\n      if (txt === 'add to cart' \u0026\u0026 !all[j].classList.contains('bwc-add-to-cart') \u0026\u0026 !isInsideExcludedWidget(all[j])) {\n        return all[j];\n      }\n    }\n    return null;\n  }\n\n  function bwcAddToCart(btn){\n    var realBtn = findRealAddToCartButton();\n    if (realBtn) {\n      realBtn.click();\n      return;\n    }\n    var fallbackId = btn.getAttribute('data-fallback-variant');\n    if (!fallbackId || fallbackId === 'VARIANT_ID') {\n      alert('Could not find the add-to-cart form on this page.');\n      return;\n    }\n    fetch('\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application\/json' },\n      body: JSON.stringify({ id: fallbackId, quantity: 1 })\n    }).then(function(){ window.location.href = '\/cart'; });\n  }\n\n  document.addEventListener('click', function(e){\n    var btn = e.target.closest('.bwc-add-to-cart');\n    if (!btn) return;\n    e.preventDefault();\n    bwcAddToCart(btn);\n  });\n})();\n\u003c\/script\u003e\n\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"wzh","offers":[{"title":"Black \/ XS","offer_id":43768325046362,"sku":"PL01122607313421-吊带连衣裙 - 黑色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ S","offer_id":43768325079130,"sku":"PL01122607313421-吊带连衣裙 - 黑色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ M","offer_id":43768325111898,"sku":"PL01122607313421-吊带连衣裙 - 黑色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ L","offer_id":43768325144666,"sku":"PL01122607313421-吊带连衣裙 - 黑色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ XL","offer_id":43768325177434,"sku":"PL01122607313421-吊带连衣裙 - 黑色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ XXL","offer_id":43768325210202,"sku":"PL01122607313421-吊带连衣裙 - 黑色-XXL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ XS","offer_id":43768325242970,"sku":"PL01122607313421-吊带连衣裙 - 红色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ S","offer_id":43768325275738,"sku":"PL01122607313421-吊带连衣裙 - 红色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ M","offer_id":43768325308506,"sku":"PL01122607313421-吊带连衣裙 - 红色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ L","offer_id":43768325341274,"sku":"PL01122607313421-吊带连衣裙 - 红色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ XL","offer_id":43768325374042,"sku":"PL01122607313421-吊带连衣裙 - 红色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Red \/ XXL","offer_id":43768325406810,"sku":"PL01122607313421-吊带连衣裙 - 红色-XXL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XS","offer_id":43768325439578,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ S","offer_id":43768325472346,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ M","offer_id":43768325505114,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ L","offer_id":43768325537882,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XL","offer_id":43768325570650,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XXL","offer_id":43768325603418,"sku":"PL01122607313421-吊带连衣裙 - 藏青色-XXL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ XS","offer_id":43768325636186,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ S","offer_id":43768325668954,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ M","offer_id":43768325701722,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ L","offer_id":43768325734490,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ XL","offer_id":43768325767258,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Coffee Brown \/ XXL","offer_id":43768325800026,"sku":"PL01122607313421-吊带连衣裙 - 咖啡色-XXL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ XS","offer_id":43768325832794,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ S","offer_id":43768325865562,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ M","offer_id":43768325898330,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ L","offer_id":43768325931098,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ XL","offer_id":43768325963866,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Burgundy \/ XXL","offer_id":43768325996634,"sku":"PL01122607313421-吊带连衣裙 - 酒红色-XXL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ XS","offer_id":43768326029402,"sku":"PL01122607313421-吊带连衣裙 - 米白色-XS","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ S","offer_id":43768326062170,"sku":"PL01122607313421-吊带连衣裙 - 米白色-S","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ M","offer_id":43768326094938,"sku":"PL01122607313421-吊带连衣裙 - 米白色-M","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ L","offer_id":43768326127706,"sku":"PL01122607313421-吊带连衣裙 - 米白色-L","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ XL","offer_id":43768326160474,"sku":"PL01122607313421-吊带连衣裙 - 米白色-XL","price":39.98,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ XXL","offer_id":43768326193242,"sku":"PL01122607313421-吊带连衣裙 - 米白色-XXL","price":39.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/6_c72e2892-d950-4bae-bff3-eee38b50d337.jpg?v=1785488375","url":"https:\/\/sthael.com\/products\/womens-bodycon-cami-midi-dress","provider":"Sthael","version":"1.0","type":"link"}