.fsa-customizer{
    --fsa-navy:#041c66;
    --fsa-teal:#06bed7;
    --fsa-teal-dark:#05a6bc;
    --fsa-addon:#2c407f;
    --fsa-text:#1c1c1c;
    --fsa-muted:#8a8a8a;
    --fsa-border:#e2e2e2;
    max-width:100%;margin:20px 0;padding:0;background:#fff;color:var(--fsa-text);
    font-family:inherit;box-sizing:border-box;
}
.fsa-customizer *{box-sizing:border-box}

.fsa-buy-save{margin:0 0 12px;font-size:15px;line-height:1.2;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#111}

/* ---- Quantity tier cards ---- */
.fsa-qty-list{display:flex;flex-direction:column;gap:8px}
.fsa-qty-row{
    display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;
    min-height:44px;padding:11px 16px;border:1px solid var(--fsa-border);border-radius:5px;
    background:#fff;cursor:pointer;font-size:13px;color:#222;transition:background .12s ease,border-color .12s ease,color .12s ease;
}
.fsa-qty-row:hover{border-color:#c9c9c9}
.fsa-qty-row.is-selected{background:var(--fsa-navy);border-color:var(--fsa-navy);color:#fff}
.fsa-qty-row input{position:absolute;opacity:0;pointer-events:none}
.fsa-qty-radio{width:15px;height:15px;border:1.5px solid #b7b7b7;border-radius:50%;background:#fff;display:block;position:relative}
.fsa-qty-row.is-selected .fsa-qty-radio{border-color:#fff;background:transparent}
.fsa-qty-row.is-selected .fsa-qty-radio:after{content:"";position:absolute;inset:3px;border-radius:50%;background:#fff}
.fsa-qty-text{min-width:0}
.fsa-qty-name{font-weight:400}
.fsa-qty-row.is-selected .fsa-qty-name{font-weight:700}
.fsa-qty-save{color:inherit}
.fsa-qty-pricewrap{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;white-space:nowrap;text-align:right}
.fsa-qty-compare{font-size:12px;color:#9a9a9a;text-decoration:line-through;margin-right:6px}
.fsa-qty-row:not(.is-selected) .fsa-qty-pricewrap{flex-direction:row;align-items:baseline}
.fsa-qty-price{font-weight:700;font-size:13px;color:#1a1a1a}
.fsa-qty-row.is-selected .fsa-qty-price{color:#fff;font-size:17px}
.fsa-qty-total{display:none;font-size:11px;font-weight:400;color:#fff;margin-top:1px}
.fsa-qty-row.is-selected .fsa-qty-total{display:block}
.fsa-qty-total strong{font-weight:700}

.fsa-selected-quantity{display:flex;align-items:center;gap:12px;margin:12px 0 6px;padding:10px 12px;border:1px solid var(--fsa-border);background:#fafafa;border-radius:4px}
.fsa-selected-quantity-label{font-size:13px;font-weight:700;color:#111}
.fsa-quantity-control{display:inline-flex;align-items:center;border:1px solid #cfcfcf;border-radius:4px;overflow:hidden;background:#fff}
.fsa-quantity-step{width:34px;height:36px;border:0;background:#041c66;color:#fff;font-size:18px;line-height:1;cursor:pointer}
.fsa-quantity-step:hover{background:#082a86}
#fsa_quantity_input{width:64px;height:36px;border:0;border-left:1px solid #ddd;border-right:1px solid #ddd;text-align:center;font-size:14px;font-weight:600;-moz-appearance:textfield}
#fsa_quantity_input::-webkit-outer-spin-button,#fsa_quantity_input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.fsa-selected-quantity-range{font-size:12px;color:#777}

/* ---- Fields ---- */
.fsa-field{margin-top:20px}
.fsa-field-label{display:block;margin:0 0 8px;font-size:13px;font-weight:400;color:#333;line-height:1.35}
.fsa-required{color:#e02222;margin-left:2px}
.fsa-select{width:100%;height:44px;padding:8px 34px 8px 12px;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#555;font-size:13px;appearance:auto}

/* ---- Placement ---- */
.fsa-placement-section{margin-top:24px}
.fsa-section-title{margin:0 0 14px;font-size:17px;line-height:1.2;font-weight:700;text-transform:uppercase;color:#111}
.fsa-placement-block{margin-bottom:6px}
.fsa-placement-options{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}
.fsa-check-option{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:13px;line-height:1.3;color:#333;width:max-content;max-width:100%}
.fsa-check-option input,.fsa-back-toggle input,.fsa-same-artwork input{position:absolute;opacity:0;pointer-events:none}
.fsa-check-box{width:16px;height:16px;border:1px solid #c4c4c4;border-radius:3px;background:#fff;display:inline-block;position:relative;flex:0 0 16px}
.fsa-check-option input:checked + .fsa-check-box,
.fsa-back-toggle input:checked + .fsa-check-box,
.fsa-same-artwork input:checked + .fsa-check-box{background:var(--fsa-navy);border-color:var(--fsa-navy)}
.fsa-check-option input:checked + .fsa-check-box:after,
.fsa-back-toggle input:checked + .fsa-check-box:after,
.fsa-same-artwork input:checked + .fsa-check-box:after{content:"";position:absolute;left:5px;top:1.5px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.fsa-addon{color:var(--fsa-addon);font-size:12px;margin-left:2px}

.fsa-back-toggle{display:flex;align-items:center;gap:9px;margin:6px 0 0;font-size:13px;color:#555;cursor:pointer}

/* ---- Side blocks (front / back upload) ---- */
.fsa-side-block{margin-top:22px}
.fsa-side-heading{margin:0 0 12px;font-size:16px;line-height:1;font-weight:400;text-transform:uppercase;color:#171717}
.fsa-side-block--back .fsa-side-heading{margin-top:20px}
.fsa-back-placement-label{margin-bottom:8px}

.fsa-dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:118px;border:2px dashed #1c1c1c;border-radius:2px;background:#fff;cursor:pointer;text-align:center;padding:20px;position:relative}
.fsa-dropzone:hover{border-color:var(--fsa-teal);background:#fafeff}
.fsa-dropzone.is-dragover{border-color:var(--fsa-teal);background:#f3fdff}
.fsa-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.fsa-upload-icon{color:var(--fsa-teal);line-height:1;display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.fsa-dropzone-text{font-size:13px;color:#7d7d7d}
.fsa-file-name{font-size:12px;color:#444;margin-top:6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fsa-file-name:empty{display:none}

.fsa-same-artwork{display:flex;align-items:center;gap:9px;margin-top:12px;font-size:13px;color:#555;cursor:pointer}

/* ---- Comments ---- */
.fsa-comments-field{margin-top:24px}
.fsa-comments-label{font-size:16px;color:#111;margin-bottom:10px}
.fsa-comments{width:100%;min-height:88px;padding:10px 12px;border:1px solid #d9d9d9;border-radius:4px;font-size:13px;font-family:inherit;resize:vertical}

/* ---- Summary ---- */
.fsa-summary{display:flex;align-items:center;gap:10px;margin-top:22px}
.fsa-summary-label{font-size:15px;font-weight:500;color:#333}
.fsa-summary strong{font-size:18px;line-height:1.2;color:#111}
.fsa-breakdown{display:flex;flex-wrap:wrap;gap:4px 12px;margin-left:8px;font-size:11px;color:#777}
.fsa-breakdown div{white-space:nowrap}
.fsa-breakdown strong{font-size:11px}

/* The customizer provides the visible quantity control. Hide WooCommerce's native quantity field on configured products while retaining the native input value for form submission. */
.fsa-customizer ~ .quantity,
form.cart.fsa-cart-styled .quantity{display:none !important}

/* ---- Native Woo qty stepper + Add To Cart (scoped to FSA products) ---- */
form.cart.fsa-cart-styled .quantity{display:none !important}
form.cart.fsa-cart-styled .fsa-qty-step{width:34px;border:none;background:var(--fsa-navy);color:#fff;font-size:18px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
form.cart.fsa-cart-styled .fsa-qty-step:hover{background:#082a86}
form.cart.fsa-cart-styled .quantity input.qty{width:52px;height:38px;text-align:center;border:1px solid var(--fsa-border);border-left:0;border-right:0;border-radius:0;margin:0;-moz-appearance:textfield;font-size:14px}
form.cart.fsa-cart-styled .quantity input.qty::-webkit-outer-spin-button,
form.cart.fsa-cart-styled .quantity input.qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
form.cart.fsa-cart-styled .single_add_to_cart_button{
    background:var(--fsa-teal);border-color:var(--fsa-teal);color:#fff;border-radius:4px;
    font-weight:600;letter-spacing:.01em;padding:11px 40px;margin-left:14px;text-transform:none;
}
form.cart.fsa-cart-styled .single_add_to_cart_button:hover{background:var(--fsa-teal-dark);border-color:var(--fsa-teal-dark)}

@media (max-width:700px){
    .fsa-qty-row{grid-template-columns:20px minmax(0,1fr) auto;padding:10px 12px}
    .fsa-summary{align-items:flex-start;flex-wrap:wrap}
    .fsa-breakdown{width:100%;margin-left:0;margin-top:4px}
    form.cart.fsa-cart-styled .single_add_to_cart_button{padding:11px 24px}
}

/* Ensure the real WooCommerce Add to Cart button remains visible. */
form.cart .single_add_to_cart_button{display:inline-block !important;visibility:visible !important;opacity:1 !important;position:relative !important;z-index:2;}
form.cart .single_add_to_cart_button.disabled,
form.cart .single_add_to_cart_button.wc-variation-selection-needed{cursor:not-allowed;}

/* V1.5.5: placement is one choice per side, while preserving the custom check-style UI. */
.fsa-placement-options input[type="checkbox"] { position:absolute; opacity:0; pointer-events:none; }


/* V1.6.2: guaranteed visible custom CTA inside the configurator. */
.fsa-customizer-actions{display:flex;align-items:center;gap:14px;margin-top:18px;padding-top:14px;border-top:1px solid var(--fsa-border)}
.fsa-action-quantity{font-size:14px;color:#222;min-width:28px;text-align:center}
.fsa-custom-add-to-cart{appearance:none;border:0;border-radius:4px;background:#7b4ab7;color:#fff;font-size:16px;font-weight:700;line-height:1.2;padding:11px 24px;cursor:pointer;transition:background .15s ease,opacity .15s ease}
.fsa-custom-add-to-cart:hover{background:#693a9e}
.fsa-custom-add-to-cart:disabled,.fsa-custom-add-to-cart.is-disabled{opacity:1;cursor:pointer}
form.cart.fsa-cart-styled .single_add_to_cart_button{display:none !important}
@media (max-width:700px){.fsa-customizer-actions{gap:10px}.fsa-custom-add-to-cart{width:auto}}

.fsa-price-lock-note{font-size:12px;opacity:.7;font-weight:400;}

.fsa-cart-message{width:100%;margin:0 0 10px;color:#b42318;font-size:13px;font-weight:600;}
