/* FlexForms — 5 preset themes + hooks for custom */

.flexforms-style-minimal,
.flexforms-style-soft,
.flexforms-style-outline,
.flexforms-style-dark,
.flexforms-style-card,
.flexforms-style-custom{
    --ff-radius:8px;
    --ff-gap:1rem;
    --ff-font:inherit;
    --ff-label:#374151;
    --ff-text:#111827;
    --ff-muted:#6b7280;
    --ff-border:#d1d5db;
    --ff-input-border:#d1d5db;
    --ff-bg:#ffffff;
    --ff-input-bg:#ffffff;
    --ff-shadow-x:0px;
    --ff-shadow-y:0px;
    --ff-shadow-blur:10px;
    --ff-shadow-spread:0px;
    --ff-focus:#2563eb;
    --ff-btn-bg:#2563eb;
    --ff-btn-text:#ffffff;
    --ff-btn-hover:#1d4ed8;
    --ff-error:#dc2626;
    --ff-success:#059669;
    --ff-shadow:none;
    --ff-wrap-radius:10px;
    --ff-inner-pad:1.15rem;
    display:block;
    font-family:var(--ff-font);
    color:var(--ff-text);
    box-sizing:border-box;
}


.flexforms-style-minimal *,
.flexforms-style-soft *,
.flexforms-style-outline *,
.flexforms-style-dark *,
.flexforms-style-card *,
.flexforms-style-custom *{
    box-sizing:border-box;
}

.flexforms-style-minimal .flexforms-field,
.flexforms-style-soft .flexforms-field,
.flexforms-style-outline .flexforms-field,
.flexforms-style-dark .flexforms-field,
.flexforms-style-card .flexforms-field,
.flexforms-style-custom .flexforms-field{
    margin:0 0 var(--ff-gap);
}

.flexforms-style-minimal .flexforms-label,
.flexforms-style-soft .flexforms-label,
.flexforms-style-outline .flexforms-label,
.flexforms-style-dark .flexforms-label,
.flexforms-style-card .flexforms-label,
.flexforms-style-custom .flexforms-label{
    display:block;
    margin:0 0 .4em;
    font-size:.92em;
    font-weight:600;
    color:var(--ff-label);
}

.flexforms-style-minimal .flexforms-field-total .flexforms-label,
.flexforms-style-soft .flexforms-field-total .flexforms-label,
.flexforms-style-outline .flexforms-field-total .flexforms-label,
.flexforms-style-dark .flexforms-field-total .flexforms-label,
.flexforms-style-card .flexforms-field-total .flexforms-label,
.flexforms-style-custom .flexforms-field-total .flexforms-label{
    margin:0;
    color:var(--ff-total-label, var(--ff-label));
}

.flexforms-style-minimal .flexforms-total-amount,
.flexforms-style-soft .flexforms-total-amount,
.flexforms-style-outline .flexforms-total-amount,
.flexforms-style-dark .flexforms-total-amount,
.flexforms-style-card .flexforms-total-amount,
.flexforms-style-custom .flexforms-total-amount{
    color:var(--ff-total-amount, var(--ff-text));
    font-weight:600;
}

.flexforms-style-minimal .flexforms-description,
.flexforms-style-soft .flexforms-description,
.flexforms-style-outline .flexforms-description,
.flexforms-style-dark .flexforms-description,
.flexforms-style-card .flexforms-description,
.flexforms-style-custom .flexforms-description{
    margin:0 0 .55em;
    font-size:.88em;
    line-height:1.45;
    color:var(--ff-muted);
    font-weight:400;
}

.flexforms-style-minimal .flexforms-required,
.flexforms-style-soft .flexforms-required,
.flexforms-style-outline .flexforms-required,
.flexforms-style-dark .flexforms-required,
.flexforms-style-card .flexforms-required,
.flexforms-style-custom .flexforms-required{
    color:var(--ff-error);
}

