{"product_id":"florence-midi-dress","title":"Florence Midi Dress","description":"\u003cstyle\u003e\n  .vonea-details-table tr:last-child td {\n    border-bottom: none !important;\n  }\n\n  .vonea-fit,\n  .vonea-fit * {\n    box-sizing: border-box;\n  }\n\n  .vonea-fit [hidden] {\n    display: none !important;\n  }\n\n  .vonea-fit {\n    max-width: 650px;\n    margin: 30px auto 0;\n    text-align: center;\n    color: #2b2b2b;\n  }\n\n  .vonea-fit-kicker {\n    margin: 0 0 12px;\n    font-size: 12px;\n    letter-spacing: 2.2px;\n    text-transform: uppercase;\n    color: #0c3527;\n  }\n\n  .vonea-fit-copy {\n    max-width: 560px;\n    margin: 0 auto 18px;\n    color: #555;\n    font-size: 14px;\n    line-height: 1.65;\n  }\n\n  .vonea-fit-open {\n    appearance: none;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    gap: 10px;\n    min-height: 44px;\n    padding: 12px 24px;\n    border: 1px solid #0c3527;\n    border-radius: 6px;\n    background: #0c3527;\n    color: #fff;\n    font-family: inherit;\n    font-size: 12px;\n    font-weight: 500;\n    letter-spacing: 1.6px;\n    line-height: 1;\n    text-transform: uppercase;\n    cursor: pointer;\n    box-shadow: 0 10px 24px rgba(12,53,39,.14);\n    transition: background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;\n  }\n\n  .vonea-fit-open svg {\n    width: 16px;\n    height: 16px;\n    flex: 0 0 16px;\n  }\n\n  .vonea-fit-open:hover,\n  .vonea-fit-open:focus-visible {\n    background: #09291e;\n    border-color: #09291e;\n    box-shadow: 0 12px 28px rgba(12,53,39,.2);\n    transform: translateY(-1px);\n    outline: none;\n  }\n\n  .vonea-fit-overlay {\n    position: fixed;\n    inset: 0;\n    display: none;\n    place-items: center;\n    padding: 18px;\n    background: rgba(12,20,17,.46);\n    z-index: 9999;\n  }\n\n  .vonea-fit-overlay.is-open {\n    display: grid;\n  }\n\n  .vonea-fit-modal {\n    width: 100%;\n    max-width: 660px;\n    max-height: min(92vh, 760px);\n    overflow: auto;\n    background: #fff;\n    border: 1px solid #e8e2d6;\n    border-radius: 8px;\n    box-shadow: 0 18px 48px rgba(0,0,0,.18);\n    text-align: left;\n    color: #2b2b2b;\n  }\n\n  .vonea-fit-head {\n    display: flex;\n    align-items: flex-start;\n    justify-content: space-between;\n    gap: 14px;\n    padding: 20px 22px;\n    border-bottom: 1px solid #e8e2d6;\n    background: #faf9f6;\n  }\n\n  .vonea-fit-title {\n    margin: 0;\n    color: #1f1f1f;\n    font-size: 24px;\n    font-weight: 400;\n    line-height: 1.25;\n  }\n\n  .vonea-fit-subtitle {\n    margin: 8px 0 0;\n    color: #555;\n    font-size: 14px;\n    line-height: 1.6;\n  }\n\n  .vonea-fit-close {\n    appearance: none;\n    flex: 0 0 auto;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 36px;\n    height: 36px;\n    border: 1px solid #e8e2d6;\n    border-radius: 6px;\n    background: #fff;\n    color: #1f1f1f;\n    cursor: pointer;\n  }\n\n  .vonea-fit-close svg {\n    width: 16px;\n    height: 16px;\n  }\n\n  .vonea-fit-close:hover {\n    border-color: #c9d9d1;\n    color: #0c3527;\n  }\n\n  .vonea-fit-body {\n    padding: 22px;\n  }\n\n  .vonea-fit-grid {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 14px;\n  }\n\n  .vonea-fit-field label {\n    display: block;\n    margin: 0 0 6px;\n    color: #0c3527;\n    font-size: 12px;\n    letter-spacing: 1.2px;\n    text-transform: uppercase;\n  }\n\n  .vonea-fit-input,\n  .vonea-fit-select {\n    width: 100%;\n    height: 44px;\n    padding: 10px 12px;\n    border: 1px solid #e8e2d6;\n    border-radius: 6px;\n    background: #fff;\n    color: #2b2b2b;\n    font-family: inherit;\n    font-size: 15px;\n    outline: none;\n  }\n\n  .vonea-fit-input:focus,\n  .vonea-fit-select:focus {\n    border-color: #0c3527;\n    box-shadow: 0 0 0 3px rgba(12,53,39,.11);\n  }\n\n  .vonea-fit-panel {\n    margin-top: 16px;\n    padding: 14px;\n    border: 1px solid #e8e2d6;\n    border-radius: 8px;\n    background: #faf9f6;\n  }\n\n  .vonea-fit-panel-title {\n    display: block;\n    margin: 0 0 11px;\n    color: #1f1f1f;\n    font-size: 15px;\n    font-weight: 400;\n  }\n\n  .vonea-fit-options {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 8px;\n  }\n\n  .vonea-fit-options input {\n    position: absolute;\n    opacity: 0;\n    pointer-events: none;\n  }\n\n  .vonea-fit-options label {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 38px;\n    margin: 0;\n    border: 1px solid #e8e2d6;\n    border-radius: 6px;\n    background: #fff;\n    color: #555;\n    font-size: 13px;\n    cursor: pointer;\n    transition: background .2s ease, color .2s ease, border-color .2s ease;\n  }\n\n  .vonea-fit-options input:checked + label {\n    background: #0c3527;\n    border-color: #0c3527;\n    color: #fff;\n  }\n\n  .vonea-fit-details {\n    margin-top: 16px;\n    border: 1px solid #e8e2d6;\n    border-radius: 8px;\n    background: #fff;\n    overflow: hidden;\n  }\n\n  .vonea-fit-details summary {\n    padding: 13px 14px;\n    cursor: pointer;\n    color: #1f1f1f;\n    font-size: 15px;\n    font-weight: 400;\n  }\n\n  .vonea-fit-details-content {\n    padding: 0 14px 14px;\n  }\n\n  .vonea-fit-hint {\n    margin: 8px 0 0;\n    color: #555;\n    font-size: 12px;\n    line-height: 1.55;\n  }\n\n  .vonea-fit-actions {\n    display: flex;\n    align-items: center;\n    gap: 10px;\n    flex-wrap: wrap;\n    margin-top: 18px;\n  }\n\n  .vonea-fit-primary,\n  .vonea-fit-secondary {\n    appearance: none;\n    min-height: 42px;\n    padding: 11px 16px;\n    border-radius: 6px;\n    font-family: inherit;\n    font-size: 13px;\n    font-weight: 500;\n    letter-spacing: .6px;\n    cursor: pointer;\n    transition: background .2s ease, color .2s ease, border-color .2s ease;\n  }\n\n  .vonea-fit-primary {\n    border: 1px solid #0c3527;\n    background: #0c3527;\n    color: #fff;\n  }\n\n  .vonea-fit-primary:hover {\n    background: #09291e;\n    border-color: #09291e;\n  }\n\n  .vonea-fit-secondary {\n    border: 1px solid #e8e2d6;\n    background: #fff;\n    color: #1f1f1f;\n  }\n\n  .vonea-fit-secondary:hover {\n    border-color: #c9d9d1;\n    color: #0c3527;\n  }\n\n  .vonea-fit-grade {\n    display: inline-flex;\n    align-items: center;\n    min-height: 30px;\n    padding: 6px 9px;\n    border: 1px solid #e8e2d6;\n    border-radius: 6px;\n    background: #fff;\n    color: #555;\n    font-size: 12px;\n  }\n\n  .vonea-fit-error {\n    margin-top: 10px;\n    color: #9b1c1c;\n    font-size: 13px;\n  }\n\n  .vonea-fit-result {\n    margin-top: 16px;\n    padding: 14px;\n    border: 1px solid #c9d9d1;\n    border-radius: 8px;\n    background: #eef5f1;\n  }\n\n  .vonea-fit-result strong {\n    color: #1f1f1f;\n  }\n\n  .vonea-fit-size {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-width: 54px;\n    margin-left: 6px;\n    padding: 4px 10px;\n    border-radius: 6px;\n    background: #0c3527;\n    color: #fff;\n    font-weight: 600;\n  }\n\n  .vonea-fit-table-wrap {\n    margin-top: 16px;\n    overflow: auto;\n    border: 1px solid #e8e2d6;\n    border-radius: 8px;\n    background: #fff;\n  }\n\n  .vonea-fit-table {\n    width: 100%;\n    min-width: 560px;\n    border-collapse: collapse;\n  }\n\n  .vonea-fit-table th,\n  .vonea-fit-table td {\n    padding: 11px 12px;\n    border-bottom: 1px solid #e8e2d6;\n    border-right: 1px solid #e8e2d6;\n    text-align: center;\n    font-size: 13px;\n    white-space: nowrap;\n  }\n\n  .vonea-fit-table th {\n    background: #0c3527;\n    color: #fff;\n    font-weight: 500;\n    letter-spacing: .2px;\n  }\n\n  .vonea-fit-table td:first-child {\n    color: #0c3527;\n    font-weight: 600;\n  }\n\n  .vonea-fit-table th:last-child,\n  .vonea-fit-table td:last-child {\n    border-right: 0;\n  }\n\n  .vonea-fit-table tbody tr:last-child td {\n    border-bottom: 0;\n  }\n\n  @media (max-width: 640px) {\n    .vonea-description,\n    .vonea-description * {\n      box-sizing: border-box !important;\n    }\n\n    .vonea-description {\n      max-width: 100% !important;\n      overflow-x: hidden !important;\n    }\n\n    .vonea-intro {\n      padding: 26px 0 38px 0 !important;\n    }\n\n    .vonea-description h2 {\n      font-size: 28px !important;\n      line-height: 1.25 !important;\n    }\n\n    .vonea-description h3 {\n      line-height: 1.3 !important;\n    }\n\n    .vonea-features-grid {\n      grid-template-columns: repeat(2, minmax(0, 1fr)) !important;\n      gap: 28px 18px !important;\n    }\n\n    .vonea-feature {\n      min-width: 0 !important;\n    }\n\n    .vonea-feature-title {\n      font-size: 11px !important;\n      letter-spacing: 1.2px !important;\n      line-height: 1.35 !important;\n    }\n\n    .vonea-feature-text {\n      font-size: 13px !important;\n      line-height: 1.55 !important;\n    }\n\n    .vonea-details-table {\n      table-layout: fixed !important;\n    }\n\n    .vonea-details-label {\n      width: 38% !important;\n      padding-left: 6px !important;\n      padding-right: 6px !important;\n      letter-spacing: 0.8px !important;\n    }\n\n    .vonea-details-value {\n      padding-left: 6px !important;\n      padding-right: 6px !important;\n      overflow-wrap: anywhere !important;\n    }\n\n    .vonea-fit {\n      margin-top: 26px !important;\n    }\n\n    .vonea-fit-open {\n      width: 100% !important;\n      max-width: 320px !important;\n    }\n\n    .vonea-fit-overlay {\n      padding: 10px !important;\n    }\n\n    .vonea-fit-head,\n    .vonea-fit-body {\n      padding: 16px !important;\n    }\n\n    .vonea-fit-title {\n      font-size: 22px !important;\n    }\n\n    .vonea-fit-grid {\n      grid-template-columns: 1fr !important;\n    }\n\n    .vonea-fit-options {\n      grid-template-columns: 1fr !important;\n    }\n\n    .vonea-fit-primary,\n    .vonea-fit-secondary,\n    .vonea-fit-grade {\n      width: 100% !important;\n      justify-content: center !important;\n    }\n\n    .vonea-standard-grid {\n      grid-template-columns: repeat(4, minmax(0, 1fr)) !important;\n    }\n\n    .vonea-standard-item {\n      min-width: 0 !important;\n      padding: 14px 4px !important;\n      font-size: 9px !important;\n      letter-spacing: 0.55px !important;\n      line-height: 1.35 !important;\n      overflow-wrap: break-word !important;\n      word-break: normal !important;\n    }\n  }\n\n  @media (max-width: 380px) {\n    .vonea-features-grid {\n      gap: 24px 14px !important;\n    }\n\n    .vonea-feature-title {\n      font-size: 10px !important;\n      letter-spacing: 0.9px !important;\n    }\n\n    .vonea-feature-text {\n      font-size: 12.5px !important;\n    }\n\n    .vonea-standard-item {\n      padding: 12px 2px !important;\n      font-size: 8px !important;\n      letter-spacing: 0.2px !important;\n    }\n  }\n\u003c\/style\u003e\n\u003cdiv style=\"max-width: 820px; margin: 0 auto; font-family: inherit; line-height: 1.75; color: #2b2b2b;\" class=\"vonea-description\"\u003e\n\u003c!-- INTRODUCTION --\u003e\n\u003cdiv style=\"text-align: center; padding: 30px 0 45px 0;\" class=\"vonea-intro\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; color: #0c3527; margin-bottom: 18px;\"\u003eVonea Collection\u003c\/p\u003e\n\u003ch2 style=\"font-size: 30px; font-weight: 400; margin: 0 0 22px 0; color: #1f1f1f;\"\u003eEffortless Elegance\u003c\/h2\u003e\n\u003cp style=\"font-size: 16px; max-width: 640px; margin: 0 auto; color: #555;\"\u003eCreated for women who value sophistication, comfort and presence, the \u003cstrong\u003eFlorence Midi Dress\u003c\/strong\u003e combines elegant lines with a refined finish in a versatile design suited to a variety of occasions.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003chr style=\"border: none; border-top: 1px solid #e8e2d6; margin: 0 0 45px 0;\"\u003e\n\u003c!-- FEATURES --\u003e\n\u003cdiv style=\"padding-bottom: 20px;\"\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: 400; text-align: center; margin-bottom: 35px; color: #1f1f1f;\"\u003eRefined in Every Detail\u003c\/h3\u003e\n\u003cdiv style=\"display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 40px; text-align: center;\" class=\"vonea-features-grid\"\u003e\n\u003cdiv style=\"min-width: 0;\" class=\"vonea-feature\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: #0c3527; margin-bottom: 8px;\" class=\"vonea-feature-title\"\u003eElegant Silhouette\u003c\/p\u003e\n\u003cp style=\"margin: 0; color: #555;\" class=\"vonea-feature-text\"\u003eA fit designed to naturally flatter the feminine silhouette with balance and sophistication.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0;\" class=\"vonea-feature\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: #0c3527; margin-bottom: 8px;\" class=\"vonea-feature-title\"\u003ePremium Comfort\u003c\/p\u003e\n\u003cp style=\"margin: 0; color: #555;\" class=\"vonea-feature-text\"\u003eA lightweight, comfortable feel, designed to accompany you elegantly throughout the day.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0;\" class=\"vonea-feature\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: #0c3527; margin-bottom: 8px;\" class=\"vonea-feature-title\"\u003eTimeless Design\u003c\/p\u003e\n\u003cp style=\"margin: 0; color: #555;\" class=\"vonea-feature-text\"\u003eSophisticated lines that remain elegant season after season.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0;\" class=\"vonea-feature\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 1.8px; text-transform: uppercase; color: #0c3527; margin-bottom: 8px;\" class=\"vonea-feature-title\"\u003eRefined Versatility\u003c\/p\u003e\n\u003cp style=\"margin: 0; color: #555;\" class=\"vonea-feature-text\"\u003ePerfect for special occasions or for elevating everyday elegance.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003chr style=\"border: none; border-top: 1px solid #e8e2d6; margin: 45px 0;\"\u003e\n\u003c!-- DETAILS --\u003e\n\u003cdiv\u003e\n\u003ch3 style=\"font-size: 22px; font-weight: 400; text-align: center; margin-bottom: 30px; color: #1f1f1f;\"\u003eGarment Details\u003c\/h3\u003e\n\u003ctable style=\"width: 100%; border-collapse: collapse; font-size: 15px; color: #444;\" class=\"vonea-details-table\"\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 16px 10px; border-bottom: 1px solid #f0ece4; width: 40%; text-transform: uppercase; letter-spacing: 1.2px; font-size: 12px; color: #0c3527;\" class=\"vonea-details-label\"\u003eFabric\u003c\/td\u003e\n\u003ctd style=\"padding: 16px 10px; border-bottom: 1px solid #f0ece4;\" class=\"vonea-details-value\"\u003ePolyamide\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 16px 10px; border-bottom: 1px solid #f0ece4; text-transform: uppercase; letter-spacing: 1.2px; font-size: 12px; color: #0c3527;\" class=\"vonea-details-label\"\u003eSizes\u003c\/td\u003e\n\u003ctd style=\"padding: 16px 10px; border-bottom: 1px solid #f0ece4;\" class=\"vonea-details-value\"\u003eXS | S | M | L | XL | 2XL | 3XL\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cdiv class=\"vonea-fit\" data-brand-color=\"#0C3527\" aria-label=\"Vonea virtual size finder\"\u003e\n\u003cp class=\"vonea-fit-kicker\"\u003eVonea Size Finder\u003c\/p\u003e\n\u003cp class=\"vonea-fit-copy\"\u003eUnsure which size to choose? Use our quick fit guide for a refined recommendation based on your measurements.\u003c\/p\u003e\n\u003cbutton class=\"vonea-fit-open\" type=\"button\" data-vonea-fit-open=\"\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n      \u003cpath d=\"M4 7h16M4 12h10M4 17h7\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n    \u003c\/svg\u003e Find My Size \u003c\/button\u003e\n\u003cdiv class=\"vonea-fit-overlay\" aria-hidden=\"true\" data-vonea-fit-overlay=\"\"\u003e\n\u003cdiv class=\"vonea-fit-modal\" role=\"dialog\" aria-modal=\"true\" aria-labelledby=\"vonea-fit-title\"\u003e\n\u003cheader class=\"vonea-fit-head\"\u003e\n\u003cdiv\u003e\n\u003ch2 class=\"vonea-fit-title\" id=\"vonea-fit-title\"\u003eVonea Virtual Size Finder\u003c\/h2\u003e\n\u003cp class=\"vonea-fit-subtitle\"\u003eEnter your details for a personalised size recommendation in centimetres.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cbutton class=\"vonea-fit-close\" type=\"button\" data-vonea-fit-close=\"\" aria-label=\"Close size finder\"\u003e \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\"\u003e\n            \u003cpath d=\"M6 6l12 12M18 6L6 18\" stroke=\"currentColor\" stroke-width=\"1.8\" stroke-linecap=\"round\"\u003e\u003c\/path\u003e\n          \u003c\/svg\u003e \u003c\/button\u003e\u003c\/header\u003e\n\u003cdiv class=\"vonea-fit-body\"\u003e\n\u003cdiv class=\"vonea-fit-grid\"\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-height\"\u003eHeight (cm)\u003c\/label\u003e \u003cinput id=\"vonea-fit-height\" class=\"vonea-fit-input\" type=\"number\" inputmode=\"decimal\" placeholder=\"E.g. 165\" min=\"120\" max=\"220\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-weight\"\u003eWeight (kg)\u003c\/label\u003e \u003cinput id=\"vonea-fit-weight\" class=\"vonea-fit-input\" type=\"number\" inputmode=\"decimal\" placeholder=\"E.g. 62\" min=\"30\" max=\"220\"\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-panel\" aria-label=\"Fit preference\"\u003e\n\u003cstrong class=\"vonea-fit-panel-title\"\u003eHow do you prefer the fit?\u003c\/strong\u003e\n\u003cdiv class=\"vonea-fit-options\"\u003e\n\u003cinput type=\"radio\" name=\"vonea-fit-preference\" id=\"vonea-fit-fitted\" value=\"fitted\"\u003e \u003clabel for=\"vonea-fit-fitted\"\u003eFitted\u003c\/label\u003e \u003cinput type=\"radio\" name=\"vonea-fit-preference\" id=\"vonea-fit-regular\" value=\"regular\" checked\u003e \u003clabel for=\"vonea-fit-regular\"\u003eRegular\u003c\/label\u003e \u003cinput type=\"radio\" name=\"vonea-fit-preference\" id=\"vonea-fit-relaxed\" value=\"relaxed\"\u003e \u003clabel for=\"vonea-fit-relaxed\"\u003eRelaxed\u003c\/label\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdetails class=\"vonea-fit-details\"\u003e\n\u003csummary\u003eAdd body measurements for greater accuracy (optional)\u003c\/summary\u003e\n\u003cdiv class=\"vonea-fit-details-content\"\u003e\n\u003cdiv class=\"vonea-fit-grid\"\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-bust\"\u003eBust (cm)\u003c\/label\u003e \u003cinput id=\"vonea-fit-bust\" class=\"vonea-fit-input\" type=\"number\" inputmode=\"decimal\" placeholder=\"E.g. 92\" min=\"70\" max=\"170\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-waist\"\u003eWaist (cm)\u003c\/label\u003e \u003cinput id=\"vonea-fit-waist\" class=\"vonea-fit-input\" type=\"number\" inputmode=\"decimal\" placeholder=\"E.g. 74\" min=\"50\" max=\"160\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-hip\"\u003eHip (cm)\u003c\/label\u003e \u003cinput id=\"vonea-fit-hip\" class=\"vonea-fit-input\" type=\"number\" inputmode=\"decimal\" placeholder=\"E.g. 102\" min=\"70\" max=\"190\"\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-field\"\u003e\n\u003clabel for=\"vonea-fit-stretch\"\u003eFabric\u003c\/label\u003e\u003cselect id=\"vonea-fit-stretch\" class=\"vonea-fit-select\"\u003e\n\u003coption value=\"normal\" selected\u003eStandard\u003c\/option\u003e\n\u003coption value=\"elastic\"\u003eGood stretch\u003c\/option\u003e\n\u003coption value=\"rigid\"\u003eLimited stretch\u003c\/option\u003e\n\u003c\/select\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"vonea-fit-hint\"\u003eWith two or more measurements, the recommendation prioritises bust, waist and hip.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdiv class=\"vonea-fit-actions\"\u003e\n\u003cbutton class=\"vonea-fit-primary\" type=\"button\" data-vonea-fit-calc=\"\"\u003eRecommend My Size\u003c\/button\u003e \u003cbutton class=\"vonea-fit-secondary\" type=\"button\" data-vonea-fit-table-toggle=\"\"\u003eView Size Guide\u003c\/button\u003e \u003cspan class=\"vonea-fit-grade\"\u003eSize range: XS, S, M, L, XL, 2XL, 3XL\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-error\" data-vonea-fit-error=\"\" hidden=\"\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-result\" data-vonea-fit-result=\"\" hidden=\"\"\u003e\n\u003cstrong\u003eRecommended size:\u003c\/strong\u003e \u003cspan class=\"vonea-fit-size\" data-vonea-fit-size=\"\"\u003e--\u003c\/span\u003e\n\u003cp class=\"vonea-fit-hint\" data-vonea-fit-extra=\"\"\u003e \u003c\/p\u003e\n\u003cp class=\"vonea-fit-hint\"\u003eIf you are between sizes, choose the larger size for a more comfortable fit.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vonea-fit-table-wrap\" data-vonea-fit-table=\"\" hidden=\"\"\u003e\n\u003ctable class=\"vonea-fit-table\" aria-label=\"Vonea size guide\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSize\u003c\/th\u003e\n\u003cth\u003eBust\u003c\/th\u003e\n\u003cth\u003eWaist\u003c\/th\u003e\n\u003cth\u003eHip\u003c\/th\u003e\n\u003cth\u003eLength\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody data-vonea-fit-table-body=\"\"\u003e\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n  (function(){\n    const SIZE_TABLE = [\n      { label:\"XS\", bust:[80,84], waist:[62,66], hip:[86,90], length:122 },\n      { label:\"S\", bust:[85,89], waist:[67,71], hip:[91,95], length:123 },\n      { label:\"M\", bust:[90,96], waist:[72,78], hip:[96,102], length:124 },\n      { label:\"L\", bust:[97,104], waist:[79,86], hip:[103,110], length:125 },\n      { label:\"XL\", bust:[105,112], waist:[87,94], hip:[111,118], length:126 },\n      { label:\"2XL\", bust:[113,124], waist:[95,106], hip:[119,130], length:127 },\n      { label:\"3XL\", bust:[125,136], waist:[107,118], hip:[131,142], length:128 }\n    ];\n\n    const HEIGHT_WEIGHT_BREAKS = [\n      { to:50, size:\"XS\" },\n      { to:58, size:\"S\" },\n      { to:66, size:\"M\" },\n      { to:75, size:\"L\" },\n      { to:85, size:\"XL\" },\n      { to:99, size:\"2XL\" },\n      { to:999, size:\"3XL\" }\n    ];\n\n    const script = document.currentScript;\n    const root = script \u0026\u0026 script.closest ? script.closest(\".vonea-fit\") : document.querySelector(\".vonea-fit\");\n    if(!root) return;\n\n    const brand = root.getAttribute(\"data-brand-color\") || \"#0C3527\";\n    root.style.setProperty(\"--brand\", brand);\n\n    const $ = selector =\u003e root.querySelector(selector);\n    const overlay = $(\"[data-vonea-fit-overlay]\");\n    const openButton = $(\"[data-vonea-fit-open]\");\n    const closeButton = $(\"[data-vonea-fit-close]\");\n    const calcButton = $(\"[data-vonea-fit-calc]\");\n    const tableButton = $(\"[data-vonea-fit-table-toggle]\");\n    const tableBox = $(\"[data-vonea-fit-table]\");\n    const tableBody = $(\"[data-vonea-fit-table-body]\");\n    const errorBox = $(\"[data-vonea-fit-error]\");\n    const resultBox = $(\"[data-vonea-fit-result]\");\n    const resultSize = $(\"[data-vonea-fit-size]\");\n    const resultExtra = $(\"[data-vonea-fit-extra]\");\n\n    const formatRange = range =\u003e range[0] + \"-\" + range[1] + \" cm\";\n\n    function renderTable(){\n      tableBody.innerHTML = SIZE_TABLE.map(size =\u003e (\n        \"\u003ctr\u003e\" +\n        \"\u003ctd\u003e\" + size.label + \"\u003c\/td\u003e\" +\n        \"\u003ctd\u003e\" + formatRange(size.bust) + \"\u003c\/td\u003e\" +\n        \"\u003ctd\u003e\" + formatRange(size.waist) + \"\u003c\/td\u003e\" +\n        \"\u003ctd\u003e\" + formatRange(size.hip) + \"\u003c\/td\u003e\" +\n        \"\u003ctd\u003e\" + size.length + \" cm\u003c\/td\u003e\" +\n        \"\u003c\/tr\u003e\"\n      )).join(\"\");\n    }\n\n    function openModal(){\n      overlay.classList.add(\"is-open\");\n      overlay.setAttribute(\"aria-hidden\",\"false\");\n      setTimeout(() =\u003e $(\"#vonea-fit-height\").focus(), 50);\n    }\n\n    function closeModal(){\n      overlay.classList.remove(\"is-open\");\n      overlay.setAttribute(\"aria-hidden\",\"true\");\n    }\n\n    function numberValue(selector){\n      const value = $(selector).value;\n      return value === \"\" ? null : Number(value);\n    }\n\n    function selectedFit(){\n      const selected = root.querySelector('input[name=\"vonea-fit-preference\"]:checked');\n      return selected ? selected.value : \"regular\";\n    }\n\n    function sizeIndex(label){\n      return SIZE_TABLE.findIndex(size =\u003e size.label === label);\n    }\n\n    function rangePenalty(value, range, margin){\n      if(value === null || !range) return 0;\n      const min = range[0] - margin;\n      const max = range[1] + margin;\n      if(value \u003c min) return min - value;\n      if(value \u003e max) return value - max;\n      return 0;\n    }\n\n    function byMeasurements(data, fit, stretch){\n      const provided = [\"bust\",\"waist\",\"hip\"].filter(key =\u003e data[key] !== null);\n      if(provided.length \u003c 2) return null;\n\n      let margin = 0;\n      if(fit === \"fitted\") margin -= 1;\n      if(fit === \"relaxed\") margin += 2;\n      if(stretch === \"rigid\") margin += 2;\n      if(stretch === \"elastic\") margin -= 1;\n\n      let best = null;\n      SIZE_TABLE.forEach((size, index) =\u003e {\n        const score =\n          rangePenalty(data.bust, size.bust, margin) +\n          rangePenalty(data.waist, size.waist, margin) +\n          rangePenalty(data.hip, size.hip, margin);\n        if(!best || score \u003c best.score) best = { label:size.label, index, score };\n      });\n      return best ? { label:best.label, method:\"measure\", index:best.index } : null;\n    }\n\n    function byHeightWeight(height, weight, fit){\n      if(!height || !weight) return null;\n      let normalisedWeight = weight * (170 \/ height);\n      if(fit === \"fitted\") normalisedWeight *= .97;\n      if(fit === \"relaxed\") normalisedWeight *= 1.03;\n      const result = HEIGHT_WEIGHT_BREAKS.find(item =\u003e normalisedWeight \u003c= item.to);\n      return result ? { label:result.size, method:\"body\", index:sizeIndex(result.size) } : null;\n    }\n\n    function showError(message){\n      errorBox.textContent = message;\n      errorBox.removeAttribute(\"hidden\");\n      resultBox.setAttribute(\"hidden\",\"\");\n    }\n\n    function clearError(){\n      errorBox.textContent = \"\";\n      errorBox.setAttribute(\"hidden\",\"\");\n    }\n\n    function renderResult(result){\n      const related = [];\n      if(SIZE_TABLE[result.index - 1]) related.push(SIZE_TABLE[result.index - 1].label);\n      if(SIZE_TABLE[result.index + 1]) related.push(SIZE_TABLE[result.index + 1].label);\n\n      resultSize.textContent = result.label;\n      resultExtra.textContent = result.method === \"measure\"\n        ? \"Recommendation calculated from your body measurements.\"\n        : \"Recommendation estimated from height, weight and fit preference.\";\n\n      if(related.length){\n        resultExtra.textContent += \" Nearby sizes: \" + related.join(\" and \") + \".\";\n      }\n\n      resultBox.removeAttribute(\"hidden\");\n    }\n\n    function calculate(){\n      clearError();\n\n      const height = numberValue(\"#vonea-fit-height\");\n      const weight = numberValue(\"#vonea-fit-weight\");\n      const bust = numberValue(\"#vonea-fit-bust\");\n      const waist = numberValue(\"#vonea-fit-waist\");\n      const hip = numberValue(\"#vonea-fit-hip\");\n      const fit = selectedFit();\n      const stretch = $(\"#vonea-fit-stretch\").value;\n\n      if(!height || !weight){\n        showError(\"Enter your height and weight to continue.\");\n        return;\n      }\n\n      const measuredResult = byMeasurements({ bust, waist, hip }, fit, stretch);\n      const result = measuredResult || byHeightWeight(height, weight, fit);\n\n      if(!result){\n        showError(\"We could not recommend a size with the details provided.\");\n        return;\n      }\n\n      renderResult(result);\n    }\n\n    renderTable();\n\n    openButton.addEventListener(\"click\", openModal);\n    closeButton.addEventListener(\"click\", closeModal);\n    overlay.addEventListener(\"click\", event =\u003e {\n      if(event.target === overlay) closeModal();\n    });\n    document.addEventListener(\"keydown\", event =\u003e {\n      if(event.key === \"Escape\" \u0026\u0026 overlay.classList.contains(\"is-open\")) closeModal();\n    });\n    calcButton.addEventListener(\"click\", calculate);\n    tableButton.addEventListener(\"click\", () =\u003e {\n      const isHidden = tableBox.hasAttribute(\"hidden\");\n      if(isHidden){\n        tableBox.removeAttribute(\"hidden\");\n        tableButton.textContent = \"Hide Size Guide\";\n      }else{\n        tableBox.setAttribute(\"hidden\",\"\");\n        tableButton.textContent = \"View Size Guide\";\n      }\n    });\n  })();\n  \u003c\/script\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003chr style=\"border: none; border-top: 1px solid #e8e2d6; margin: 45px 0;\"\u003e\n\u003c!-- VONEA STANDARD --\u003e\n\u003cdiv style=\"text-align: center; padding-bottom: 35px;\"\u003e\n\u003cp style=\"font-size: 12px; letter-spacing: 2.5px; text-transform: uppercase; color: #0c3527; margin-bottom: 16px;\"\u003eThe Vonea Standard\u003c\/p\u003e\n\u003ch3 style=\"font-size: 24px; font-weight: 400; margin: 0 0 20px 0; color: #1f1f1f;\"\u003eTimeless Sophistication\u003c\/h3\u003e\n\u003cp style=\"max-width: 650px; margin: 0 auto 35px auto; color: #555;\"\u003eAt Vonea, we believe true elegance is not dictated by trends. Each piece is carefully selected to bring together presence, comfort and refinement in a premium experience.\u003c\/p\u003e\n\u003cdiv style=\"display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; border-top: 1px solid #e8e2d6; border-bottom: 1px solid #e8e2d6;\" class=\"vonea-standard-grid\"\u003e\n\u003cdiv style=\"min-width: 0; padding: 18px 10px; border-right: 1px solid #e8e2d6; font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: #3a3a3a; text-align: center; overflow-wrap: break-word; word-break: normal;\" class=\"vonea-standard-item\"\u003eSelected Fabrics\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0; padding: 18px 10px; border-right: 1px solid #e8e2d6; font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: #3a3a3a; text-align: center; overflow-wrap: break-word; word-break: normal;\" class=\"vonea-standard-item\"\u003ePremium Finish\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0; padding: 18px 10px; border-right: 1px solid #e8e2d6; font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: #3a3a3a; text-align: center; overflow-wrap: break-word; word-break: normal;\" class=\"vonea-standard-item\"\u003eTimeless Design\u003c\/div\u003e\n\u003cdiv style=\"min-width: 0; padding: 18px 10px; font-size: 11px; letter-spacing: 1.4px; text-transform: uppercase; color: #3a3a3a; text-align: center; overflow-wrap: break-word; word-break: normal;\" class=\"vonea-standard-item\"\u003eVersatile Elegance\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e","brand":"Vonea","offers":[{"title":"Brown \/ XS","offer_id":52475205550391,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ S","offer_id":52475205583159,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ M","offer_id":52475205615927,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ L","offer_id":52476270641463,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ XL","offer_id":52476270674231,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ 2XL","offer_id":52476270706999,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Brown \/ 3XL","offer_id":52476270739767,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ XS","offer_id":52475205648695,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ S","offer_id":52475205681463,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ M","offer_id":52475205714231,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ L","offer_id":52476270772535,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ XL","offer_id":52476270805303,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ 2XL","offer_id":52476270838071,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Green \/ 3XL","offer_id":52476270870839,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ XS","offer_id":52475205746999,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ S","offer_id":52475205779767,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ M","offer_id":52475205812535,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ L","offer_id":52476270903607,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ XL","offer_id":52476270936375,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ 2XL","offer_id":52476270969143,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true},{"title":"Black \/ 3XL","offer_id":52476271001911,"sku":null,"price":69.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0995\/8227\/9991\/files\/477fc037-0ec7-4f7e-af18-8698e8422ffc-d088673961572fc67517762559422303-1024-1024.webp?v=1781548460","url":"https:\/\/wearvonea.com\/products\/florence-midi-dress","provider":"Vonea","version":"1.0","type":"link"}