{"product_id":"boho-skirts-for-women-flowy-casual-cute-skorts-built-in-shorts","title":"Boho Skirts for Women Flowy Casual Cute Skorts Built-in 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.bwc-page .bwc-carousel:empty,.bwc-page .bwc-carousel-imgs:empty,.bwc-page .bwc-media-block:empty{display:none!important;margin:0!important;padding:0!important;height:0!important;min-height:0!important}\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-review-jump{display:flex;align-items:center;justify-content:center;gap:9px;width:max-content;max-width:100%;margin:-6px auto 18px;padding:8px 12px;background:transparent;border:0;color:#141414;cursor:pointer;font-family:'Inter',sans-serif;font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px}\n.bwc-page .bwc-review-jump-stars{font-size:14px;letter-spacing:2px;text-decoration:none}\n.bwc-page .bwc-review-jump:focus-visible{outline:2px solid #141414;outline-offset:3px}\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:28px 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:18px 0 22px}\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 4px;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 h4{margin:0 0 6px;font-family:'Inter',sans-serif;font-size:13px;color:#6b6b6b;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-stars{color:#141414;font-size:13px;letter-spacing:2px;margin-bottom:8px}\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:#f8f8f8;cursor:pointer;transition:0.2s ease;}\n.bwc-page .bwc-review-mini:hover{background:#f0f0f0;}\n.bwc-page .bwc-review-mini .bwc-review-stars{font-size:12px;margin-bottom:6px}\n.bwc-page .bwc-review-mini .bwc-review-title{font-size:13px;margin-bottom:6px}\n.bwc-page .bwc-review-mini .bwc-review-quote{font-size:12.5px;line-height:1.55;margin-bottom:6px;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:28px;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:28px}\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:28px;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-btn[disabled]{opacity:.65;cursor:not-allowed}\n.bwc-page .bwc-btn.is-added{background:#fff;color:#111!important}\n.bwc-page .bwc-cta-form{margin:0;display:inline-block}\n\n\/* 评论弹窗样式 *\/\n.bwc-review-modal{\n  position:fixed;\n  inset:0;\n  background:rgba(0,0,0,0.7);\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  z-index:9999;\n  padding:20px;\n  opacity:0;\n  visibility:hidden;\n  transition:0.25s ease;\n}\n.bwc-review-modal.open{\n  opacity:1;\n  visibility:visible;\n}\n.bwc-modal-content{\n  background:#fff;\n  max-width:520px;\n  width:100%;\n  padding:28px;\n  position:relative;\n  max-height:85vh;\n  overflow-y:auto;\n}\n.bwc-modal-close{\n  position:absolute;\n  top:16px;\n  right:16px;\n  width:30px;height:30px;\n  border:1px solid #141414;\n  background:#fff;\n  color:#141414;\n  font-size:18px;\n  cursor:pointer;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n}\n.bwc-modal-close:hover{\n  background:#141414;\n  color:#fff;\n}\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.bwc-modal-content{padding:22px;}\n}\n\u003c\/style\u003e\n\u003cdiv class=\"bwc-page\"\u003e\n\u003cdiv class=\"bwc-container\"\u003e\n\u003cdiv class=\"bwc-card\"\u003e\n\u003c!-- Upload supplied images to Shopify Content \u003e Files with the same filenames. --\u003e\n\u003cdiv class=\"bwc-top\"\u003e\n\u003cp class=\"bwc-eyebrow\"\u003eWomen's Tiered Ruffle Skort With Built-In Shorts\u003c\/p\u003e\n\u003ch1 class=\"bwc-h1\"\u003eFlowy Skirt Style. Worry-Free Coverage.\u003c\/h1\u003e\n\u003cbutton type=\"button\" class=\"bwc-review-jump\" data-scroll-reviews\u003e\u003cspan class=\"bwc-review-jump-stars\"\u003e★★★★★\u003c\/span\u003e\u003cspan\u003eView Customer Reviews\u003c\/span\u003e\u003c\/button\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-hero\"\u003e\n\u003ch2\u003eThe Mini Skirt You Can Actually Move In\u003c\/h2\u003e\n\u003cp\u003eLove the feminine movement of a ruffle skirt but want more confidence for busy days? This easy pull-on skort combines a soft tiered silhouette with \u003cstrong\u003ehidden built-in shorts, a flexible drawstring waist, and practical side pockets\u003c\/strong\u003e—so you can walk, sit, travel, and enjoy the day with less fuss.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-img-wrap\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/2_356faeb5-5036-4d33-bb74-3e201a6e0e25.png?v=1785494375\" alt=\"\"\u003e\u003c\/div\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 thoughtful details make this skort easier to wear from morning plans to sunset outings.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\" style=\"margin-left: 26px; margin-right: 26px;\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/32401583-070a-4b6e-acfc-8122cd97247c.jpg?v=1785494437\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"0\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e1\u003c\/span\u003e\n\u003ch3\u003eBuilt-In Shorts For Confident Coverage\u003c\/h3\u003e\n\u003ch4\u003eSkirt Movement Without The Worry\u003c\/h4\u003e\n\u003cp\u003eHidden shorts sit beneath the flowy skirt layer to provide extra coverage and freedom of movement. They help you feel more comfortable while walking, sitting, traveling, or moving through a full day.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e2\u003c\/span\u003e\n\u003ch3\u003eFlowy Tiered Ruffle Shape\u003c\/h3\u003e\n\u003ch4\u003eLight, Feminine Movement\u003c\/h4\u003e\n\u003cp\u003eLayered ruffles create an easy A-line shape that moves beautifully without feeling stiff. The playful mini length works with tanks, tees, blouses, cardigans, sandals, sneakers, or flats.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-carousel-imgs\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-text\"\u003e\n\u003cspan class=\"bwc-carousel-num\"\u003e3\u003c\/span\u003e\n\u003ch3\u003eFlexible Waist \u0026amp; Everyday Pockets\u003c\/h3\u003e\n\u003ch4\u003eComfort Meets Practicality\u003c\/h4\u003e\n\u003cp\u003eThe elastic drawstring waistband offers an easy pull-on fit, while functional side pockets keep small essentials close. It is a simple combination made for everyday convenience.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev\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\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth\" style=\"margin-top: 8px;\"\u003e\u003c\/div\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eFit \u0026amp; Design Guide\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eThe stretchy paperbag-style waistband is designed for comfortable pull-on wear, while the tiered skirt layer falls into a relaxed A-line shape. Check the store size chart and compare your natural waist and fullest hip measurements before ordering.\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cdiv class=\"bwc-media-caption\"\u003e\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/b202517f-d363-4b04-a0d3-b57fb5c98aa9.jpg?v=1785494897\" alt=\"\"\u003eElastic Waist · Ruffle Hem · Hidden Shorts\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-body\"\u003e\n\u003ch2 class=\"bwc-section-title\"\u003ePerfect For\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eMade for vacations, beach days, cruises, cafés, shopping, brunch, casual workdays, weekend plans, garden gatherings, and relaxed days at home. Style it with a fitted tank for a clean everyday outfit, or add a lightweight shirt and woven accessories for an effortless resort look.\u003c\/p\u003e\n\u003cdiv class=\"bwc-media-block\"\u003e\n\u003cdiv class=\"bwc-media-caption\"\u003eVacation Ready · Easy To Style · Comfortable Coverage\u003c\/div\u003e\n\u003c\/div\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 Tiered Ruffle Skort\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStyle\u003c\/td\u003e\n\u003ctd\u003eCasual, Feminine, Boho-Inspired, Resort And Everyday\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eSilhouette\u003c\/td\u003e\n\u003ctd\u003eRelaxed A-Line Mini Skirt Look\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eWaist\u003c\/td\u003e\n\u003ctd\u003eElastic Paperbag-Style Waist With Adjustable Drawstring\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eInner Layer\u003c\/td\u003e\n\u003ctd\u003eBuilt-In Shorts For Extra Coverage\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eHem\u003c\/td\u003e\n\u003ctd\u003eTiered Ruffle Hem\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003ePockets\u003c\/td\u003e\n\u003ctd\u003eFunctional Side Pockets\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eLength\u003c\/td\u003e\n\u003ctd\u003eMini Length\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFabric\u003c\/td\u003e\n\u003ctd\u003eLightweight Woven Fabric; Exact Fiber Composition Was Not Provided\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFit\u003c\/td\u003e\n\u003ctd\u003eComfortable Pull-On Fit With A Flowy Outer Layer\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eAvailable Colors\u003c\/td\u003e\n\u003ctd\u003eBlack, Brown, Navy And Light Blue; Availability May Vary\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eBest For\u003c\/td\u003e\n\u003ctd\u003eVacations, Beach Days, Cruises, Brunch, Shopping, Weekends And Casual Daily Wear\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eStyling\u003c\/td\u003e\n\u003ctd\u003ePairs With Tanks, T-Shirts, Blouses, Cardigans, Sandals, Sneakers, Flats Or Heels\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eCare Guidance\u003c\/td\u003e\n\u003ctd\u003eFollow The Garment Care Label. Wash With Similar Colors And Avoid Unnecessary High Heat.\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003ch2 class=\"bwc-section-title\" id=\"bwc-reviews\" tabindex=\"-1\"\u003eCustomer Reviews\u003c\/h2\u003e\n\u003cp class=\"bwc-lead\"\u003eUse the arrows or dots to browse the review section. \u003cstrong\u003eClick any review card to view full comment.\u003c\/strong\u003e Replace the sample text below with verified customer feedback before publishing.\u003c\/p\u003e\n\u003cp class=\"bwc-lead\"\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/1_3381f85f-8202-4d04-9ed7-f6984e917c66.png?v=1785494375\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cdiv class=\"bwc-carousel\" data-carousel data-autoplay=\"0\"\u003e\n\u003cdiv class=\"bwc-carousel-track\" data-track\u003e\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-title=\"Verified Review Placeholder 01\" data-review-text=\"“Add a verified customer comment here about the built-in shorts, comfortable waistband, or confident coverage.”\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eVerified Review Placeholder 01\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e“Add a verified customer comment here about the built-in shorts, comfortable waistband, or confident coverage.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-title=\"Verified Review Placeholder 02\" data-review-text=\"“Add a verified customer comment here about the light, flowy feel and easy everyday styling.”\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eVerified Review Placeholder 02\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e“Add a verified customer comment here about the light, flowy feel and easy everyday styling.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-slide bwc-review-carousel-slide\"\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-title=\"Verified Review Placeholder 03\" data-review-text=\"“Add a verified customer comment here about the useful pockets and flexible drawstring waist.”\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eVerified Review Placeholder 03\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e“Add a verified customer comment here about the useful pockets and flexible drawstring waist.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-review-mini\" data-review-title=\"Verified Review Placeholder 04\" data-review-text=\"“Add a verified customer comment here about wearing the skort for travel, vacation, or weekend plans.”\"\u003e\n\u003cp class=\"bwc-review-title\"\u003eVerified Review Placeholder 04\u003c\/p\u003e\n\u003cp class=\"bwc-review-quote\"\u003e“Add a verified customer comment here about wearing the skort for travel, vacation, or weekend plans.”\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-carousel-nav\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-carousel-arrow\" data-prev\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\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003c!-- 评论弹窗容器 --\u003e\n\u003cdiv class=\"bwc-review-modal\"\u003e\n  \u003cdiv class=\"bwc-modal-content\"\u003e\n    \u003cbutton class=\"bwc-modal-close\"\u003e×\u003c\/button\u003e\n    \u003ch3 class=\"bwc-modal-title bwc-section-title\" style=\"padding-bottom:8px;margin-top:0;\"\u003e\u003c\/h3\u003e\n    \u003cdiv class=\"bwc-modal-body\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cdiv class=\"bwc-faq\" data-accordion\u003e\n\u003ch2 class=\"bwc-section-title\"\u003eFrequently Asked Questions\u003c\/h2\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eDoes this skirt include built-in shorts?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. Hidden shorts are built beneath the skirt layer to provide additional coverage and more confidence while walking, sitting, and moving.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eIs the waistband adjustable?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eThe waist has elastic for flexible pull-on comfort and a drawstring that allows you to adjust the fit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eAre the pockets functional?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eYes. The skort includes functional side pockets for carrying small daily essentials.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eWhat should I wear with it?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003ePair it with a fitted tank, T-shirt, blouse, lightweight button-down, cardigan, sandals, sneakers, flats, or heels.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eHow should I choose my size?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eCompare your natural waist and fullest hip measurements with the final store size chart. When between sizes, choose based on your preferred waist comfort and the amount of room you want through the shorts.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-faq-item\"\u003e\n\u003cbutton type=\"button\" class=\"bwc-faq-q\"\u003e\u003cspan class=\"qmark\"\u003eQ\u003c\/span\u003e\u003cspan class=\"qtext\"\u003eHow should I care for it?\u003c\/span\u003e\u003cspan class=\"bwc-faq-toggle\"\u003e+\u003c\/span\u003e\u003c\/button\u003e\n\u003cp class=\"bwc-faq-a\"\u003eFollow the garment care label. Wash with similar colors and avoid bleach or unnecessary high heat to help preserve the ruffle shape and color.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"bwc-teeth inv\"\u003e\u003c\/div\u003e\n\u003cdiv class=\"bwc-cta\"\u003e\n\u003ch2\u003eSkirt Style Without The Second Guess\u003c\/h2\u003e\n\u003cp\u003eChoose your favorite color and enjoy the feminine movement of a mini skirt with the extra coverage of hidden shorts.\u003c\/p\u003e\n\u003cbutton type=\"button\" class=\"bwc-btn bwc-add-to-cart\"\u003eChoose Your Color \u0026amp; Add To Cart\u003c\/button\u003e\n\u003c\/div\u003e\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\n\/\/ FAQ 折叠脚本\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\n\/\/ 页面通用交互\n(function(){\n  var page = document.querySelector('.bwc-page');\n  if (!page) return;\n\n  \/* Click \"View Customer Reviews\" to move directly to the review section. *\/\n  page.addEventListener('click', function(e){\n    var reviewLink = e.target.closest('[data-scroll-reviews]');\n    if (!reviewLink) return;\n    e.preventDefault();\n    var reviews = document.getElementById('bwc-reviews');\n    if (!reviews) return;\n    reviews.scrollIntoView({ behavior: 'smooth', block: 'start' });\n    window.setTimeout(function(){ reviews.focus({ preventScroll: true }); }, 450);\n  });\n\n  var EXCLUDE_SELECTOR = [\n    '.bwc-page',\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 isExcluded(el){\n    return !!el.closest(EXCLUDE_SELECTOR);\n  }\n\n  function isVisible(el){\n    if (!el) return false;\n    var style = window.getComputedStyle(el);\n    var rect = el.getBoundingClientRect();\n    return style.display !== 'none' \u0026\u0026 style.visibility !== 'hidden' \u0026\u0026 rect.width \u003e 0 \u0026\u0026 rect.height \u003e 0;\n  }\n\n  function getProductForms(){\n    var selectors = [\n      'product-form form[action*=\"\/cart\/add\"]',\n      '.product-form form[action*=\"\/cart\/add\"]',\n      '[data-product-form] form[action*=\"\/cart\/add\"]',\n      'form[action*=\"\/cart\/add\"]'\n    ];\n    var seen = [];\n    selectors.forEach(function(selector){\n      document.querySelectorAll(selector).forEach(function(form){\n        if (seen.indexOf(form) === -1 \u0026\u0026 !isExcluded(form)) seen.push(form);\n      });\n    });\n    return seen.sort(function(a, b){\n      return Number(isVisible(b)) - Number(isVisible(a));\n    });\n  }\n\n  function getSelectedVariantId(form){\n    if (!form) return '';\n    var input = form.querySelector('[name=\"id\"]');\n    if (input \u0026\u0026 input.value) return input.value;\n\n    var checked = document.querySelector('input[name=\"id\"]:checked');\n    if (checked \u0026\u0026 checked.value) return checked.value;\n\n    var globalInput = document.querySelector('select[name=\"id\"], input[name=\"id\"]');\n    return globalInput \u0026\u0026 globalInput.value ? globalInput.value : '';\n  }\n\n  function nativeAddToCart(form){\n    if (!form) return false;\n    var submit = form.querySelector('button[name=\"add\"], button[type=\"submit\"], input[name=\"add\"], input[type=\"submit\"]');\n    if (!submit || submit.disabled) return false;\n    submit.click();\n    return true;\n  }\n\n  function showButtonState(btn, text, disabled){\n    btn.textContent = text;\n    btn.disabled = !!disabled;\n  }\n\n  function directAjaxAdd(form, btn){\n    var id = getSelectedVariantId(form);\n    if (!id) {\n      alert('Please choose your color and size first.');\n      return;\n    }\n\n    var payload = new FormData();\n    payload.append('id', id);\n    payload.append('quantity', '1');\n\n    var sellingPlan = form \u0026\u0026 form.querySelector('[name=\"selling_plan\"]');\n    if (sellingPlan \u0026\u0026 sellingPlan.value) payload.append('selling_plan', sellingPlan.value);\n\n    var original = btn.getAttribute('data-default-text') || btn.textContent;\n    showButtonState(btn, 'Adding…', true);\n\n    fetch(window.Shopify \u0026\u0026 Shopify.routes ? Shopify.routes.root + 'cart\/add.js' : '\/cart\/add.js', {\n      method: 'POST',\n      headers: { 'Accept': 'application\/json' },\n      body: payload\n    })\n    .then(function(response){\n      if (!response.ok) return response.json().then(function(data){ throw new Error(data.description || 'Unable to add this item.'); });\n      return response.json();\n    })\n    .then(function(item){\n      showButtonState(btn, 'Added To Cart ✓', false);\n      btn.classList.add('is-added');\n\n      document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true, detail: { item: item } }));\n      document.dispatchEvent(new CustomEvent('cart:updated', { bubbles: true, detail: { item: item } }));\n\n      window.setTimeout(function(){\n        window.location.href = '\/cart';\n      }, 500);\n    })\n    .catch(function(error){\n      alert(error.message || 'Unable to add this item. Please try again.');\n      showButtonState(btn, original, false);\n    });\n  }\n\n  page.addEventListener('click', function(e){\n    var btn = e.target.closest('.bwc-add-to-cart');\n    if (!btn) return;\n    e.preventDefault();\n\n    var forms = getProductForms();\n    var form = forms.length ? forms[0] : null;\n\n    if (!form) {\n      alert('Please choose your options using the product selector above, then try again.');\n      return;\n    }\n\n    \/* Native theme submission is preferred because it preserves variant selection\n       and opens the theme's cart drawer when supported. *\/\n    if (!nativeAddToCart(form)) {\n      directAjaxAdd(form, btn);\n    }\n  });\n\n  \/\/ ========== 评论弹窗逻辑【新增】 ==========\n  const modal = document.querySelector('.bwc-review-modal');\n  const modalTitle = document.querySelector('.bwc-modal-title');\n  const modalBody = document.querySelector('.bwc-modal-body');\n  const closeBtn = document.querySelector('.bwc-modal-close');\n\n  \/\/ 打开弹窗\n  page.addEventListener('click', function(e){\n    const reviewCard = e.target.closest('.bwc-review-mini');\n    if(!reviewCard) return;\n    const title = reviewCard.dataset.reviewTitle;\n    const content = reviewCard.dataset.reviewText;\n    modalTitle.innerText = title;\n    modalBody.innerHTML = `\u003cp style=\"font-size:15px;line-height:1.7;color:#333;\"\u003e${content}\u003c\/p\u003e`;\n    modal.classList.add('open');\n    document.body.style.overflow = 'hidden';\n  });\n\n  \/\/ 关闭弹窗\n  function closeModal(){\n    modal.classList.remove('open');\n    document.body.style.overflow = '';\n  }\n  closeBtn.addEventListener('click', closeModal);\n  modal.addEventListener('click', function(e){\n    if(e.target === modal) closeModal();\n  });\n  document.addEventListener('keydown', function(e){\n    if(e.key === 'Escape') closeModal();\n  });\n\n})();\n\u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"tjx","offers":[{"title":"White \/ S","offer_id":43768636112986,"sku":"NC02292607314501-半身裙-黑色-S","price":29.99,"currency_code":"USD","in_stock":true},{"title":"White \/ M","offer_id":43768636145754,"sku":"NC02292607314501-半身裙-黑色-M","price":29.99,"currency_code":"USD","in_stock":true},{"title":"White \/ L","offer_id":43768636178522,"sku":"NC02292607314501-半身裙-黑色-L","price":29.99,"currency_code":"USD","in_stock":true},{"title":"White \/ XL","offer_id":43768636211290,"sku":"NC02292607314501-半身裙-黑色-XL","price":29.99,"currency_code":"USD","in_stock":true},{"title":"White \/ XXL","offer_id":43768636244058,"sku":"NC02292607314501-半身裙-黑色-XXL","price":29.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ S","offer_id":43768636276826,"sku":"NC02292607314501-半身裙-白色-S","price":29.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ M","offer_id":43768636309594,"sku":"NC02292607314501-半身裙-白色-M","price":29.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ L","offer_id":43768636342362,"sku":"NC02292607314501-半身裙-白色-L","price":29.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ XL","offer_id":43768636375130,"sku":"NC02292607314501-半身裙-白色-XL","price":29.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ XXL","offer_id":43768636407898,"sku":"NC02292607314501-半身裙-白色-XXL","price":29.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0731\/4633\/5322\/files\/2_356faeb5-5036-4d33-bb74-3e201a6e0e25.png?v=1785494375","url":"https:\/\/sthael.com\/products\/boho-skirts-for-women-flowy-casual-cute-skorts-built-in-shorts","provider":"Sthael","version":"1.0","type":"link"}