.flexforms-style-minimal .flexforms-input,
.flexforms-style-soft .flexforms-input,
.flexforms-style-outline .flexforms-input,
.flexforms-style-dark .flexforms-input,
.flexforms-style-card .flexforms-input,
.flexforms-style-custom .flexforms-input,
.flexforms-style-minimal .flexforms-field select,
.flexforms-style-soft .flexforms-field select,
.flexforms-style-outline .flexforms-field select,
.flexforms-style-dark .flexforms-field select,
.flexforms-style-card .flexforms-field select,
.flexforms-style-custom .flexforms-field select,
.flexforms-style-minimal .flexforms-field textarea,
.flexforms-style-soft .flexforms-field textarea,
.flexforms-style-outline .flexforms-field textarea,
.flexforms-style-dark .flexforms-field textarea,
.flexforms-style-card .flexforms-field textarea,
.flexforms-style-custom .flexforms-field textarea{
    width:100%;
    max-width:100%;
    padding:.7em .85em;
    border:1px solid var(--ff-input-border, var(--ff-border));
    border-radius:var(--ff-radius);
    background:var(--ff-input-bg);
    color:var(--ff-text);
    font:inherit;
    line-height:1.4;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

.flexforms-style-minimal .flexforms-input:focus,
.flexforms-style-soft .flexforms-input:focus,
.flexforms-style-outline .flexforms-input:focus,
.flexforms-style-dark .flexforms-input:focus,
.flexforms-style-card .flexforms-input:focus,
.flexforms-style-custom .flexforms-input:focus,
.flexforms-style-minimal .flexforms-field select:focus,
.flexforms-style-soft .flexforms-field select:focus,
.flexforms-style-outline .flexforms-field select:focus,
.flexforms-style-dark .flexforms-field select:focus,
.flexforms-style-card .flexforms-field select:focus,
.flexforms-style-custom .flexforms-field select:focus,
.flexforms-style-minimal .flexforms-field textarea:focus,
.flexforms-style-soft .flexforms-field textarea:focus,
.flexforms-style-outline .flexforms-field textarea:focus,
.flexforms-style-dark .flexforms-field textarea:focus,
.flexforms-style-card .flexforms-field textarea:focus,
.flexforms-style-custom .flexforms-field textarea:focus{
    outline:none;
    border-color:var(--ff-focus);
    box-shadow:0 0 0 3px color-mix(in srgb, var(--ff-focus) 22%, transparent);
}

.flexforms-style-minimal .flexforms-submit,
.flexforms-style-soft .flexforms-submit,
.flexforms-style-outline .flexforms-submit,
.flexforms-style-dark .flexforms-submit,
.flexforms-style-card .flexforms-submit,
.flexforms-style-custom .flexforms-submit,
.flexforms-style-minimal .flexforms-add-to-cart-btn,
.flexforms-style-soft .flexforms-add-to-cart-btn,
.flexforms-style-outline .flexforms-add-to-cart-btn,
.flexforms-style-dark .flexforms-add-to-cart-btn,
.flexforms-style-card .flexforms-add-to-cart-btn,
.flexforms-style-custom .flexforms-add-to-cart-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:.35em;
    min-height:44px;
    padding:.75em 1.4em;
    border:0;
    border-radius:var(--ff-radius);
    background:var(--ff-btn-bg);
    color:var(--ff-btn-text);
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
    transition:background .15s ease, transform .1s ease, box-shadow .15s ease;
}
.flexforms-style-minimal .flexforms-submit,
.flexforms-style-soft .flexforms-submit,
.flexforms-style-outline .flexforms-submit,
.flexforms-style-dark .flexforms-submit,
.flexforms-style-card .flexforms-submit,
.flexforms-style-custom .flexforms-submit{
    font:inherit;
    font-size:var(--ff-cart-btn-size, inherit);
    border-radius:var(--ff-cart-btn-radius, var(--ff-radius, 8px));
}
.flexforms-style-minimal .flexforms-add-to-cart-btn,
.flexforms-style-soft .flexforms-add-to-cart-btn,
.flexforms-style-outline .flexforms-add-to-cart-btn,
.flexforms-style-dark .flexforms-add-to-cart-btn,
.flexforms-style-card .flexforms-add-to-cart-btn,
.flexforms-style-custom .flexforms-add-to-cart-btn{
    font-family:inherit;
    font-size:var(--ff-cart-btn-size, 16px);
    border-radius:var(--ff-cart-btn-radius, var(--ff-radius, 8px));
}

