{"product_id":"womens-2-in-1-quick-dry-athletic-running-shorts","title":"Women's 2-in-1 Quick-Dry Athletic Running Shorts","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-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 2-in-1 Athletic Shorts\u003c\/p\u003e\n\u003ch1 class=\"bwc-h1\"\u003eMove Freely. Train Confidently. Stay Comfortable.\u003c\/h1\u003e\n\u003c\/div\u003e\n\n\u003c!-- ② Hero 横幅 --\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003ch2\u003eTrain Hard. Move Comfortably. Feel Confident.\u003c\/h2\u003e\n\u003cp\u003eDesigned for every workout, these 2-in-1 athletic shorts feature a lightweight outer layer with a supportive compression liner for all-day comfort. The quick-dry stretch fabric keeps you cool and ready for every run, workout, or weekend adventure.\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_eb6bed7c-fc42-4ed4-9bd8-b0ce109b3d84.jpg?v=1785232321\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- ⑤ 功能特性：轮播（3 个核心卖点，自动播放 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\"\u003eThree reasons it's the smarter way to train.\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_4834b0a2-cc16-42a2-b8e2-5c95fbac67ab.jpg?v=1785232322\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e1\u003c\/span\u003e\n\u003ch3\u003e2-in-1 Comfort \u0026amp; Confidence\u003c\/h3\u003e\n\u003cp\u003eThe lightweight outer shorts provide unrestricted movement, while the built-in compression liner offers added coverage and gentle support. Whether you're stretching, running, or training, you can move confidently without distractions.\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_e791b2fa-c113-4d03-ab6e-6dc6cc60bfc8.jpg?v=1785232321\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e2\u003c\/span\u003e\n\u003ch3\u003eStay Cool Through Every Workout\u003c\/h3\u003e\n\u003cp\u003eMade from breathable moisture-wicking fabric, these shorts help pull sweat away from your skin for a dry, comfortable feel. The lightweight construction keeps you cool whether you're working out indoors or enjoying outdoor adventures.\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\/4_87daa0e3-9416-4f86-8659-c51bd9da4251.jpg?v=1785232321\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e3\u003c\/span\u003e\n\u003ch3\u003eMade To Move With You\u003c\/h3\u003e\n\u003cp\u003eThe flexible fabric stretches naturally with every movement while maintaining its shape wash after wash. Resistant to pilling, fading, and deformation, these shorts are designed for long-lasting everyday wear.\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\n\u003cdiv class=\"bwc-body\"\u003e\n\u003c!-- Size Guide（按文案顺序放在 Perfect For 之前） --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eSize Guide\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003ePlease refer to the measurements below before placing your order. If you're between sizes or prefer a more relaxed fit, we recommend choosing one size up.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\" style=\"margin-top:-6px\"\u003eMeasurements may vary by 0.4–0.8 inches due to manual measurement.\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/6_a9e0e6db-d56d-458c-b478-c0396ef63c12.jpg?v=1785232321\"\u003e\n\u003c\/div\u003e\n\n\u003c!-- Perfect For：一段话形式 --\u003e\n\u003ch2 class=\"bwc-section-title\"\u003ePerfect For\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eFrom gym sessions and morning runs to yoga classes, pickleball games, beach days, travel, and everyday casual wear, these versatile shorts are made to keep you comfortable wherever your day takes you.\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_72de4243-a0a5-4eea-a94c-1963daba9bf5.jpg?v=1785232321\"\u003e\n\u003c\/div\u003e\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 2-in-1 Athletic Shorts\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStyle\u003c\/td\u003e\n\u003ctd\u003eSporty \/ Activewear \/ Casual\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMaterial\u003c\/td\u003e\n\u003ctd\u003eQuick-Dry Stretch Fabric\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\u003eFit\u003c\/td\u003e\n\u003ctd\u003eRegular Fit\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWaist\u003c\/td\u003e\n\u003ctd\u003eElastic Waistband with Adjustable Drawstring\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLength\u003c\/td\u003e\n\u003ctd\u003eShort\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLiner\u003c\/td\u003e\n\u003ctd\u003eBuilt-In Compression Shorts\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePockets\u003c\/td\u003e\n\u003ctd\u003eSide Pocket(s) (if applicable)\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAvailable Sizes\u003c\/td\u003e\n\u003ctd\u003eXS–XXL (Please refer to the size chart)\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\u003eSeason\u003c\/td\u003e\n\u003ctd\u003eSpring, Summer, Autumn\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCare Instructions\u003c\/td\u003e\n\u003ctd\u003eMachine wash cold. Do not bleach. Tumble dry low or hang dry. Wash with similar colors.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\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\"\u003eAre these shorts suitable for running?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The lightweight design, built-in compression liner, and quick-dry fabric make them ideal for running and other high-movement activities.\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\"\u003eDo the shorts have a built-in liner?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. They feature a comfortable built-in compression liner that provides extra coverage and support.\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 they breathable for hot weather?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eAbsolutely. The moisture-wicking fabric is lightweight, breathable, and designed to help keep you cool during warm-weather workouts.\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 these for swimming or beach activities?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eThey are suitable for light water activities and beach outings thanks to their quick-drying fabric, though they are primarily designed as athletic shorts.\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 wash them?\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 tumble dry low or hang dry to help maintain the fabric's quality and shape.\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\u003eTrain Hard. Move Comfortably. Feel Confident.\u003c\/h2\u003e\n\u003cp\u003eWhether you're working out, exploring the outdoors, or enjoying an active day, these versatile 2-in-1 athletic shorts deliver the perfect combination of comfort, performance, and effortless style.\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 + any others)\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  function findRealAddToCartButton(){\n    var shrineBtn = document.querySelector('button.main-product-atc[name=\"add\"]');\n    if (shrineBtn) return shrineBtn;\n    var form = document.querySelector('form[action*=\"\/cart\/add\"]');\n    if (form) {\n      var btn = form.querySelector('button[name=\"add\"], button[type=\"submit\"], input[type=\"submit\"]');\n      if (btn) return btn;\n    }\n    var all = document.querySelectorAll('button, input[type=\"submit\"]');\n    for (var i = 0; i \u003c all.length; i++) {\n      var txt = (all[i].textContent || all[i].value || '').trim().toLowerCase();\n      if (txt === 'add to cart' \u0026\u0026 !all[i].classList.contains('bwc-add-to-cart')) return all[i];\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":"Orange \/ XS","offer_id":43747370041434,"sku":"PL01122607281526-运动短裤 - 红色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Orange \/ S","offer_id":43747370074202,"sku":"PL01122607281526-运动短裤 - 红色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Orange \/ M","offer_id":43747370106970,"sku":"PL01122607281526-运动短裤 - 红色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Orange \/ L","offer_id":43747370139738,"sku":"PL01122607281526-运动短裤 - 红色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Orange \/ XL","offer_id":43747370172506,"sku":"PL01122607281526-运动短裤 - 红色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Orange \/ XXL","offer_id":43747370205274,"sku":"PL01122607281526-运动短裤 - 红色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XS","offer_id":43747370238042,"sku":"PL01122607281526-运动短裤 - 粉色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ S","offer_id":43747370270810,"sku":"PL01122607281526-运动短裤 - 粉色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ M","offer_id":43747370303578,"sku":"PL01122607281526-运动短裤 - 粉色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ L","offer_id":43747370336346,"sku":"PL01122607281526-运动短裤 - 粉色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XL","offer_id":43747370369114,"sku":"PL01122607281526-运动短裤 - 粉色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Pink \/ XXL","offer_id":43747370401882,"sku":"PL01122607281526-运动短裤 - 粉色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ XS","offer_id":43747370434650,"sku":"PL01122607281526-运动短裤 - 紫色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ S","offer_id":43747370467418,"sku":"PL01122607281526-运动短裤 - 紫色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ M","offer_id":43747370500186,"sku":"PL01122607281526-运动短裤 - 紫色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ L","offer_id":43747370532954,"sku":"PL01122607281526-运动短裤 - 紫色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ XL","offer_id":43747370565722,"sku":"PL01122607281526-运动短裤 - 紫色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Purple \/ XXL","offer_id":43747370598490,"sku":"PL01122607281526-运动短裤 - 紫色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XS","offer_id":43747370631258,"sku":"PL01122607281526-运动短裤 - 蓝色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ S","offer_id":43747370664026,"sku":"PL01122607281526-运动短裤 - 蓝色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ M","offer_id":43747370696794,"sku":"PL01122607281526-运动短裤 - 蓝色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ L","offer_id":43747370729562,"sku":"PL01122607281526-运动短裤 - 蓝色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XL","offer_id":43747370762330,"sku":"PL01122607281526-运动短裤 - 蓝色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Blue \/ XXL","offer_id":43747370795098,"sku":"PL01122607281526-运动短裤 - 蓝色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ XS","offer_id":43747370827866,"sku":"PL01122607281526-运动短裤 - 浅灰色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ S","offer_id":43747370860634,"sku":"PL01122607281526-运动短裤 - 浅灰色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ M","offer_id":43747370893402,"sku":"PL01122607281526-运动短裤 - 浅灰色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ L","offer_id":43747370926170,"sku":"PL01122607281526-运动短裤 - 浅灰色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ XL","offer_id":43747370958938,"sku":"PL01122607281526-运动短裤 - 浅灰色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Gray \/ XXL","offer_id":43747370991706,"sku":"PL01122607281526-运动短裤 - 浅灰色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ XS","offer_id":43747371024474,"sku":"PL01122607281526-运动短裤 - 浅绿色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ S","offer_id":43747371057242,"sku":"PL01122607281526-运动短裤 - 浅绿色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ M","offer_id":43747371090010,"sku":"PL01122607281526-运动短裤 - 浅绿色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ L","offer_id":43747371122778,"sku":"PL01122607281526-运动短裤 - 浅绿色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ XL","offer_id":43747371155546,"sku":"PL01122607281526-运动短裤 - 浅绿色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Green \/ XXL","offer_id":43747371188314,"sku":"PL01122607281526-运动短裤 - 浅绿色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ XS","offer_id":43747371221082,"sku":"PL01122607281526-运动短裤 - 黑色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ S","offer_id":43747371253850,"sku":"PL01122607281526-运动短裤 - 黑色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ M","offer_id":43747371286618,"sku":"PL01122607281526-运动短裤 - 黑色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ L","offer_id":43747371319386,"sku":"PL01122607281526-运动短裤 - 黑色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ XL","offer_id":43747371352154,"sku":"PL01122607281526-运动短裤 - 黑色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Black \/ XXL","offer_id":43747371384922,"sku":"PL01122607281526-运动短裤 - 黑色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XS","offer_id":43747371417690,"sku":"PL01122607281526-运动短裤 - 湖蓝色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ S","offer_id":43747371450458,"sku":"PL01122607281526-运动短裤 - 湖蓝色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ M","offer_id":43747371483226,"sku":"PL01122607281526-运动短裤 - 湖蓝色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ L","offer_id":43747371515994,"sku":"PL01122607281526-运动短裤 - 湖蓝色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XL","offer_id":43747371548762,"sku":"PL01122607281526-运动短裤 - 湖蓝色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Navy \/ XXL","offer_id":43747371581530,"sku":"PL01122607281526-运动短裤 - 湖蓝色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ XS","offer_id":43747371614298,"sku":"PL01122607281526-运动短裤 - 深蓝色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ S","offer_id":43747371647066,"sku":"PL01122607281526-运动短裤 - 深蓝色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ M","offer_id":43747371679834,"sku":"PL01122607281526-运动短裤 - 深蓝色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ L","offer_id":43747371712602,"sku":"PL01122607281526-运动短裤 - 深蓝色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ XL","offer_id":43747371745370,"sku":"PL01122607281526-运动短裤 - 深蓝色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Blue \/ XXL","offer_id":43747371778138,"sku":"PL01122607281526-运动短裤 - 深蓝色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ XS","offer_id":43747371810906,"sku":"PL01122607281526-运动短裤 - 深灰色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ S","offer_id":43747371843674,"sku":"PL01122607281526-运动短裤 - 深灰色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ M","offer_id":43747371876442,"sku":"PL01122607281526-运动短裤 - 深灰色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ L","offer_id":43747371909210,"sku":"PL01122607281526-运动短裤 - 深灰色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ XL","offer_id":43747371941978,"sku":"PL01122607281526-运动短裤 - 深灰色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Dark Grey \/ XXL","offer_id":43747371974746,"sku":"PL01122607281526-运动短裤 - 深灰色-XXL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ XS","offer_id":43747372007514,"sku":"PL01122607281526-运动短裤 - 军绿色-XS","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ S","offer_id":43747372040282,"sku":"PL01122607281526-运动短裤 - 军绿色-S","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ M","offer_id":43747372073050,"sku":"PL01122607281526-运动短裤 - 军绿色-M","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ L","offer_id":43747372105818,"sku":"PL01122607281526-运动短裤 - 军绿色-L","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ XL","offer_id":43747372138586,"sku":"PL01122607281526-运动短裤 - 军绿色-XL","price":29.98,"currency_code":"USD","in_stock":true},{"title":"Army Green \/ XXL","offer_id":43747372171354,"sku":"PL01122607281526-运动短裤 - 军绿色-XXL","price":29.98,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/8_f1311cda-a61c-4f6a-a1a9-e34d6dd4dc9d.jpg?v=1785232321","url":"https:\/\/sthael.com\/products\/womens-2-in-1-quick-dry-athletic-running-shorts","provider":"Sthael","version":"1.0","type":"link"}