{"product_id":"new-one-shoulder-knitted-long-sleeved-dress-sexy-beach-holiday-long-dresses-womens-clothing","title":"One-Shoulder Knit Long Dress – Sexy Beach Holiday Dress","description":"\u003cstyle\u003e\n\/* =========================================================\nSARA BOUTIQUE: PRODUCT DESCRIPTION (matches the product page)\n========================================================= *\/\n.sdp,.sdp-lb{--t:#282223;--m:#6f6768;--b:#e4dcd8;--r:#b78387;--rd:#96666a;--rl:#ead7d7;--soft:#fbf7f5;--gold:#c8963e;--serif:Georgia,'Times New Roman',serif}\n.sdp{color:var(--t);font-size:14px;line-height:1.6;max-width:100%;overflow:hidden;text-align:left}\n.sdp *,.sdp *::before,.sdp *::after,.sdp-lb *{box-sizing:border-box}\n.sdp img,.sdp video{max-width:100%}\n.sdp button{font-family:inherit}\n.sdp p{margin:0}\n.sdp .sdp-h{font-family:var(--serif);font-size:23px;font-weight:400;line-height:1.2;letter-spacing:-.01em;margin:0 0 5px;color:var(--t)}\n.sdp .sdp-sub{font-size:13px;color:var(--m);margin:0 0 14px}\n.sdp-sec{margin:0 0 38px}\n.sdp-lead{font-size:15px;line-height:1.7;color:#4a4243;margin:0 0 18px}\n\n\/* ---------- HIGHLIGHTS ---------- *\/\n.sdp-hl{display:grid;grid-template-columns:1fr 1fr;gap:10px}\n.sdp-hl-item{display:flex;gap:11px;align-items:flex-start;padding:13px;background:#fff;border:1px solid var(--b);border-radius:12px}\n.sdp-hl-ico{width:34px;height:34px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--rl);color:var(--rd);font-size:15px}\n.sdp-hl-item strong{display:block;font-size:14px;line-height:1.3;color:var(--t)}\n.sdp-hl-item span.sdp-hl-t{display:block;margin-top:2px;font-size:12.5px;line-height:1.45;color:var(--m)}\n\n\/* ---------- VIDEO REEL ---------- *\/\n.sdp-reel-wrap{container-type:inline-size}\n.sdp-reel{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:2px 2px 10px;scrollbar-width:none}\n.sdp-reel::-webkit-scrollbar{display:none}\n.sdp-reel-wrap{position:relative}\n.sdp-reel-fade{position:absolute;top:0;right:0;bottom:44px;width:46px;pointer-events:none;background:linear-gradient(to left,rgba(247,243,239,.96),rgba(247,243,239,0));border-radius:0 14px 14px 0;transition:opacity .3s ease}\n.sdp-reel-wrap.at-end .sdp-reel-fade{opacity:0}\n.sdp-swipe{position:absolute;right:10px;top:42%;display:flex;align-items:center;gap:6px;padding:9px 14px;border-radius:999px;background:rgba(40,34,35,.78);color:#fff;font-size:13px;font-weight:700;pointer-events:none;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);transition:opacity .4s ease}\n.sdp-swipe i{font-style:normal;font-size:17px;line-height:1;display:inline-block;animation:sdpNudge 1.3s ease-in-out infinite}\n@keyframes sdpNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}\n.sdp-reel-wrap.hint-off .sdp-swipe{opacity:0}\n.sdp-reel-ctrl{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:2px}\n.sdp-reel-ctrl .sdp-arrow:disabled{opacity:.35;cursor:default;background:#fff;color:var(--rd);border-color:var(--b)}\n.sdp-dots{display:flex;align-items:center}\n.sdp-dot{width:22px;height:30px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}\n.sdp-dot::before{content:\"\";display:block;width:8px;height:8px;border-radius:999px;background:#d4c8c5;transition:width .25s ease,background .25s ease}\n.sdp-dot.on::before{width:22px;background:var(--r)}\n.sdp-vid{position:relative;flex:0 0 min(42cqw,176px);aspect-ratio:9\/14;scroll-snap-align:start;overflow:hidden;border-radius:14px;border:1px solid var(--b);background:#e9dfda;cursor:pointer;-webkit-tap-highlight-color:transparent}\n.sdp-vid video{width:100%;height:100%;display:block;object-fit:cover}\n.sdp-snd{position:absolute;left:8px;bottom:8px;padding:6px 11px;border:0;border-radius:999px;background:rgba(40,34,35,.62);color:#fff;font-size:12px;font-weight:600;cursor:pointer;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}\n.sdp-vid.is-sound .sdp-snd{background:var(--rd)}\n\n\/* ---------- REVIEWS ---------- *\/\n.sdp-note{display:flex;gap:10px;align-items:flex-start;margin:0 0 16px;padding:12px 14px;border:1px solid var(--b);border-left:3px solid var(--r);border-radius:10px;background:var(--soft);font-size:12.5px;line-height:1.55;color:#5f5758}\n.sdp-note b{color:var(--t)}\n.sdp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:0 0 14px}\n.sdp-stat{padding:14px 6px;text-align:center;background:#fff;border:1px solid var(--b);border-radius:12px}\n.sdp-stat b{display:block;font-family:var(--serif);font-size:28px;font-weight:400;line-height:1.1;color:var(--rd)}\n.sdp-stat span{display:block;margin-top:3px;font-size:12px;color:var(--m)}\n.sdp-stat .sdp-stars{font-size:12px;letter-spacing:1px;margin-top:4px}\n.sdp-stars{color:var(--gold);letter-spacing:2px;font-size:14px;line-height:1}\n\n.sdp-wall{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin:0 0 18px}\n.sdp-wall button{position:relative;padding:0;border:1px solid var(--b);border-radius:9px;overflow:hidden;aspect-ratio:3\/4;background:#eee7e3;cursor:zoom-in;transition:transform .2s ease,border-color .2s ease}\n.sdp-wall button:hover{transform:translateY(-3px);border-color:var(--r)}\n.sdp-wall img{width:100%;height:100%;object-fit:cover;display:block}\n\n.sdp-rev{container-type:inline-size}\n.sdp-track{--cw:min(88cqw,360px);position:relative;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:14px calc((100cqw - var(--cw))\/2) 18px;margin:0;scrollbar-width:none}\n.sdp-track::-webkit-scrollbar{display:none}\n.sdp-card{flex:0 0 var(--cw);scroll-snap-align:center;display:flex;gap:13px;align-items:stretch;padding:13px;background:#fff;border:1px solid var(--b);border-radius:16px;opacity:.5;transform:scale(.95);transition:opacity .35s ease,transform .35s ease,box-shadow .35s ease,border-color .35s ease}\n.sdp-card.is-focus{opacity:1;transform:scale(1);border-color:#d9b9bb;box-shadow:0 18px 40px rgba(150,102,106,.2),0 0 0 3px rgba(183,131,135,.12)}\n.sdp-card-photo{flex:0 0 36%;padding:0;border:1px solid var(--b);border-radius:11px;overflow:hidden;background:#eee7e3;cursor:zoom-in;align-self:stretch;min-height:150px}\n.sdp-card-photo img{width:100%;height:100%;object-fit:cover;display:block}\n.sdp-card-body{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:8px}\n.sdp-quote{font-family:var(--serif);font-size:16px;line-height:1.5;color:var(--t);overflow-wrap:break-word}\n.sdp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:12.5px;color:var(--m)}\n.sdp-meta b{color:var(--t);font-weight:700}\n.sdp-chip{padding:2px 9px;border-radius:999px;background:var(--rl);color:var(--rd);font-size:12px;font-weight:600}\n.sdp-tr{align-self:flex-start;padding:0;border:0;background:none;color:var(--rd);font-size:12.5px;font-weight:600;text-decoration:underline;text-underline-offset:3px;cursor:pointer}\n.sdp-trtag{font-size:12px;color:var(--m)}\n.sdp-rev-ctrl{display:flex;align-items:center;justify-content:center;gap:14px}\n.sdp-arrow{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border:1px solid var(--b);border-radius:50%;background:#fff;color:var(--rd);font-size:18px;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease}\n.sdp-arrow:hover{background:var(--r);border-color:var(--r);color:#fff}\n.sdp-count{min-width:54px;text-align:center;font-size:13px;font-weight:700;color:var(--m)}\n\n\/* ---------- SIZE ---------- *\/\n.sdp-size{background:#fff;border:1px solid var(--b);border-radius:16px;padding:18px}\n.sdp-unit{display:inline-flex;padding:3px;border:1px solid var(--b);border-radius:999px;background:var(--soft);margin:0 0 14px}\n.sdp-unit button{padding:7px 18px;border:0;border-radius:999px;background:transparent;color:var(--m);font-size:13px;font-weight:700;cursor:pointer;transition:background .2s ease,color .2s ease}\n.sdp-unit button.on{background:var(--r);color:#fff}\n.sdp-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 14px}\n.sdp-field label{display:block;margin:0 0 5px;font-size:13px;font-weight:700;color:#4a4243}\n.sdp-field small{display:block;margin-top:4px;font-size:12px;color:var(--m);line-height:1.4}\n.sdp-field input{width:100%;height:50px;padding:0 14px;border:1.5px solid #d9cfcc;border-radius:10px;background:#fff;font-size:16px;color:var(--t);font-family:inherit;-moz-appearance:textfield}\n.sdp-field input::-webkit-inner-spin-button,.sdp-field input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}\n.sdp-field input:focus{outline:none;border-color:var(--r);box-shadow:0 0 0 3px rgba(183,131,135,.18)}\n.sdp-result{display:flex;gap:14px;align-items:center;padding:14px;border-radius:12px;background:var(--soft);border:1px dashed #d9c3c3;min-height:84px}\n.sdp-result.has{background:linear-gradient(135deg,#fff,#f6ebeb);border:1px solid #d9b9bb;border-style:solid}\n.sdp-badge{flex:0 0 58px;width:58px;height:58px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#e7dbd8;color:#fff;font-family:var(--serif);font-size:28px}\n.sdp-result.has .sdp-badge{background:linear-gradient(145deg,var(--r),var(--rd));animation:sdpPop .4s cubic-bezier(.34,1.56,.64,1)}\n@keyframes sdpPop{0%{transform:scale(.7)}100%{transform:scale(1)}}\n.sdp-result strong{display:block;font-size:16px;line-height:1.3;color:var(--t)}\n.sdp-result p{margin-top:3px;font-size:13px;line-height:1.5;color:#5f5758}\n.sdp-result p+p{margin-top:5px}\n.sdp-chart{margin:16px 0 0;border:1px solid var(--b);border-radius:12px;overflow:hidden}\n.sdp-table{width:100%;border-collapse:collapse;font-size:13px}\n.sdp-table th,.sdp-table td{padding:10px 6px;text-align:center;border-bottom:1px solid var(--b);transition:background .3s ease}\n.sdp-table thead th{background:var(--soft);font-size:12px;font-weight:700;color:#4a4243}\n.sdp-table tbody tr:last-child th,.sdp-table tbody tr:last-child td{border-bottom:0}\n.sdp-table tbody th{text-align:left;padding-left:12px;font-weight:700;color:var(--t);white-space:nowrap}\n.sdp-table tbody th small{display:block;font-size:12px;font-weight:400;color:var(--m)}\n.sdp-table tr.is-rec th,.sdp-table tr.is-rec td{background:#f6e6e6}\n.sdp-table tr.is-rec th strong{color:var(--rd)}\n.sdp-tips{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:7px}\n.sdp-tips li{position:relative;padding-left:20px;font-size:13px;line-height:1.55;color:#5f5758}\n.sdp-tips li::before{content:\"✦\";position:absolute;left:0;top:1px;color:var(--r);font-size:11px}\n.sdp-tips a{color:var(--rd);font-weight:600}\n\n\/* ---------- DETAILS ---------- *\/\n.sdp-det{border:1px solid var(--b);border-radius:14px;background:#fff;overflow:hidden}\n.sdp-det summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:16px 18px;font-size:15px;font-weight:700;cursor:pointer}\n.sdp-det summary::-webkit-details-marker{display:none}\n.sdp-det summary::after{content:\"+\";display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid #daccca;border-radius:50%;color:var(--rd);font-size:18px;font-weight:400;transition:transform .25s ease,background .25s ease,color .25s ease}\n.sdp-det[open] summary::after{transform:rotate(45deg);background:var(--r);border-color:var(--r);color:#fff}\n.sdp-dt{width:100%;border-collapse:collapse;font-size:14px}\n.sdp-dt tr{border-top:1px solid var(--b)}\n.sdp-dt td{padding:11px 18px;vertical-align:top}\n.sdp-dt td:first-child{width:40%;color:var(--rd);font-weight:700}\n.sdp-dt td:last-child{color:#4a4243}\n\n\/* ---------- LIGHTBOX ---------- *\/\n.sdp-lb{position:fixed;inset:0;z-index:99999;background:rgba(20,16,17,.96);display:flex;align-items:center;justify-content:center;touch-action:pan-y}\n.sdp-lb[hidden]{display:none}\n.sdp-lb img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:10px;user-select:none;-webkit-user-drag:none}\n.sdp-lb button{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid rgba(255,255,255,.4);border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:22px;cursor:pointer;font-family:inherit}\n.sdp-lb .sdp-lb-x{top:max(14px,env(safe-area-inset-top,0px));right:14px;font-size:28px}\n.sdp-lb .sdp-lb-p{left:12px;top:50%;transform:translateY(-50%)}\n.sdp-lb .sdp-lb-n{right:12px;top:50%;transform:translateY(-50%)}\n.sdp-lb .sdp-lb-c{position:absolute;bottom:max(18px,env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;font-size:13px;color:rgba(255,255,255,.75)}\n\n.sdp button:focus-visible,.sdp summary:focus-visible,.sdp input:focus-visible,.sdp-lb button:focus-visible{outline:2px solid var(--rd);outline-offset:2px}\n\n@media(max-width:420px){\n  .sdp-hl{gap:8px}\n  .sdp-hl-item{padding:11px;gap:9px}\n  .sdp-hl-ico{width:30px;height:30px;font-size:13px}\n  .sdp-quote{font-size:15px}\n  .sdp-card{gap:11px;padding:11px}\n  .sdp-size{padding:14px}\n}\n@media(prefers-reduced-motion:reduce){\n  .sdp-card,.sdp-result.has .sdp-badge,.sdp-swipe i{transition:none!important;animation:none!important}\n  .sdp-card{transform:none}\n}\n\u003c\/style\u003e\n\n\u003cdiv class=\"sdp\" id=\"sdp\"\u003e\n\n\u003c!-- ================= INTRO + HIGHLIGHTS ================= --\u003e\n\u003csection class=\"sdp-sec\"\u003e\n  \u003cp class=\"sdp-lead\"\u003eA one-shoulder knitted long dress for beach holidays and warm evenings. High waist, long sleeve, long skirt, in 7 colors.\u003c\/p\u003e\n  \u003cdiv class=\"sdp-hl\"\u003e\n    \u003cdiv class=\"sdp-hl-item\"\u003e\n\u003cspan class=\"sdp-hl-ico\"\u003e✦\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eOne shoulder\u003c\/strong\u003e\u003cspan class=\"sdp-hl-t\"\u003eAsymmetric neckline with a long sleeve\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"sdp-hl-item\"\u003e\n\u003cspan class=\"sdp-hl-ico\"\u003e♡\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eHigh waist\u003c\/strong\u003e\u003cspan class=\"sdp-hl-t\"\u003eLong, hip-hugging skirt line\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"sdp-hl-item\"\u003e\n\u003cspan class=\"sdp-hl-ico\"\u003e☀\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003eCotton fabric\u003c\/strong\u003e\u003cspan class=\"sdp-hl-t\"\u003eComfortable for all-day wear\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"sdp-hl-item\"\u003e\n\u003cspan class=\"sdp-hl-ico\"\u003e●\u003c\/span\u003e\u003cdiv\u003e\n\u003cstrong\u003e7 colors\u003c\/strong\u003e\u003cspan class=\"sdp-hl-t\"\u003eApricot, white, black, green, blue, red and skirt white\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= VIDEO REEL ================= --\u003e\n\u003csection class=\"sdp-sec\"\u003e\n  \u003ch2 class=\"sdp-h\"\u003eSee it move\u003c\/h2\u003e\n  \u003cp class=\"sdp-sub\"\u003e6 videos. Swipe sideways or use the arrows. Tap a video for sound.\u003c\/p\u003e\n  \u003cdiv class=\"sdp-reel-wrap\" id=\"sdpReelWrap\"\u003e\n    \u003cdiv class=\"sdp-reel\" id=\"sdpReel\"\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/edd15b9555e246bb89eb708ba90a54e7.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/95106959ab2449b39d983ef47f49b7c7.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/f8d0885ef4a94789b32a7cf29f534054.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/97605fb4e1e6494e9cfd0e412b32e253.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/7564fca1acbe4229ade0fb577b3bce27.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003cdiv class=\"sdp-vid\"\u003e\n\u003cvideo data-src=\"https:\/\/cdn.shopify.com\/videos\/c\/o\/v\/5d85f05bfecd415d8a6a2e6ee7536c1e.mp4\" muted loop playsinline preload=\"metadata\"\u003e\u003c\/video\u003e\u003cbutton type=\"button\" class=\"sdp-snd\"\u003eTap for sound\u003c\/button\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"sdp-reel-fade\" aria-hidden=\"true\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"sdp-swipe\" aria-hidden=\"true\"\u003eSwipe \u003ci\u003e›\u003c\/i\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"sdp-reel-ctrl\"\u003e\n    \u003cbutton type=\"button\" class=\"sdp-arrow\" id=\"sdpReelPrev\" aria-label=\"Previous videos\"\u003e‹\u003c\/button\u003e\n    \u003cdiv class=\"sdp-dots\" id=\"sdpReelDots\"\u003e\u003c\/div\u003e\n    \u003cbutton type=\"button\" class=\"sdp-arrow\" id=\"sdpReelNext\" aria-label=\"More videos\"\u003e›\u003c\/button\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= REVIEWS ================= --\u003e\n\u003csection class=\"sdp-sec\"\u003e\n  \u003ch2 class=\"sdp-h\"\u003eReviews from our supplier\u003c\/h2\u003e\n  \u003cp class=\"sdp-sub\"\u003eReal photos and comments from customers who bought this dress.\u003c\/p\u003e\n\n  \u003cdiv class=\"sdp-note\"\u003e\u003cdiv\u003e\n\u003cb\u003eWhere these come from:\u003c\/b\u003e these reviews and photos are from our supplier, left by customers who bought this same dress. We share them so you can see real people wearing it. Comments in other languages are translated.\u003c\/div\u003e\u003c\/div\u003e\n\n  \u003cdiv class=\"sdp-stats\" id=\"sdpStats\"\u003e\n    \u003cdiv class=\"sdp-stat\"\u003e\n\u003cb data-k=\"avg\" data-dec=\"1\"\u003e5.0\u003c\/b\u003e\u003cdiv class=\"sdp-stars\" aria-hidden=\"true\"\u003e★★★★★\u003c\/div\u003e\n\u003cspan\u003eaverage rating\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"sdp-stat\"\u003e\n\u003cb data-k=\"count\" data-dec=\"0\"\u003e13\u003c\/b\u003e\u003cspan\u003ecustomer reviews\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"sdp-stat\"\u003e\n\u003cb data-k=\"countries\" data-dec=\"0\"\u003e9\u003c\/b\u003e\u003cspan\u003ecountries\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sdp-wall\" id=\"sdpWall\"\u003e\n    \u003cbutton type=\"button\" data-photo=\"0\" aria-label=\"Open buyer photo 1\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/9328ed72-434c-4ed9-ad3a-09db928e3b66.jpg\" alt=\"Buyer photo of the dress\" loading=\"lazy\"\u003e\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-photo=\"1\" aria-label=\"Open buyer photo 2\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/eb84ca7e-e8d3-4513-a6c7-5675e586f792.jpg\" alt=\"Buyer photo of the dress\" loading=\"lazy\"\u003e\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-photo=\"2\" aria-label=\"Open buyer photo 3\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/a6e852f8-7e3c-4f5d-8cf7-620612656eb9.jpg\" alt=\"Buyer photo of the dress\" loading=\"lazy\"\u003e\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-photo=\"3\" aria-label=\"Open buyer photo 4\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/9e342654-08c6-4c26-820b-124fdc3fa616.jpg\" alt=\"Buyer photo of the dress\" loading=\"lazy\"\u003e\u003c\/button\u003e\n    \u003cbutton type=\"button\" data-photo=\"4\" aria-label=\"Open buyer photo 5\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/dea2d231-c4e7-4a7b-971b-28fb9048be0e.jpg\" alt=\"Buyer photo of the dress\" loading=\"lazy\"\u003e\u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"sdp-rev\"\u003e\n    \u003cdiv class=\"sdp-track\" id=\"sdpTrack\" tabindex=\"0\" aria-label=\"Buyer reviews, swipe sideways\"\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"United States\"\u003e\n        \u003cbutton type=\"button\" class=\"sdp-card-photo\" data-photo=\"0\" aria-label=\"Enlarge photo\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/9328ed72-434c-4ed9-ad3a-09db928e3b66.jpg\" alt=\"Buyer photo\" loading=\"lazy\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“It's a nice dress! It is a little loose up top, but other than that it is a nice dress for summer.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eX***q\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eUnited States\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"United States\"\u003e\n        \u003cbutton type=\"button\" class=\"sdp-card-photo\" data-photo=\"1\" aria-label=\"Enlarge photo\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/eb84ca7e-e8d3-4513-a6c7-5675e586f792.jpg\" alt=\"Buyer photo\" loading=\"lazy\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“I got this for a cruise, wore it for beach cover to evening dress. Nice, comfortable, and nice material. Runs true to size.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eC***m\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eUnited States\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Russia\"\u003e\n        \u003cbutton type=\"button\" class=\"sdp-card-photo\" data-photo=\"2\" aria-label=\"Enlarge photo\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/a6e852f8-7e3c-4f5d-8cf7-620612656eb9.jpg\" alt=\"Buyer photo\" loading=\"lazy\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“Great dress, looks worthy.”\" data-orig=\"“Платье супер! Смотрится достойно!”\"\u003e“Great dress, looks worthy.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eF***u\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eRussia\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Ukraine\"\u003e\n        \u003cbutton type=\"button\" class=\"sdp-card-photo\" data-photo=\"3\" aria-label=\"Enlarge photo\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/9e342654-08c6-4c26-820b-124fdc3fa616.jpg\" alt=\"Buyer photo\" loading=\"lazy\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“Gorgeous dress, looks very expensive. Excellent quality, all seams even. The size fit perfectly.”\" data-orig=\"“Шикарна сукня, виглядає дуже дорого. Якість відмінна, всі шви рівні. Розмір підійшов ідеально.”\"\u003e“Gorgeous dress, looks very expensive. Excellent quality, all seams even. The size fit perfectly.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eG***k\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eUkraine\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Portugal\"\u003e\n        \u003cbutton type=\"button\" class=\"sdp-card-photo\" data-photo=\"4\" aria-label=\"Enlarge photo\"\u003e\u003cimg src=\"https:\/\/cc-west-usa.oss-us-west-1.aliyuncs.com\/comment\/additional\/0001\/image\/2024-06-06\/dea2d231-c4e7-4a7b-971b-28fb9048be0e.jpg\" alt=\"Buyer photo\" loading=\"lazy\"\u003e\u003c\/button\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“Same as the photos.”\" data-orig=\"“Igual as fotografias.”\"\u003e“Same as the photos.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eE***c\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003ePortugal\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Russia\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“Super!!!”\" data-orig=\"“Супер!!!”\"\u003e“Super!!!”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eP***n\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eRussia\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Netherlands\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“Beautiful.”\" data-orig=\"“Mooi.”\"\u003e“Beautiful.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eO***e\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eNetherlands\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Spain\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\" data-en=\"“I can't compare it with the original, but it looks quite decent and pretty, not bad.”\" data-orig=\"“No puedo compararlo con el original, pero parece bastante decente y bonito, no está mal.”\"\u003e“I can't compare it with the original, but it looks quite decent and pretty, not bad.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eG***h\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eSpain\u003c\/span\u003e\u003cspan class=\"sdp-trtag\"\u003eTranslated\u003c\/span\u003e\n\u003c\/div\u003e\n          \u003cbutton type=\"button\" class=\"sdp-tr\"\u003eSee original\u003c\/button\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"United Kingdom\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“Amazing! Really nice.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eR***h\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eUnited Kingdom\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Australia\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“Thank you so much. I love my dress. It's really nice and fits me very well. I recommend everyone to buy from you.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eX***z\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eAustralia\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"United States\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“I am short and wide and this dress is so flattering on my body! Might buy it in more colors.”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eJ***b\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eUnited States\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Germany\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“Super 👌”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eO***z\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eGermany\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n      \u003carticle class=\"sdp-card\" data-rating=\"5\" data-country=\"Netherlands\"\u003e\n        \u003cdiv class=\"sdp-card-body\"\u003e\n\u003cdiv class=\"sdp-stars\" aria-label=\"5 out of 5 stars\"\u003e★★★★★\u003c\/div\u003e\n          \u003cp class=\"sdp-quote\"\u003e“Looks good!”\u003c\/p\u003e\n          \u003cdiv class=\"sdp-meta\"\u003e\n\u003cb\u003eM***g\u003c\/b\u003e\u003cspan class=\"sdp-chip\"\u003eNetherlands\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n      \u003c\/article\u003e\n\n    \u003c\/div\u003e\n    \u003cdiv class=\"sdp-rev-ctrl\"\u003e\n      \u003cbutton type=\"button\" class=\"sdp-arrow\" id=\"sdpPrev\" aria-label=\"Previous review\"\u003e‹\u003c\/button\u003e\n      \u003cspan class=\"sdp-count\" id=\"sdpCount\"\u003e1 \/ 13\u003c\/span\u003e\n      \u003cbutton type=\"button\" class=\"sdp-arrow\" id=\"sdpNext\" aria-label=\"Next review\"\u003e›\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= SIZE ================= --\u003e\n\u003csection class=\"sdp-sec\"\u003e\n  \u003ch2 class=\"sdp-h\"\u003eFind your size\u003c\/h2\u003e\n  \u003cp class=\"sdp-sub\"\u003eThis dress runs smaller than European and US sizing, so measure first.\u003c\/p\u003e\n\n  \u003cdiv class=\"sdp-size\"\u003e\n    \u003cdiv class=\"sdp-unit\" id=\"sdpUnit\" role=\"group\" aria-label=\"Units\"\u003e\n      \u003cbutton type=\"button\" class=\"on\" data-u=\"cm\"\u003ecm\u003c\/button\u003e\n      \u003cbutton type=\"button\" data-u=\"in\"\u003einches\u003c\/button\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-fields\"\u003e\n      \u003cdiv class=\"sdp-field\"\u003e\n        \u003clabel for=\"sdpBust\"\u003eYour bust (\u003cspan class=\"sdp-ul\"\u003ecm\u003c\/span\u003e)\u003c\/label\u003e\n        \u003cinput id=\"sdpBust\" type=\"number\" inputmode=\"decimal\" min=\"0\" step=\"0.5\" placeholder=\"e.g. 86\"\u003e\n        \u003csmall\u003eAround the fullest part\u003c\/small\u003e\n      \u003c\/div\u003e\n      \u003cdiv class=\"sdp-field\"\u003e\n        \u003clabel for=\"sdpHeight\"\u003eYour height (\u003cspan class=\"sdp-ul\"\u003ecm\u003c\/span\u003e) \u003cspan style=\"font-weight:400;color:#6f6768\"\u003eoptional\u003c\/span\u003e\u003c\/label\u003e\n        \u003cinput id=\"sdpHeight\" type=\"number\" inputmode=\"decimal\" min=\"0\" step=\"0.5\" placeholder=\"e.g. 165\"\u003e\n        \u003csmall\u003eFor the length estimate\u003c\/small\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-result\" id=\"sdpResult\" aria-live=\"polite\"\u003e\n      \u003cdiv class=\"sdp-badge\" id=\"sdpBadge\"\u003e?\u003c\/div\u003e\n      \u003cdiv\u003e\n\u003cstrong id=\"sdpRTitle\"\u003eEnter your bust to see your size\u003c\/strong\u003e\u003cp id=\"sdpRText\"\u003eWe'll match it to the size chart below.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"sdp-chart\"\u003e\n      \u003ctable class=\"sdp-table\" id=\"sdpTable\"\u003e\n        \u003cthead\u003e\u003ctr\u003e\n\u003cth style=\"text-align:left;padding-left:12px\"\u003eSize\u003c\/th\u003e\n\u003cth\u003eBust (\u003cspan class=\"sdp-ul\"\u003ecm\u003c\/span\u003e)\u003c\/th\u003e\n\u003cth\u003eLength (\u003cspan class=\"sdp-ul\"\u003ecm\u003c\/span\u003e)\u003c\/th\u003e\n\u003cth\u003eSleeve (\u003cspan class=\"sdp-ul\"\u003ecm\u003c\/span\u003e)\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n        \u003ctbody\u003e\n          \u003ctr data-size=\"S\"\u003e\n\u003cth scope=\"row\"\u003e\n\u003cstrong\u003eS\u003c\/strong\u003e\u003csmall\u003eUS 4-6 · EU 34-36\u003c\/small\u003e\n\u003c\/th\u003e\n\u003ctd data-cm=\"76-84\" data-in=\"29.9-33.1\"\u003e76-84\u003c\/td\u003e\n\u003ctd data-cm=\"127\" data-in=\"50.0\"\u003e127\u003c\/td\u003e\n\u003ctd data-cm=\"56\" data-in=\"22.0\"\u003e56\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr data-size=\"M\"\u003e\n\u003cth scope=\"row\"\u003e\n\u003cstrong\u003eM\u003c\/strong\u003e\u003csmall\u003eUS 8-10 · EU 38-40\u003c\/small\u003e\n\u003c\/th\u003e\n\u003ctd data-cm=\"80-88\" data-in=\"31.5-34.6\"\u003e80-88\u003c\/td\u003e\n\u003ctd data-cm=\"128\" data-in=\"50.4\"\u003e128\u003c\/td\u003e\n\u003ctd data-cm=\"57\" data-in=\"22.4\"\u003e57\u003c\/td\u003e\n\u003c\/tr\u003e\n          \u003ctr data-size=\"L\"\u003e\n\u003cth scope=\"row\"\u003e\n\u003cstrong\u003eL\u003c\/strong\u003e\u003csmall\u003eUS 12-14 · EU 42-44\u003c\/small\u003e\n\u003c\/th\u003e\n\u003ctd data-cm=\"84-92\" data-in=\"33.1-36.2\"\u003e84-92\u003c\/td\u003e\n\u003ctd data-cm=\"129\" data-in=\"50.8\"\u003e129\u003c\/td\u003e\n\u003ctd data-cm=\"58\" data-in=\"22.8\"\u003e58\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003c\/tbody\u003e\n      \u003c\/table\u003e\n    \u003c\/div\u003e\n\n    \u003cul class=\"sdp-tips\"\u003e\n      \u003cli\u003eBetween two sizes? Choose the larger one.\u003c\/li\u003e\n      \u003cli\u003eMeasurements are taken by hand, so allow 2-3 cm of difference.\u003c\/li\u003e\n      \u003cli\u003eColors can look slightly different on each screen.\u003c\/li\u003e\n      \u003cli\u003eStill not sure? \u003ca href=\"mailto:Saraboutique323@gmail.com?subject=Size%20help\"\u003eMessage us\u003c\/a\u003e with your bust and height and we'll help you pick.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003c!-- ================= DETAILS ================= --\u003e\n\u003csection class=\"sdp-sec\" style=\"margin-bottom:6px\"\u003e\n  \u003cdetails class=\"sdp-det\"\u003e\n    \u003csummary\u003eProduct details\u003c\/summary\u003e\n    \u003ctable class=\"sdp-dt\"\u003e\n      \u003ctbody\u003e\n        \u003ctr\u003e\n\u003ctd\u003eFabric\u003c\/td\u003e\n\u003ctd\u003eCotton\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eNeckline\u003c\/td\u003e\n\u003ctd\u003eOne shoulder\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSleeve\u003c\/td\u003e\n\u003ctd\u003eLong sleeve\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eWaist\u003c\/td\u003e\n\u003ctd\u003eHigh waist\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSkirt\u003c\/td\u003e\n\u003ctd\u003eLong, hip skirt\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eColors\u003c\/td\u003e\n\u003ctd\u003eApricot, white, black, green, blue, red, skirt white\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eSizes\u003c\/td\u003e\n\u003ctd\u003eS, M, L\u003c\/td\u003e\n\u003c\/tr\u003e\n        \u003ctr\u003e\n\u003ctd\u003eIn the package\u003c\/td\u003e\n\u003ctd\u003e1 × Dress\u003c\/td\u003e\n\u003c\/tr\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n  \u003c\/details\u003e\n\u003c\/section\u003e\n\n\u003c\/div\u003e\n\n\u003c!-- ================= PHOTO VIEWER ================= --\u003e\n\u003cdiv class=\"sdp-lb\" id=\"sdpLb\" hidden\u003e\n  \u003cbutton type=\"button\" class=\"sdp-lb-x\" id=\"sdpLbX\" aria-label=\"Close\"\u003e×\u003c\/button\u003e\n  \u003cbutton type=\"button\" class=\"sdp-lb-p\" id=\"sdpLbP\" aria-label=\"Previous photo\"\u003e‹\u003c\/button\u003e\n  \u003cimg id=\"sdpLbImg\" alt=\"Buyer photo\"\u003e\n  \u003cbutton type=\"button\" class=\"sdp-lb-n\" id=\"sdpLbN\" aria-label=\"Next photo\"\u003e›\u003c\/button\u003e\n  \u003cdiv class=\"sdp-lb-c\" id=\"sdpLbC\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n(function(){\nvar root = document.getElementById('sdp');\nif(!root) return;\nvar $ = function(s, c){ return (c || root).querySelector(s); };\nvar $$ = function(s, c){ return Array.prototype.slice.call((c || root).querySelectorAll(s)); };\nvar reduce = window.matchMedia \u0026\u0026 window.matchMedia('(prefers-reduced-motion:reduce)').matches;\n\n\/* ===== VIDEO REEL: load when near, play only when visible, tap for sound ===== *\/\nvar vidCards = $$('.sdp-vid');\nvidCards.forEach(function(card){\n  var v = $('video', card), btn = $('.sdp-snd', card);\n  v.muted = true; v.loop = true; v.playsInline = true;\n  function toggleSound(e){\n    if(e) e.stopPropagation();\n    var turnOn = v.muted;\n    vidCards.forEach(function(c){\n      var vv = $('video', c);\n      vv.muted = true; c.classList.remove('is-sound'); $('.sdp-snd', c).textContent = 'Tap for sound';\n    });\n    if(turnOn){ v.muted = false; card.classList.add('is-sound'); btn.textContent = 'Sound on'; var p = v.play(); if(p \u0026\u0026 p.catch) p.catch(function(){}); }\n  }\n  card.addEventListener('click', toggleSound);\n  btn.addEventListener('click', toggleSound);\n});\nif('IntersectionObserver' in window){\n  var vio = new IntersectionObserver(function(entries){\n    entries.forEach(function(en){\n      var v = en.target;\n      if(en.isIntersecting \u0026\u0026 !v.src \u0026\u0026 v.dataset.src){ v.src = v.dataset.src; }\n      if(en.isIntersecting \u0026\u0026 en.intersectionRatio \u003e= 0.6){ var p = v.play(); if(p \u0026\u0026 p.catch) p.catch(function(){}); }\n      else if(!en.isIntersecting || en.intersectionRatio \u003c 0.3){ v.pause(); }\n    });\n  }, { threshold:[0, .3, .6], rootMargin:'0px 120px 0px 120px' });\n  vidCards.forEach(function(c){ vio.observe($('video', c)); });\n} else {\n  vidCards.forEach(function(c){ var v = $('video', c); v.src = v.dataset.src; });\n}\n\n\/* ===== REEL NAVIGATION: arrows, dots, edge fade, swipe hint, one-time nudge ===== *\/\nvar reel = $('#sdpReel'), reelWrap = $('#sdpReelWrap'), dotsBox = $('#sdpReelDots');\nvar rPrev = $('#sdpReelPrev'), rNext = $('#sdpReelNext');\nvar nudging = false, hintGone = false, rTick = false;\nvidCards.forEach(function(c, i){\n  var d = document.createElement('button');\n  d.type = 'button'; d.className = 'sdp-dot'; d.setAttribute('aria-label', 'Go to video ' + (i + 1));\n  d.addEventListener('click', function(){ reel.scrollTo({ left: c.offsetLeft - vidCards[0].offsetLeft, behavior: reduce ? 'auto' : 'smooth' }); });\n  dotsBox.appendChild(d);\n});\nvar dotEls = $$('.sdp-dot', dotsBox);\nfunction stepSize(){ return vidCards.length \u003e 1 ? vidCards[1].offsetLeft - vidCards[0].offsetLeft : reel.clientWidth; }\nfunction reelUpdate(){\n  rTick = false;\n  var max = reel.scrollWidth - reel.clientWidth, sl = reel.scrollLeft;\n  var atStart = sl \u003c= 2, atEnd = sl \u003e= max - 2;\n  rPrev.disabled = atStart; rNext.disabled = atEnd;\n  reelWrap.classList.toggle('at-end', atEnd);\n  var active = atEnd ? vidCards.length - 1 : Math.round(sl \/ stepSize());\n  dotEls.forEach(function(d, i){ d.classList.toggle('on', i === active); });\n  if(!nudging \u0026\u0026 !hintGone \u0026\u0026 sl \u003e 24){ hintGone = true; reelWrap.classList.add('hint-off'); }\n}\nreel.addEventListener('scroll', function(){ if(!rTick){ rTick = true; requestAnimationFrame(reelUpdate); } }, { passive:true });\nwindow.addEventListener('resize', reelUpdate);\nrPrev.addEventListener('click', function(){ reel.scrollBy({ left: -stepSize() * 2, behavior: reduce ? 'auto' : 'smooth' }); });\nrNext.addEventListener('click', function(){ reel.scrollBy({ left: stepSize() * 2, behavior: reduce ? 'auto' : 'smooth' }); });\nreelUpdate();\n\n\/* gentle nudge the first time the reel is on screen, so people see it moves *\/\nfunction nudge(){\n  if(reduce || reel.scrollLeft \u003e 4) return;\n  nudging = true;\n  var snap = reel.style.scrollSnapType;\n  reel.style.scrollSnapType = 'none';\n  var t0 = null, dur = 1100, dist = 64, cancel = false;\n  function stop(){ cancel = true; }\n  reel.addEventListener('touchstart', stop, { once:true, passive:true });\n  reel.addEventListener('wheel', stop, { once:true, passive:true });\n  function step(ts){\n    if(t0 === null) t0 = ts;\n    var p = Math.min(1, (ts - t0) \/ dur);\n    if(cancel){ reel.style.scrollSnapType = snap; nudging = false; return; }\n    reel.scrollLeft = dist * Math.sin(Math.PI * p);\n    if(p \u003c 1){ requestAnimationFrame(step); }\n    else { reel.scrollLeft = 0; reel.style.scrollSnapType = snap; nudging = false; }\n  }\n  requestAnimationFrame(step);\n}\nif('IntersectionObserver' in window){\n  var nio = new IntersectionObserver(function(en){\n    if(en[0].isIntersecting){ setTimeout(nudge, 500); nio.disconnect(); }\n  }, { threshold:.7 });\n  nio.observe(reel);\n}\n\n\/* ===== REVIEW STATS (calculated from the reviews shown) ===== *\/\nvar cards = $$('.sdp-card');\nvar sum = 0, set = {};\ncards.forEach(function(c){ sum += parseFloat(c.dataset.rating) || 0; set[c.dataset.country] = 1; });\nvar statVals = { avg: cards.length ? sum \/ cards.length : 0, count: cards.length, countries: Object.keys(set).length };\nvar statEls = $$('#sdpStats b');\nfunction setStat(el, val){ el.textContent = Number(val).toFixed(parseInt(el.dataset.dec, 10) || 0); }\nstatEls.forEach(function(el){ setStat(el, statVals[el.dataset.k]); });\nfunction countUp(){\n  var start = null, dur = 1000;\n  statEls.forEach(function(el){ setStat(el, 0); });\n  function step(ts){\n    if(start === null) start = ts;\n    var p = Math.min(1, (ts - start) \/ dur), e = 1 - Math.pow(1 - p, 3);\n    statEls.forEach(function(el){ setStat(el, statVals[el.dataset.k] * e); });\n    if(p \u003c 1) requestAnimationFrame(step);\n  }\n  requestAnimationFrame(step);\n}\nif(!reduce \u0026\u0026 'IntersectionObserver' in window){\n  var sio = new IntersectionObserver(function(en){ if(en[0].isIntersecting){ countUp(); sio.disconnect(); } }, { threshold:.5 });\n  sio.observe($('#sdpStats'));\n}\n\n\/* ===== REVIEW CAROUSEL WITH SPOTLIGHT ===== *\/\nvar track = $('#sdpTrack'), countEl = $('#sdpCount'), cur = 0, ticking = false;\nfunction focusUpdate(){\n  ticking = false;\n  var tr = track.getBoundingClientRect(), mid = tr.left + tr.width \/ 2, best = 0, bd = 1e9;\n  cards.forEach(function(el, i){\n    var r = el.getBoundingClientRect(), d = Math.abs(r.left + r.width \/ 2 - mid);\n    if(d \u003c bd){ bd = d; best = i; }\n  });\n  cur = best;\n  cards.forEach(function(el, i){ el.classList.toggle('is-focus', i === best); });\n  countEl.textContent = (best + 1) + ' \/ ' + cards.length;\n}\nfunction goReview(i){\n  if(i \u003c 0) i = cards.length - 1;\n  if(i \u003e= cards.length) i = 0;\n  var c = cards[i];\n  track.scrollTo({ left: c.offsetLeft - (track.clientWidth - c.offsetWidth) \/ 2, behavior: reduce ? 'auto' : 'smooth' });\n}\ntrack.addEventListener('scroll', function(){ if(!ticking){ ticking = true; requestAnimationFrame(focusUpdate); } }, { passive:true });\n$('#sdpPrev').addEventListener('click', function(){ goReview(cur - 1); });\n$('#sdpNext').addEventListener('click', function(){ goReview(cur + 1); });\nwindow.addEventListener('resize', focusUpdate);\nfocusUpdate();\n\n\/* translate toggle *\/\ncards.forEach(function(card){\n  var b = $('.sdp-tr', card), q = $('.sdp-quote', card), tag = $('.sdp-trtag', card);\n  if(!b || !q) return;\n  var showingOrig = false;\n  b.addEventListener('click', function(){\n    showingOrig = !showingOrig;\n    q.innerHTML = showingOrig ? q.dataset.orig : q.dataset.en;\n    b.textContent = showingOrig ? 'See translation' : 'See original';\n    if(tag) tag.textContent = showingOrig ? 'Original' : 'Translated';\n  });\n});\n\n\/* ===== PHOTO VIEWER (swipe through buyer photos) ===== *\/\nvar lb = $('#sdpLb', document), lbImg = document.getElementById('sdpLbImg'), lbC = document.getElementById('sdpLbC');\nvar lbEl = document.getElementById('sdpLb');\nif(lbEl \u0026\u0026 lbEl.parentNode !== document.body) document.body.appendChild(lbEl);\nvar photos = $$('#sdpWall img').map(function(i){ return i.getAttribute('src'); });\nvar pi = 0;\nfunction showPhoto(i){\n  if(!photos.length) return;\n  if(i \u003c 0) i = photos.length - 1;\n  if(i \u003e= photos.length) i = 0;\n  pi = i; lbImg.src = photos[i]; lbC.textContent = (i + 1) + ' \/ ' + photos.length;\n}\nfunction openLb(i){ showPhoto(i); lbEl.hidden = false; document.documentElement.style.overflow = 'hidden'; document.getElementById('sdpLbX').focus(); }\nfunction closeLb(){ lbEl.hidden = true; lbImg.src = ''; document.documentElement.style.overflow = ''; }\n$$('[data-photo]').forEach(function(b){ b.addEventListener('click', function(){ openLb(parseInt(b.dataset.photo, 10) || 0); }); });\ndocument.getElementById('sdpLbX').addEventListener('click', closeLb);\ndocument.getElementById('sdpLbP').addEventListener('click', function(){ showPhoto(pi - 1); });\ndocument.getElementById('sdpLbN').addEventListener('click', function(){ showPhoto(pi + 1); });\nlbEl.addEventListener('click', function(e){ if(e.target === lbEl) closeLb(); });\ndocument.addEventListener('keydown', function(e){\n  if(lbEl.hidden) return;\n  if(e.key === 'Escape') closeLb();\n  if(e.key === 'ArrowLeft') showPhoto(pi - 1);\n  if(e.key === 'ArrowRight') showPhoto(pi + 1);\n});\nvar tx0 = 0, ty0 = 0;\nlbEl.addEventListener('touchstart', function(e){ tx0 = e.touches[0].clientX; ty0 = e.touches[0].clientY; }, { passive:true });\nlbEl.addEventListener('touchend', function(e){\n  var dx = e.changedTouches[0].clientX - tx0, dy = e.changedTouches[0].clientY - ty0;\n  if(Math.abs(dx) \u003e 50 \u0026\u0026 Math.abs(dx) \u003e Math.abs(dy) * 1.2) showPhoto(dx \u003c 0 ? pi + 1 : pi - 1);\n}, { passive:true });\n\n\/* ===== FIND MY SIZE ===== *\/\nvar unit = 'cm';\nvar RANGES = { S:[76,84], M:[80,88], L:[84,92] };      \/* bust, cm *\/\nvar LEN = { S:127, M:128, L:129 };                       \/* dress length, cm *\/\nvar bustIn = $('#sdpBust'), heightIn = $('#sdpHeight');\nvar resBox = $('#sdpResult'), badge = $('#sdpBadge'), rTitle = $('#sdpRTitle'), rText = $('#sdpRText');\nvar rows = $$('#sdpTable tbody tr');\n\nfunction toCm(v){ return unit === 'in' ? v * 2.54 : v; }\nfunction fmtU(cm){ return unit === 'in' ? (cm \/ 2.54).toFixed(1) + ' in' : Math.round(cm) + ' cm'; }\nfunction setTable(){\n  $$('#sdpTable td[data-cm]').forEach(function(td){ td.textContent = td.dataset[unit]; });\n  $$('.sdp-ul').forEach(function(s){ s.textContent = unit === 'in' ? 'in' : 'cm'; });\n}\nfunction clearRec(){ rows.forEach(function(r){ r.classList.remove('is-rec'); }); }\nfunction neutral(title, text){\n  resBox.classList.remove('has'); badge.textContent = '?';\n  rTitle.textContent = title; rText.textContent = text;\n  var oldLen = $('#sdpRLen'); if(oldLen) oldLen.remove();\n  clearRec();\n}\nfunction compute(){\n  var bv = parseFloat(bustIn.value), hv = parseFloat(heightIn.value);\n  if(!bv || bv \u003c= 0){ neutral('Enter your bust to see your size', \"We'll match it to the size chart below.\"); return; }\n  var b = toCm(bv);\n  if(b \u003c 60 || b \u003e 140){ neutral('Check your bust measurement', 'That number looks unusual. Measure around the fullest part of your bust.'); return; }\n\n  var fits = Object.keys(RANGES).filter(function(k){ return b \u003e= RANGES[k][0] \u0026\u0026 b \u003c= RANGES[k][1]; });\n  if(!fits.length \u0026\u0026 b \u003e 92){\n    neutral('Your bust is above our largest size', 'Size L goes up to ' + fmtU(92) + '. Message us before ordering and we will advise you.');\n    return;\n  }\n  var size, line;\n  if(!fits.length){\n    size = 'S';\n    line = 'Your bust is below the size S range (' + fmtU(76) + ' to ' + fmtU(84) + '), so S is your closest size. It may fit a little loose.';\n  } else {\n    size = fits[fits.length - 1];\n    if(fits.length \u003e 1){ line = \"You're between \" + fits.join(' and ') + ', so we recommend the larger size: ' + size + '.'; }\n    else { line = 'Your bust fits the size ' + size + ' range (' + fmtU(RANGES[size][0]) + ' to ' + fmtU(RANGES[size][1]) + ').'; }\n  }\n  resBox.classList.add('has');\n  badge.textContent = size;\n  rTitle.textContent = 'We recommend size ' + size;\n  rText.textContent = line;\n\n  \/* optional length estimate: shoulder to ankle is about 80% of height *\/\n  var old = $('#sdpRLen'); if(old) old.remove();\n  if(hv \u0026\u0026 hv \u003e 0){\n    var h = toCm(hv);\n    if(h \u003e= 120 \u0026\u0026 h \u003c= 220){\n      var len = LEN[size], ankle = h * 0.80, diff = len - ankle, msg;\n      if(diff \u003e 4){ msg = 'Length estimate: at your height the hem may touch the floor. Heels or a small hem will help.'; }\n      else if(diff \u003e= -6){ msg = 'Length estimate: the dress should land around your ankles.'; }\n      else { msg = 'Length estimate: the hem should land about ' + fmtU(Math.abs(diff)) + ' above your ankles, a mid-calf to ankle length.'; }\n      var p = document.createElement('p'); p.id = 'sdpRLen'; p.textContent = msg; rText.parentNode.appendChild(p);\n    }\n  }\n  rows.forEach(function(r){ r.classList.toggle('is-rec', r.dataset.size === size); });\n}\n$$('#sdpUnit button').forEach(function(btn){\n  btn.addEventListener('click', function(){\n    var nu = btn.dataset.u; if(nu === unit) return;\n    [bustIn, heightIn].forEach(function(inp){\n      var v = parseFloat(inp.value);\n      if(v){ inp.value = nu === 'in' ? (v \/ 2.54).toFixed(1) : Math.round(v * 2.54); }\n      inp.placeholder = (inp === bustIn) ? (nu === 'in' ? 'e.g. 34' : 'e.g. 86') : (nu === 'in' ? 'e.g. 65' : 'e.g. 165');\n    });\n    unit = nu;\n    $$('#sdpUnit button').forEach(function(b){ b.classList.toggle('on', b === btn); });\n    setTable(); compute();\n  });\n});\nbustIn.addEventListener('input', compute);\nheightIn.addEventListener('input', compute);\nsetTable(); compute();\n})();\n\u003c\/script\u003e","brand":"Sara Boutique","offers":[{"title":"Apricot \/ L","offer_id":47270685606060,"sku":"CJLY205437103CX","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ M","offer_id":47270685638828,"sku":"CJLY205437102BY","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ S","offer_id":47270685671596,"sku":"CJLY205437101AZ","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ XL","offer_id":47270685704364,"sku":"CJLY205437122VE","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Apricot \/ XS","offer_id":47270685737132,"sku":"CJLY205437123WD","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ L","offer_id":47270685769900,"sku":"CJLY205437109IR","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ M","offer_id":47270685802668,"sku":"CJLY205437108HS","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Black \/ S","offer_id":47270685835436,"sku":"CJLY205437107GT","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ L","offer_id":47270685868204,"sku":"CJLY205437110JQ","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ M","offer_id":47270685900972,"sku":"CJLY205437111KP","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Blue \/ S","offer_id":47270685933740,"sku":"CJLY205437112LO","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Green \/ L","offer_id":47270685966508,"sku":"CJLY205437119SH","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Green \/ M","offer_id":47270685999276,"sku":"CJLY205437120TG","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Green \/ S","offer_id":47270686032044,"sku":"CJLY205437121UF","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ L","offer_id":47270686064812,"sku":"CJLY205437113MN","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ M","offer_id":47270686097580,"sku":"CJLY205437114NM","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Red \/ S","offer_id":47270686130348,"sku":"CJLY205437115OL","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Skirt white \/ L","offer_id":47270686163116,"sku":"CJLY205437116PK","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Skirt white \/ M","offer_id":47270686195884,"sku":"CJLY205437117QJ","price":64.99,"currency_code":"USD","in_stock":true},{"title":"Skirt white \/ S","offer_id":47270686228652,"sku":"CJLY205437118RI","price":64.99,"currency_code":"USD","in_stock":true},{"title":"White \/ L","offer_id":47270686261420,"sku":"CJLY205437106FU","price":64.99,"currency_code":"USD","in_stock":true},{"title":"White \/ M","offer_id":47270686294188,"sku":"CJLY205437105EV","price":64.99,"currency_code":"USD","in_stock":true},{"title":"White \/ S","offer_id":47270686326956,"sku":"CJLY205437104DW","price":64.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0777\/2507\/3580\/files\/742da135-9b0b-4646-827a-cc10692c3184.jpg?v=1790194683","url":"https:\/\/saraboutiquefashion.com\/products\/new-one-shoulder-knitted-long-sleeved-dress-sexy-beach-holiday-long-dresses-womens-clothing","provider":"Sara Boutique","version":"1.0","type":"link"}