.flexforms-style-minimal .flexforms-submit:hover,
.flexforms-style-soft .flexforms-submit:hover,
.flexforms-style-outline .flexforms-submit:hover,
.flexforms-style-dark .flexforms-submit:hover,
.flexforms-style-card .flexforms-submit:hover,
.flexforms-style-custom .flexforms-submit:hover,
.flexforms-style-minimal .flexforms-add-to-cart-btn:hover,
.flexforms-style-soft .flexforms-add-to-cart-btn:hover,
.flexforms-style-outline .flexforms-add-to-cart-btn:hover,
.flexforms-style-dark .flexforms-add-to-cart-btn:hover,
.flexforms-style-card .flexforms-add-to-cart-btn:hover,
.flexforms-style-custom .flexforms-add-to-cart-btn:hover{
    background:var(--ff-btn-hover);
}

.flexforms-style-minimal .flexforms-submit:disabled,
.flexforms-style-soft .flexforms-submit:disabled,
.flexforms-style-outline .flexforms-submit:disabled,
.flexforms-style-dark .flexforms-submit:disabled,
.flexforms-style-card .flexforms-submit:disabled,
.flexforms-style-custom .flexforms-submit:disabled,
.flexforms-style-minimal .flexforms-add-to-cart-btn:disabled,
.flexforms-style-soft .flexforms-add-to-cart-btn:disabled,
.flexforms-style-outline .flexforms-add-to-cart-btn:disabled,
.flexforms-style-dark .flexforms-add-to-cart-btn:disabled,
.flexforms-style-card .flexforms-add-to-cart-btn:disabled,
.flexforms-style-custom .flexforms-add-to-cart-btn:disabled{
    opacity:.7;
    cursor:wait;
}

.flexforms-style-minimal .flexforms-field-error,
.flexforms-style-soft .flexforms-field-error,
.flexforms-style-outline .flexforms-field-error,
.flexforms-style-dark .flexforms-field-error,
.flexforms-style-card .flexforms-field-error,
.flexforms-style-custom .flexforms-field-error{
    color:var(--ff-error);
    font-size:var(--ff-error-size, 13px);
}

.flexforms-style-minimal .flexforms-field.has-error .flexforms-input,
.flexforms-style-soft .flexforms-field.has-error .flexforms-input,
.flexforms-style-outline .flexforms-field.has-error .flexforms-input,
.flexforms-style-dark .flexforms-field.has-error .flexforms-input,
.flexforms-style-card .flexforms-field.has-error .flexforms-input,
.flexforms-style-custom .flexforms-field.has-error .flexforms-input,
.flexforms-style-minimal .flexforms-field.has-error select,
.flexforms-style-soft .flexforms-field.has-error select,
.flexforms-style-outline .flexforms-field.has-error select,
.flexforms-style-dark .flexforms-field.has-error select,
.flexforms-style-card .flexforms-field.has-error select,
.flexforms-style-custom .flexforms-field.has-error select,
.flexforms-style-minimal .flexforms-field.has-error textarea,
.flexforms-style-soft .flexforms-field.has-error textarea,
.flexforms-style-outline .flexforms-field.has-error textarea,
.flexforms-style-dark .flexforms-field.has-error textarea,
.flexforms-style-card .flexforms-field.has-error textarea,
.flexforms-style-custom .flexforms-field.has-error textarea{
    border-color:var(--ff-error);
}

.flexforms-style-minimal .flexforms-message.is-success,
.flexforms-style-soft .flexforms-message.is-success,
.flexforms-style-outline .flexforms-message.is-success,
.flexforms-style-dark .flexforms-message.is-success,
.flexforms-style-card .flexforms-message.is-success,
.flexforms-style-custom .flexforms-message.is-success{
    color:var(--ff-success);
}

.flexforms-style-minimal .flexforms-message.is-error,
.flexforms-style-soft .flexforms-message.is-error,
.flexforms-style-outline .flexforms-message.is-error,
.flexforms-style-dark .flexforms-message.is-error,
.flexforms-style-card .flexforms-message.is-error,
.flexforms-style-custom .flexforms-message.is-error{
    color:var(--ff-error);
    font-size:var(--ff-error-size, 13px);
}

.flexforms-style-minimal .flexforms-product-title,
.flexforms-style-minimal .flexforms-form-title,
.flexforms-style-soft .flexforms-product-title,
.flexforms-style-soft .flexforms-form-title,
.flexforms-style-outline .flexforms-product-title,
.flexforms-style-outline .flexforms-form-title,
.flexforms-style-dark .flexforms-product-title,
.flexforms-style-dark .flexforms-form-title,
.flexforms-style-card .flexforms-product-title,
.flexforms-style-card .flexforms-form-title,
.flexforms-style-custom .flexforms-product-title,
.flexforms-style-custom .flexforms-form-title{
    margin:0 0 .85em;
    font-weight:700;
    line-height:1.35;
    color:var(--ff-text);
}

