{"product_id":"linen-grace-mini-dress-in-orange","title":"Linen GRACE Mini Dress In Orange","description":"\u003cbody\u003e\n\n\n  \u003cmeta charset=\"UTF-8\"\u003e\n  \u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n  \u003ctitle\u003eThe Linen Grace Mini Dress\u003c\/title\u003e\n  \u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400\u0026amp;family=Libre+Franklin:wght@300;400;500\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n  \u003cstyle\u003e\n    :root {\n      --cream: #FAF7F2;\n      --warm-black: #1A1714;\n      --muted-gold: #7A6C52;\n      --text-secondary: #4A443D;\n      --border: #E8E2D9;\n      --highlight: #F0EBE3;\n    }\n\n    * {\n      margin: 0;\n      padding: 0;\n      box-sizing: border-box;\n    }\n\n    body {\n      background: var(--cream);\n      color: var(--warm-black);\n      font-family: 'Libre Franklin', sans-serif;\n      font-weight: 300;\n      min-height: 100vh;\n      display: flex;\n      justify-content: center;\n      padding: 40px 20px;\n      -webkit-font-smoothing: antialiased;\n    }\n\n    .container {\n      max-width: 820px;\n      width: 100%;\n      animation: fadeIn .6s ease-out;\n    }\n\n    @keyframes fadeIn {\n      from { opacity: 0; transform: translateY(12px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    .description {\n      max-width: 620px;\n      margin: 0 auto 40px;\n      text-align: center;\n    }\n\n    .description .lead {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 400;\n      font-style: italic;\n      font-size: 1.15rem;\n      line-height: 1.7;\n      margin-bottom: 12px;\n    }\n\n    .tabs-container {\n      margin-top: 10px;\n    }\n\n    .tab-nav {\n      display: flex;\n      border-bottom: 2px solid var(--border);\n      gap: 0;\n    }\n\n    .tab-btn {\n      font-family: 'Libre Franklin', sans-serif;\n      font-size: .68rem;\n      font-weight: 400;\n      letter-spacing: .18em;\n      text-transform: uppercase;\n      color: var(--text-secondary);\n      background: transparent;\n      border: none;\n      padding: 14px 24px;\n      cursor: pointer;\n      position: relative;\n      transition: color .3s ease;\n      white-space: nowrap;\n    }\n\n    .tab-btn:hover {\n      color: var(--warm-black);\n    }\n\n    .tab-btn.active {\n      color: var(--warm-black);\n      font-weight: 500;\n    }\n\n    .tab-btn.active::after {\n      content: '';\n      position: absolute;\n      bottom: -2px;\n      left: 0;\n      right: 0;\n      height: 2px;\n      background: var(--warm-black);\n    }\n\n    .tab-panel {\n      display: none;\n      padding: 32px 0;\n      animation: tabFade .3s ease-out;\n    }\n\n    .tab-panel.active {\n      display: block;\n    }\n\n    @keyframes tabFade {\n      from { opacity: 0; transform: translateY(6px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n\n    .love-list {\n      list-style: none;\n      padding: 0;\n    }\n\n    .love-list li {\n      display: flex;\n      align-items: center;\n      gap: 14px;\n      padding: 10px 0;\n      border-bottom: 1px solid var(--border);\n      font-size: .78rem;\n      color: var(--text-secondary);\n      letter-spacing: .02em;\n    }\n\n    .love-list li:last-child {\n      border-bottom: none;\n    }\n\n    .love-dot {\n      width: 5px;\n      height: 5px;\n      border-radius: 50%;\n      background: var(--muted-gold);\n      flex-shrink: 0;\n    }\n\n    .details-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n      gap: 20px;\n      margin-top: 8px;\n    }\n\n    .detail-card {\n      text-align: center;\n      padding: 16px;\n      background: #fff;\n      border: 1px solid var(--border);\n      border-radius: 2px;\n    }\n\n    .detail-card .detail-label {\n      font-size: .58rem;\n      letter-spacing: .2em;\n      text-transform: uppercase;\n      color: var(--text-secondary);\n      margin-bottom: 6px;\n    }\n\n    .detail-card .detail-value {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 500;\n      font-size: .95rem;\n    }\n\n    .stretch-dots {\n      display: flex;\n      gap: 5px;\n      justify-content: center;\n      margin-top: 3px;\n    }\n\n    .stretch-dot {\n      width: 8px;\n      height: 8px;\n      border-radius: 50%;\n      border: 1px solid var(--muted-gold);\n      background: transparent;\n    }\n\n    .size-finder {\n      background: #fff;\n      border: 1px solid var(--border);\n      border-radius: 2px;\n      padding: 24px;\n      margin-bottom: 24px;\n    }\n\n    .size-finder-title {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 500;\n      font-size: 1.05rem;\n      margin-bottom: 6px;\n      text-align: center;\n    }\n\n    .size-finder-subtitle {\n      font-size: .62rem;\n      color: var(--text-secondary);\n      text-align: center;\n      margin-bottom: 16px;\n    }\n\n    .size-finder-grid {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));\n      gap: 8px;\n    }\n\n    .size-finder-card {\n      text-align: center;\n      padding: 14px 8px;\n      border: 1px solid var(--border);\n      border-radius: 2px;\n      transition: all .2s ease;\n      cursor: default;\n    }\n\n    .size-finder-card:hover {\n      border-color: var(--muted-gold);\n      background: var(--highlight);\n    }\n\n    .size-finder-card .size-label {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 600;\n      font-size: 1.1rem;\n      margin-bottom: 2px;\n    }\n\n    .size-finder-card .us-size {\n      font-size: .58rem;\n      letter-spacing: .15em;\n      text-transform: uppercase;\n      color: var(--muted-gold);\n      margin-bottom: 6px;\n    }\n\n    .size-finder-card .bust-range {\n      font-size: .6rem;\n      color: var(--text-secondary);\n      line-height: 1.4;\n    }\n\n    .unit-toggle {\n      display: flex;\n      justify-content: center;\n      gap: 0;\n      margin-bottom: 24px;\n    }\n\n    .unit-btn {\n      font-size: .65rem;\n      letter-spacing: .2em;\n      text-transform: uppercase;\n      padding: 10px 28px;\n      border: 1px solid var(--border);\n      background: transparent;\n      color: var(--text-secondary);\n      cursor: pointer;\n      transition: all .3s ease;\n      font-family: 'Libre Franklin', sans-serif;\n    }\n\n    .unit-btn:first-child {\n      border-radius: 2px 0 0 2px;\n    }\n\n    .unit-btn:last-child {\n      border-radius: 0 2px 2px 0;\n      border-left: none;\n    }\n\n    .unit-btn.active {\n      background: var(--warm-black);\n      color: var(--cream);\n      border-color: var(--warm-black);\n    }\n\n    .garment-label {\n      text-align: center;\n      margin-bottom: 16px;\n    }\n\n    .garment-label span {\n      font-size: .6rem;\n      letter-spacing: .2em;\n      text-transform: uppercase;\n      color: var(--text-secondary);\n      background: var(--highlight);\n      padding: 6px 16px;\n      border-radius: 2px;\n    }\n\n    .table-wrapper {\n      overflow-x: auto;\n    }\n\n    table {\n      width: 100%;\n      border-collapse: collapse;\n      font-size: .85rem;\n    }\n\n    thead th {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 500;\n      font-size: 1rem;\n      padding: 14px 12px;\n      text-align: center;\n      border-bottom: 2px solid var(--warm-black);\n    }\n\n    thead th:first-child {\n      text-align: left;\n      font-family: 'Libre Franklin', sans-serif;\n      font-weight: 400;\n      font-size: .65rem;\n      letter-spacing: .18em;\n      text-transform: uppercase;\n      color: var(--text-secondary);\n      vertical-align: bottom;\n    }\n\n    tbody td {\n      padding: 12px;\n      text-align: center;\n      border-bottom: 1px solid var(--border);\n      font-variant-numeric: tabular-nums;\n      font-weight: 300;\n    }\n\n    tbody td:first-child {\n      text-align: left;\n      font-size: .75rem;\n      color: var(--text-secondary);\n      white-space: nowrap;\n    }\n\n    tbody tr:hover {\n      background: var(--highlight);\n    }\n\n    .between-sizes {\n      margin-top: 20px;\n      padding: 16px 20px;\n      background: var(--highlight);\n      border-left: 3px solid var(--muted-gold);\n      border-radius: 0 2px 2px 0;\n    }\n\n    .between-sizes-title {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 500;\n      font-size: .9rem;\n      margin-bottom: 6px;\n    }\n\n    .between-sizes p {\n      font-size: .7rem;\n      line-height: 1.7;\n      color: var(--text-secondary);\n    }\n\n    .fit-notes p {\n      font-size: .72rem;\n      line-height: 1.8;\n      color: var(--text-secondary);\n      max-width: 600px;\n    }\n\n    .fit-notes p + p {\n      margin-top: 8px;\n    }\n\n    .model-note {\n      margin-top: 14px;\n      font-style: italic;\n      font-size: .68rem !important;\n      color: var(--muted-gold) !important;\n    }\n\n    .measure-guide {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n      gap: 16px;\n      margin-top: 20px;\n    }\n\n    .measure-item {\n      padding: 18px;\n      background: #fff;\n      border: 1px solid var(--border);\n      border-radius: 2px;\n    }\n\n    .measure-item h4 {\n      font-family: 'Cormorant Garamond', serif;\n      font-weight: 500;\n      font-size: .95rem;\n      margin-bottom: 6px;\n    }\n\n    .measure-item p {\n      font-size: .68rem;\n      line-height: 1.7;\n      color: var(--text-secondary);\n    }\n\n    @media (max-width: 640px) {\n      .description .lead {\n        font-size: 1rem;\n      }\n\n      .tab-btn {\n        padding: 12px 14px;\n        font-size: .6rem;\n        letter-spacing: .12em;\n      }\n\n      table {\n        font-size: .78rem;\n      }\n\n      thead th {\n        font-size: .88rem;\n        padding: 10px 8px;\n      }\n\n      tbody td {\n        padding: 10px 8px;\n      }\n\n      .size-finder-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n  \u003c\/style\u003e\n\n\n  \u003cdiv class=\"container\"\u003e\n    \u003cdiv class=\"description\"\u003e\n      \u003cp class=\"lead\"\u003eA chic and versatile piece crafted from a luxurious linen-cotton blend. Featuring a corset-style waist for structure and elegance, adjustable straps that can be worn straight or crisscrossed, two side pockets, and a back zipper with elastic — the Grace combines effortless functionality with warm-weather sophistication.\u003c\/p\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"tabs-container\"\u003e\n      \u003cnav class=\"tab-nav\"\u003e\n        \u003cbutton class=\"tab-btn active\" onclick=\"switchTab('details')\"\u003eDetails\u003c\/button\u003e\n        \u003cbutton class=\"tab-btn\" onclick=\"switchTab('sizing')\"\u003eSize Guide\u003c\/button\u003e\n        \u003cbutton class=\"tab-btn\" onclick=\"switchTab('care')\"\u003eFabric \u0026amp; Care\u003c\/button\u003e\n      \u003c\/nav\u003e\n\n      \u003c!-- DETAILS TAB --\u003e\n      \u003cdiv class=\"tab-panel active\" id=\"tab-details\"\u003e\n        \u003cul class=\"love-list\"\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003eLinen mini dress\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003eFully lined\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003e2 side pockets\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003eAdjustable straps — wear straight or criss-cross\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003eBack zipper with elastic\u003c\/li\u003e\n          \u003cli\u003e\n\u003cspan class=\"love-dot\"\u003e\u003c\/span\u003eCorset waist detail\u003c\/li\u003e\n        \u003c\/ul\u003e\n        \u003cdiv style=\"margin-top:16px;padding:14px 18px;background:var(--highlight);border-radius:2px\"\u003e\n          \u003cp style=\"font-size:.72rem;color:var(--text-secondary);line-height:1.6\"\u003e\n            \u003cspan style=\"font-family:Cormorant Garamond,serif;font-weight:500;font-size:.85rem;color:var(--warm-black)\"\u003eSizing Tip:\u003c\/span\u003e Size down if in-between sizes. Your waist measurement is the most important for choosing your size.\n          \u003c\/p\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- SIZE GUIDE TAB --\u003e\n      \u003cdiv class=\"tab-panel\" id=\"tab-sizing\"\u003e\n        \u003cdiv class=\"size-finder\"\u003e\n          \u003cdiv class=\"size-finder-title\"\u003eFind Your Size\u003c\/div\u003e\n          \u003cdiv class=\"size-finder-subtitle\"\u003eBased on your body measurements\u003c\/div\u003e\n          \u003cdiv class=\"size-finder-grid\" id=\"sizeFinderGrid\"\u003e\u003c\/div\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"unit-toggle\"\u003e\n          \u003cbutton class=\"unit-btn active\" onclick=\"setUnit('in')\"\u003eInches\u003c\/button\u003e\n          \u003cbutton class=\"unit-btn\" onclick=\"setUnit('cm')\"\u003eCentimetres\u003c\/button\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"garment-label\"\u003e\n          \u003cspan\u003eGarment Measurements — Laid Flat\u003c\/span\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"table-wrapper\"\u003e\n          \u003ctable\u003e\n            \u003cthead\u003e\n              \u003ctr\u003e\n                \u003cth\u003eMeasurement\u003c\/th\u003e\n                \u003cth\u003eXS\/S\u003c\/th\u003e\n                \u003cth\u003eM\/L\u003c\/th\u003e\n                \u003cth\u003eXL\/XXL\u003c\/th\u003e\n                \u003cth\u003eXXXL\/XXXXL\u003c\/th\u003e\n              \u003c\/tr\u003e\n            \u003c\/thead\u003e\n            \u003ctbody id=\"tableBody\"\u003e\u003c\/tbody\u003e\n          \u003c\/table\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"between-sizes\"\u003e\n          \u003cdiv class=\"between-sizes-title\"\u003eBetween Sizes?\u003c\/div\u003e\n          \u003cp\u003eSize down if you're between sizes. Your waist measurement is the most important — the back elastic and adjustable straps give you flexibility in the fit.\u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fit-notes\" style=\"margin-top:24px\"\u003e\n          \u003cp\u003eThe Grace Mini Dress is a structured, lined style with a corset waist. The adjustable straps and back elastic provide additional flexibility. Choose based on your waist measurement.\u003c\/p\u003e\n          \u003cp class=\"model-note\"\u003eEmmanuella is 5′8″ and wears size XS\/S.\u003c\/p\u003e\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"measure-guide\"\u003e\n          \u003cdiv class=\"measure-item\"\u003e\n            \u003ch4\u003eWaist\u003c\/h4\u003e\n            \u003cp\u003eMeasure around your natural waistline — the narrowest part of your torso, typically just above the navel.\u003c\/p\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n\n      \u003c!-- FABRIC \u0026 CARE TAB --\u003e\n      \u003cdiv class=\"tab-panel\" id=\"tab-care\"\u003e\n        \u003cdiv class=\"details-grid\"\u003e\n          \u003cdiv class=\"detail-card\"\u003e\n            \u003cdiv class=\"detail-label\"\u003eFabric\u003c\/div\u003e\n            \u003cdiv class=\"detail-value\"\u003e80% Linen · 20% Cotton\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"detail-card\"\u003e\n            \u003cdiv class=\"detail-label\"\u003eWeight\u003c\/div\u003e\n            \u003cdiv class=\"detail-value\"\u003eMidweight · Breathable\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"detail-card\"\u003e\n            \u003cdiv class=\"detail-label\"\u003eCare\u003c\/div\u003e\n            \u003cdiv class=\"detail-value\"\u003eDry Clean Only\u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"detail-card\"\u003e\n            \u003cdiv class=\"detail-label\"\u003eStretch\u003c\/div\u003e\n            \u003cdiv class=\"stretch-dots\"\u003e\n              \u003cdiv class=\"stretch-dot\"\u003e\u003c\/div\u003e\n              \u003cdiv class=\"stretch-dot\"\u003e\u003c\/div\u003e\n              \u003cdiv class=\"stretch-dot\"\u003e\u003c\/div\u003e\n            \u003c\/div\u003e\n          \u003c\/div\u003e\n          \u003cdiv class=\"detail-card\"\u003e\n            \u003cdiv class=\"detail-label\"\u003eLining\u003c\/div\u003e\n            \u003cdiv class=\"detail-value\"\u003eFully Lined\u003c\/div\u003e\n          \u003c\/div\u003e\n        \u003c\/div\u003e\n      \u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    var usSizes = ['US 0\\u20136', 'US 6\\u201312', 'US 14\\u201320', 'US 22\\u201326'];\n\n    var sizeFinderData = {\n      in: [\n        { size: 'XS\/S', waist: 'Waist 23\\u201328\\u2033' },\n        { size: 'M\/L', waist: 'Waist 29\\u201334\\u2033' },\n        { size: 'XL\/XXL', waist: 'Waist 35\\u201340\\u2033' },\n        { size: 'XXXL\/XXXXL', waist: 'Waist 41\\u201346\\u2033' }\n      ],\n      cm: [\n        { size: 'XS\/S', waist: 'Waist 58.5\\u201371 cm' },\n        { size: 'M\/L', waist: 'Waist 73.5\\u201386.5 cm' },\n        { size: 'XL\/XXL', waist: 'Waist 89\\u2013101.5 cm' },\n        { size: 'XXXL\/XXXXL', waist: 'Waist 104\\u2013117 cm' }\n      ]\n    };\n\n    var tableData = {\n      in: [\n        { label: 'Waist', values: ['23\\u201328', '29\\u201334', '35\\u201340', '41\\u201346'] },\n        { label: 'Skirt Length (front)', values: ['19', '20', '21', '22'] },\n        { label: 'Skirt Length (back)', values: ['20', '21', '22', '23'] }\n      ],\n      cm: [\n        { label: 'Waist', values: ['58.5\\u201371', '73.5\\u201386.5', '89\\u2013101.5', '104\\u2013117'] },\n        { label: 'Skirt Length (front)', values: ['48.5', '51', '53.5', '56'] },\n        { label: 'Skirt Length (back)', values: ['51', '53.5', '56', '58.5'] }\n      ]\n    };\n\n    function switchTab(tab) {\n      document.querySelectorAll('.tab-btn').forEach(function(b) {\n        b.classList.remove('active');\n      });\n      document.querySelectorAll('.tab-panel').forEach(function(p) {\n        p.classList.remove('active');\n      });\n      event.target.classList.add('active');\n      document.getElementById('tab-' + tab).classList.add('active');\n    }\n\n    var currentUnit = 'in';\n\n    function setUnit(u) {\n      currentUnit = u;\n      document.querySelectorAll('.unit-btn').forEach(function(b) {\n        b.classList.toggle('active', b.textContent.toLowerCase().includes(u === 'in' ? 'inch' : 'cent'));\n      });\n      renderTable();\n      renderSizeFinder();\n    }\n\n    function renderSizeFinder() {\n      var g = document.getElementById('sizeFinderGrid');\n      g.innerHTML = '';\n      sizeFinderData[currentUnit].forEach(function(item, i) {\n        var c = document.createElement('div');\n        c.className = 'size-finder-card';\n        c.innerHTML = '\u003cdiv class=\"size-label\"\u003e' + item.size + '\u003c\/div\u003e' +\n          '\u003cdiv class=\"us-size\"\u003e' + usSizes[i] + '\u003c\/div\u003e' +\n          '\u003cdiv class=\"bust-range\"\u003e' + item.waist + '\u003c\/div\u003e';\n        g.appendChild(c);\n      });\n    }\n\n    function renderTable() {\n      var t = document.getElementById('tableBody');\n      t.innerHTML = '';\n      tableData[currentUnit].forEach(function(r) {\n        var tr = document.createElement('tr');\n        tr.innerHTML = '\u003ctd\u003e' + r.label + '\u003c\/td\u003e' +\n          r.values.map(function(v) {\n            return '\u003ctd\u003e' + v + '\u003c\/td\u003e';\n          }).join('');\n        t.appendChild(tr);\n      });\n    }\n\n    renderTable();\n    renderSizeFinder();\n  \u003c\/script\u003e\n\n\u003c\/body\u003e","brand":"omonigho","offers":[{"title":"XS\/S","offer_id":44572528246975,"sku":"0515426351679","price":235.0,"currency_code":"USD","in_stock":true},{"title":"M\/L","offer_id":44572528279743,"sku":"0515426351686","price":235.0,"currency_code":"USD","in_stock":true},{"title":"XL\/XXL","offer_id":44572528312511,"sku":"0515426351693","price":235.0,"currency_code":"USD","in_stock":true},{"title":"XXXL\/XXXXL","offer_id":44572528345279,"sku":"0515426351709","price":235.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1463\/5092\/files\/DSC00028_20f419b3-7da2-46b8-83b4-76430676df05.jpg?v=1759902355","url":"https:\/\/www.ofuure.com\/products\/linen-grace-mini-dress-in-orange","provider":"OFUURE","version":"1.0","type":"link"}