/* Keep shrink-to-fit theme forms independent of changing price/help text. */
form.cart:has(.svp-options), form.cart.svp-cart-form,
form.cart .single_variation_wrap:has(.svp-options),
form.cart .woocommerce-variation-add-to-cart:has(.svp-options),
form.cart .svp-options-parent {
    box-sizing:border-box !important; width:100% !important; max-width:100% !important;
    min-width:0; flex-wrap:wrap; align-self:stretch; justify-self:stretch;
}
form.cart fieldset.svp-options { width:100% !important; max-width:100% !important; min-width:100% !important; flex:0 0 100% !important; }
.svp-options { box-sizing:border-box; flex:0 0 100%; grid-column:1 / -1; width:100%; min-width:0; margin:1.25rem 0; padding:1.25rem; border:1px solid #d9d3ca; border-radius:12px; background:#faf8f5; color:#292620; text-align:left; }
.svp-options legend { width:auto; max-width:100%; padding:0 .45rem; font:inherit; font-weight:700; font-size:1.1em; color:inherit; }
.svp-options p { margin:0 0 1rem; }
.svp-options label { display:block; margin:0 0 .4rem; font-weight:600; }
.svp-options small, .svp-options .svp-help { display:block; font-size:.875em; line-height:1.6; color:#585249; }
.svp-options select, .svp-options input[type=number] { box-sizing:border-box; width:100%; max-width:100%; min-height:46px; padding:.65rem .8rem; background:#fff; color:#292620; border:1px solid #a59b8e; border-radius:6px; font:inherit; }
.svp-options input:focus-visible, .svp-options select:focus-visible { outline:3px solid #82643b; outline-offset:3px; }
.svp-options .svp-upload { padding:1rem; margin-bottom:1rem; border:1px dashed #a59b8e; border-radius:8px; background:#fff; }
.svp-options input[type=file] { display:block; box-sizing:border-box; width:100%; max-width:100%; margin:.5rem 0; font:inherit; font-size:.9em; color:inherit; }
.svp-options input[type=file]::file-selector-button { padding:.65rem .8rem; margin-right:.6rem; border:1px solid #a59b8e; border-radius:5px; background:#f1ece4; color:#292620; cursor:pointer; }
.svp-options .svp-price { box-sizing:border-box; width:100%; padding:.9rem 1rem; border-radius:6px; background:#eee7da; font-weight:700; line-height:1.5; }
.svp-options .svp-photo-preview { display:block; max-width:100%; max-height:220px; width:auto; height:auto; margin:.75rem 0 0; border-radius:6px; object-fit:contain; }
.svp-options [hidden] { display:none !important; }
.svp-options #svp-photo-status:empty { display:none; }
@media(max-width:480px) { .svp-options { padding:.85rem; } .svp-options .svp-upload { padding:.75rem; } }