.flexforms-style-minimal .flexforms-option input[type="checkbox"],
.flexforms-style-minimal .flexforms-option input[type="radio"],
.flexforms-style-soft .flexforms-option input[type="checkbox"],
.flexforms-style-soft .flexforms-option input[type="radio"],
.flexforms-style-outline .flexforms-option input[type="checkbox"],
.flexforms-style-outline .flexforms-option input[type="radio"],
.flexforms-style-dark .flexforms-option input[type="checkbox"],
.flexforms-style-dark .flexforms-option input[type="radio"],
.flexforms-style-card .flexforms-option input[type="checkbox"],
.flexforms-style-card .flexforms-option input[type="radio"],
.flexforms-style-custom .flexforms-option input[type="checkbox"],
.flexforms-style-custom .flexforms-option input[type="radio"]{
    accent-color:var(--ff-focus);
}

.flexforms-style-custom .flexforms-product-title,
.flexforms-style-custom .flexforms-form-title{
    color:var(--ff-title-color, var(--ff-text));
    font-size:var(--ff-title-size, 1.05em);
    padding:var(--ff-title-pad, 0px);
}

/* Shared preset shell + Form header integration */
.flexforms-style-minimal.has-form-header,
.flexforms-style-soft.has-form-header,
.flexforms-style-outline.has-form-header,
.flexforms-style-dark.has-form-header,
.flexforms-style-card.has-form-header{
    padding:0;
    overflow:visible;
    border-radius:var(--ff-wrap-radius);
}

.flexforms-style-minimal.has-form-header .flexforms-form,
.flexforms-style-minimal.has-form-header .flexforms-body,
.flexforms-style-soft.has-form-header .flexforms-form,
.flexforms-style-soft.has-form-header .flexforms-body,
.flexforms-style-outline.has-form-header .flexforms-form,
.flexforms-style-outline.has-form-header .flexforms-body,
.flexforms-style-dark.has-form-header .flexforms-form,
.flexforms-style-dark.has-form-header .flexforms-body,
.flexforms-style-card.has-form-header .flexforms-form,
.flexforms-style-card.has-form-header .flexforms-body{
    padding:var(--ff-inner-pad);
}

/* 1) Minimal — clean panel */
.flexforms-style-minimal{
    --ff-wrap-radius:10px;
    --ff-inner-pad:1.15rem;
    --ff-radius:8px;
    --ff-border:#e5e7eb;
    --ff-input-border:#e5e7eb;
    --ff-btn-bg:#111827;
    --ff-btn-hover:#000;
    --ff-focus:#111827;
    padding:var(--ff-inner-pad);
    background:#fff;
    border:1px solid var(--ff-border);
    border-radius:var(--ff-wrap-radius);
}
.flexforms-style-minimal .flexforms-form-title,
.flexforms-style-minimal .flexforms-product-title{
    font-size:1.12em;
    letter-spacing:-.01em;
}
.flexforms-style-minimal .flexforms-submit,
.flexforms-style-minimal .flexforms-add-to-cart-btn{
    box-shadow:0 1px 2px rgba(15,23,42,.08);
}
.flexforms-style-minimal .flexforms-submit:hover,
.flexforms-style-minimal .flexforms-add-to-cart-btn:hover{
    box-shadow:0 4px 10px rgba(15,23,42,.12);
}

/* 2) Soft — rounded & airy */
.flexforms-style-soft{
    --ff-wrap-radius:18px;
    --ff-inner-pad:1.25rem 1.35rem;
    --ff-radius:12px;
    --ff-bg:#f8f7ff;
    --ff-input-bg:#ffffff;
    --ff-border:#e4e0ff;
    --ff-input-border:#e4e0ff;
    --ff-label:#5b21b6;
    --ff-muted:#7c6f9a;
    --ff-focus:#8b5cf6;
    --ff-btn-bg:#7c3aed;
    --ff-btn-hover:#6d28d9;
    --ff-shadow:0 12px 32px rgba(91,33,182,.1);
    padding:var(--ff-inner-pad);
    background:var(--ff-bg);
    border:1px solid #ebe7ff;
    border-radius:var(--ff-wrap-radius);
    box-shadow:var(--ff-shadow);
}
.flexforms-style-soft .flexforms-form-title,
.flexforms-style-soft .flexforms-product-title{
    color:var(--ff-label);
    font-size:1.18em;
}
.flexforms-style-soft .flexforms-input,
.flexforms-style-soft .flexforms-field select,
.flexforms-style-soft .flexforms-field textarea{
    border:0;
    box-shadow:inset 0 0 0 1px var(--ff-input-border);
}
.flexforms-style-soft .flexforms-input:focus,
.flexforms-style-soft .flexforms-field select:focus,
.flexforms-style-soft .flexforms-field textarea:focus{
    box-shadow:inset 0 0 0 2px var(--ff-focus);
}
.flexforms-style-soft .flexforms-submit,
.flexforms-style-soft .flexforms-add-to-cart-btn{
    border-radius:999px;
    padding-left:1.6em;
    padding-right:1.6em;
    box-shadow:0 8px 20px rgba(124,58,237,.22);
}

/* 3) Outline — bold borders */
.flexforms-style-outline{
    --ff-wrap-radius:0;
    --ff-inner-pad:1.15rem;
    --ff-radius:0;
    --ff-border:#111827;
    --ff-input-border:#111827;
    --ff-focus:#111827;
    --ff-btn-bg:#111827;
    --ff-btn-hover:#374151;
    --ff-label:#111827;
    padding:var(--ff-inner-pad);
    background:#fff;
    border:2px solid #111827;
}
.flexforms-style-outline .flexforms-form-title,
.flexforms-style-outline .flexforms-product-title{
    font-size:1.1em;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.flexforms-style-outline .flexforms-input,
.flexforms-style-outline .flexforms-field select,
.flexforms-style-outline .flexforms-field textarea{
    border-width:2px;
    background:transparent;
}
.flexforms-style-outline .flexforms-input:focus,
.flexforms-style-outline .flexforms-field select:focus,
.flexforms-style-outline .flexforms-field textarea:focus{
    box-shadow:4px 4px 0 #111827;
}
.flexforms-style-outline .flexforms-submit,
.flexforms-style-outline .flexforms-add-to-cart-btn{
    border:2px solid #111827;
    box-shadow:4px 4px 0 #111827;
}
.flexforms-style-outline .flexforms-submit:hover,
.flexforms-style-outline .flexforms-add-to-cart-btn:hover{
    transform:translate(1px,1px);
    box-shadow:3px 3px 0 #111827;
}

/* 4) Dark — modern night */
.flexforms-style-dark{
    --ff-wrap-radius:16px;
    --ff-inner-pad:1.35rem 1.4rem;
    --ff-radius:10px;
    --ff-bg:#111827;
    --ff-input-bg:#1f2937;
    --ff-text:#f9fafb;
    --ff-label:#e5e7eb;
    --ff-muted:#9ca3af;
    --ff-border:#374151;
    --ff-input-border:#4b5563;
    --ff-focus:#38bdf8;
    --ff-btn-bg:#38bdf8;
    --ff-btn-text:#0f172a;
    --ff-btn-hover:#7dd3fc;
    --ff-error:#f87171;
    --ff-success:#34d399;
    padding:var(--ff-inner-pad);
    background:var(--ff-bg);
    border-radius:var(--ff-wrap-radius);
    border:1px solid #1f2937;
    box-shadow:0 16px 40px rgba(0,0,0,.28);
}
.flexforms-style-dark .flexforms-form-title,
.flexforms-style-dark .flexforms-product-title{
    font-size:1.14em;
    color:#fff;
}
.flexforms-style-dark .flexforms-input::placeholder,
.flexforms-style-dark .flexforms-field textarea::placeholder{
    color:#6b7280;
}
.flexforms-style-dark .flexforms-submit,
.flexforms-style-dark .flexforms-add-to-cart-btn{
    font-weight:700;
    box-shadow:0 8px 18px rgba(56,189,248,.28);
}

/* 5) Card — elevated panel */
.flexforms-style-card{
    --ff-wrap-radius:20px;
    --ff-inner-pad:1.5rem 1.5rem 1.35rem;
    --ff-radius:12px;
    --ff-bg:#ffffff;
    --ff-border:#e2e8f0;
    --ff-input-border:#dbeafe;
    --ff-label:#1e3a8a;
    --ff-muted:#64748b;
    --ff-focus:#2563eb;
    --ff-btn-bg:#2563eb;
    --ff-btn-hover:#1d4ed8;
    --ff-shadow:0 14px 40px rgba(15,23,42,.1);
    padding:var(--ff-inner-pad);
    background:var(--ff-bg);
    border-radius:var(--ff-wrap-radius);
    border:1px solid var(--ff-border);
    box-shadow:var(--ff-shadow);
}
.flexforms-style-card .flexforms-form-title,
.flexforms-style-card .flexforms-product-title{
    font-size:1.16em;
    color:#0f172a;
}
.flexforms-style-card .flexforms-input,
.flexforms-style-card .flexforms-field select,
.flexforms-style-card .flexforms-field textarea{
    border-color:var(--ff-input-border);
    background:#f8fbff;
}
.flexforms-style-card .flexforms-form{
    display:block;
}
.flexforms-style-card .flexforms-submit,
.flexforms-style-card .flexforms-add-to-cart-btn{
    width:100%;
    border-radius:12px;
    box-shadow:0 10px 24px rgba(37,99,235,.28);
}
.flexforms-style-card .flexforms-actions,
.flexforms-style-card .flexforms-cart-actions{
    margin-top:1.25rem;
}

/* Custom: driven by visual options (CSS variables on the form element) */
.flexforms-style-custom{
    --ff-radius:8px;
    --ff-pad-y:20px;
    --ff-pad-x:20px;
    --ff-form-width:640px;
    background:transparent;
}
.flexforms-style-custom.flexforms-wrap,
.flexforms-style-custom.flexforms-product-wrap,
.flexforms-style-custom.flexforms-cart-btn-wrap{
    width:var(--ff-form-width, 640px);
    max-width:100%;
}
.flexforms-style-custom.flexforms-custom-panel{
    background:var(--ff-bg);
    border:1px solid var(--ff-border);
    border-radius:calc(var(--ff-radius) + 6px);
}
.flexforms-style-custom.flexforms-custom-panel.has-form-header{
    overflow:visible;
}
.flexforms-style-custom.flexforms-custom-pad > .flexforms-form,
.flexforms-style-custom.flexforms-custom-pad > .flexforms-body{
    padding:var(--ff-pad-y) var(--ff-pad-x);
}
.flexforms-style-custom.flexforms-custom-shadow{
    box-shadow:
        var(--ff-shadow-x, 0px)
        var(--ff-shadow-y, 0px)
        var(--ff-shadow-blur, 10px)
        var(--ff-shadow-spread, 0px)
        color-mix(in srgb, var(--ff-shadow-color, #0f172a) 28%, transparent);
}
.flexforms-style-custom.flexforms-custom-btn-full .flexforms-submit,
.flexforms-style-custom.flexforms-custom-btn-full .flexforms-add-to-cart-btn,
.flexforms-cart-btn-wrap.flexforms-custom-btn-full .flexforms-add-to-cart-btn,
.flexforms-cart-btn-wrap.flexforms-cart-btn-full .flexforms-add-to-cart-btn{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}
.flexforms-style-custom.flexforms-custom-btn-full .flexforms-cart-actions,
.flexforms-cart-btn-wrap.flexforms-custom-btn-full .flexforms-cart-actions,
.flexforms-cart-btn-wrap.flexforms-cart-btn-full .flexforms-cart-actions,
.flexforms-wrap.flexforms-cart-btn-full .flexforms-submit-actions{
    width:100%;
}
.flexforms-style-custom.flexforms-custom-btn-pill .flexforms-submit,
.flexforms-style-custom.flexforms-custom-btn-pill .flexforms-add-to-cart-btn,
.flexforms-cart-btn-wrap.flexforms-custom-btn-pill .flexforms-add-to-cart-btn{
    border-radius:999px;
}
form.cart.flexforms-managed-cart .flexforms-cart-btn-wrap.flexforms-custom-btn-pill .flexforms-add-to-cart-btn,
form.cart.flexforms-managed-cart .flexforms-product-wrap.flexforms-custom-btn-pill .flexforms-add-to-cart-btn{
    border-radius:999px;
}
.flexforms-style-custom .flexforms-input,
.flexforms-style-custom .flexforms-field select,
.flexforms-style-custom .flexforms-field textarea{
    background:var(--ff-input-bg);
    border-color:var(--ff-input-border, var(--ff-border));
    font-size:var(--ff-input-size, 16px);
}
.flexforms-style-custom .flexforms-option,
.flexforms-style-custom .flexforms-consent-label{
    font-size:var(--ff-input-size, 16px);
}
.flexforms-style-custom .flexforms-option input[type="checkbox"],
.flexforms-style-custom .flexforms-option input[type="radio"],
.flexforms-style-custom .flexforms-consent-input{
    width:var(--ff-input-size, 16px);
    height:var(--ff-input-size, 16px);
    min-width:var(--ff-input-size, 16px);
    min-height:var(--ff-input-size, 16px);
    margin:0;
}
.flexforms-style-custom .flexforms-field-consent .flexforms-consent-label{
    align-items:center;
}
.flexforms-style-custom .flexforms-field-consent .flexforms-consent-input{
    margin-top:0;
}
.flexforms-style-custom .flexforms-label{
    font-size:var(--ff-label-size, 14px);
}
.flexforms-style-custom .flexforms-description{
    font-size:var(--ff-desc-size, 13px);
}
.flexforms-style-custom .flexforms-required{
    font-size:var(--ff-required-size, 12px);
}
.flexforms-style-custom .flexforms-field-error,
.flexforms-style-custom .flexforms-message.is-error,
.flexforms-style-custom .flexforms-error{
    font-size:var(--ff-error-size, 13px);
}
.flexforms-style-custom .flexforms-field-total .flexforms-label{
    font-size:var(--ff-total-label-size, 14px);
    color:var(--ff-total-label, var(--ff-label));
}
.flexforms-style-custom .flexforms-total-amount{
    font-size:var(--ff-total-amount-size, 16px);
    color:var(--ff-total-amount, var(--ff-text));
}
.flexforms-style-custom .flexforms-total-promotion-label{
    font-size:var(--ff-total-discount-label-size, 13px);
    color:var(--ff-total-discount-label, var(--ff-muted));
}
.flexforms-style-custom .flexforms-total-promotion-amount{
    font-size:var(--ff-total-discount-amount-size, 13px);
    color:var(--ff-total-discount-amount, var(--ff-success));
}

.flexforms-add-to-cart-btn{
    float:none!important;
    width:auto;
    max-width:100%;
    box-sizing:border-box;
}
.flexforms-cart-btn-icon{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    line-height:1;
    font-size:1.1em;
}
.flexforms-submit-btn-icon{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    line-height:1;
    font-size:1.1em;
}
.flexforms-cart-btn-text{
    display:inline-block;
}
.flexforms-submit-btn-text{
    display:inline-block;
}
.flexforms-cart-btn-wrap{
    display:block;
    clear:both;
    width:640px;
    max-width:100%;
    margin:0;
    box-sizing:border-box;
}
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside{
    margin-top:1.25em;
    width:100%;
}
.flexforms-cart-actions{
    display:flex;
    width:100%;
}
.flexforms-submit-actions{
    display:flex;
    width:100%;
}
.flexforms-cart-align-left .flexforms-cart-actions,
.flexforms-cart-align-left .flexforms-submit-actions,
.flexforms-cart-align-left .flexforms-actions{
    justify-content:flex-start;
}
.flexforms-cart-align-center .flexforms-cart-actions,
.flexforms-cart-align-center .flexforms-submit-actions,
.flexforms-cart-align-center .flexforms-actions{
    justify-content:center;
}
.flexforms-cart-align-right .flexforms-cart-actions,
.flexforms-cart-align-right .flexforms-submit-actions,
.flexforms-cart-align-right .flexforms-actions{
    justify-content:flex-end;
}
.flexforms-cart-btn-full .flexforms-add-to-cart-btn,
.flexforms-cart-btn-full .flexforms-submit{
    width:100%;
    max-width:100%;
}
.flexforms-cart-btn-auto .flexforms-add-to-cart-btn,
.flexforms-cart-btn-auto .flexforms-submit{
    width:auto;
    max-width:100%;
}
.flexforms-product-wrap.flexforms-cart-btn-auto.flexforms-custom-btn-full .flexforms-add-to-cart-btn,
.flexforms-cart-btn-wrap.flexforms-cart-btn-auto.flexforms-custom-btn-full .flexforms-add-to-cart-btn,
.flexforms-wrap.flexforms-cart-btn-auto.flexforms-custom-btn-full .flexforms-submit{
    width:auto;
    max-width:100%;
}
.flexforms-wrap.flexforms-submit-btn-inside .flexforms-form{
    display:flex;
    flex-direction:column;
}
.flexforms-wrap.flexforms-submit-btn-inside .flexforms-submit-actions{
    margin-top:1.25em;
    margin-bottom:0;
}
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside{
    display:block;
    clear:both;
    margin-top:1.25em;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-minimal,
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-soft,
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-outline,
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-dark,
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-card,
.flexforms-submit-btn-wrap.flexforms-submit-btn-outside.flexforms-style-custom{
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    padding:0!important;
    border-radius:0!important;
}
/* Outside: no second panel — preset/custom wrap styles apply to fields only */
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-minimal,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-soft,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-outline,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-dark,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-card,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-style-custom{
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    padding:0!important;
    border-radius:0!important;
}
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-custom-panel,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-custom-shadow,
.flexforms-cart-btn-wrap.flexforms-cart-btn-outside.flexforms-custom-pad{
    background:transparent!important;
    border:none!important;
    box-shadow:none!important;
    padding:0!important;
}
.flexforms-product-wrap.flexforms-cart-btn-inside{
    overflow:hidden;
}
.flexforms-product-wrap.flexforms-cart-btn-inside .flexforms-body{
    display:flex;
    flex-direction:column;
}
.flexforms-product-wrap.flexforms-cart-btn-inside .flexforms-standalone-qty{
    margin-top:1em;
    margin-bottom:0;
}
.flexforms-product-wrap.flexforms-cart-btn-inside .flexforms-cart-actions{
    margin-top:1.25em;
    margin-bottom:0;
    clear:both;
    float:none;
}
.flexforms-product-wrap.flexforms-cart-btn-inside .flexforms-standalone-qty + .flexforms-cart-actions{
    margin-top:.85em;
}
.flexforms-product-wrap.flexforms-cart-btn-inside.flexforms-custom-panel .flexforms-cart-actions{
    padding-top:0;
}
/* Beat theme `.button.alt` so inside/outside FlexForms ATC keeps plugin colors */
.flexforms-product-wrap .flexforms-add-to-cart-btn.single_add_to_cart_button,
.flexforms-cart-btn-wrap .flexforms-add-to-cart-btn.single_add_to_cart_button,
form.cart.flexforms-managed-cart .flexforms-add-to-cart-btn.single_add_to_cart_button{
    background:var(--ff-btn-bg)!important;
    background-color:var(--ff-btn-bg)!important;
    color:var(--ff-btn-text)!important;
    border-color:transparent!important;
    font-size:var(--ff-cart-btn-size, 16px)!important;
    border-radius:var(--ff-cart-btn-radius, var(--ff-radius, 8px))!important;
    float:none!important;
}
.flexforms-product-wrap .flexforms-add-to-cart-btn.single_add_to_cart_button:hover,
.flexforms-cart-btn-wrap .flexforms-add-to-cart-btn.single_add_to_cart_button:hover,
form.cart.flexforms-managed-cart .flexforms-add-to-cart-btn.single_add_to_cart_button:hover{
    background:var(--ff-btn-hover)!important;
    background-color:var(--ff-btn-hover)!important;
    color:var(--ff-btn-text)!important;
}
form.cart.flexforms-managed-cart .flexforms-product-wrap,
form.cart.flexforms-managed-cart .flexforms-cart-btn-wrap{
    float:none;
    clear:both;
}
form.cart.flexforms-managed-cart .single_add_to_cart_button:not(.flexforms-add-to-cart-btn){
    display:none!important;
}
form.cart.flexforms-managed-cart .flexforms-cart-btn-wrap[class*="flexforms-style-"] .flexforms-add-to-cart-btn,
form.cart.flexforms-managed-cart .flexforms-product-wrap[class*="flexforms-style-"] .flexforms-add-to-cart-btn{
    background:var(--ff-btn-bg);
    color:var(--ff-btn-text);
    border-color:transparent;
    font-size:var(--ff-cart-btn-size, 16px);
    border-radius:var(--ff-cart-btn-radius, 8px);
}
form.cart.flexforms-managed-cart .flexforms-cart-btn-wrap[class*="flexforms-style-"] .flexforms-add-to-cart-btn:hover,
form.cart.flexforms-managed-cart .flexforms-product-wrap[class*="flexforms-style-"] .flexforms-add-to-cart-btn:hover{
    background:var(--ff-btn-hover);
    color:var(--ff-btn-text);
}
form.cart.flexforms-managed-cart .flexforms-add-to-cart-btn{
    display:inline-flex;
}
