/* FF_GUEST_CHECKOUT_REFINEMENT_20261007: readable forms and scroll-following cart. */
/* Preserve the established three-column desktop layout and its breakpoints. */
body.ff-cart-page .order-summary-payment-container { border-radius:16px; background:#fff; }
body.ff-cart-page .ecc-checkout-form { padding:12px!important; background:#f8fafc!important; border-radius:14px!important; }
body.ff-cart-page .ecc-form-section { margin-bottom:20px!important; }
body.ff-cart-page .ecc-form-section h3 { font-size:16px!important; color:#203952!important; margin-bottom:14px!important; }
body.ff-cart-page .ecc-form-row { gap:10px!important; margin-bottom:14px!important; }
body.ff-cart-page .ecc-form-group { min-width:0; }
body.ff-cart-page .ecc-form-group label { font-size:13px!important; font-weight:600; color:#334155!important; margin-bottom:6px!important; }
body.ff-cart-page .ecc-form-group input,
body.ff-cart-page .ecc-form-group select,
body.ff-cart-page .ff-state-combo__input { min-height:46px; font-size:16px!important; padding:11px 12px!important; border:1px solid #8795a7!important; background:#fff; color:#172033; box-sizing:border-box; }
body.ff-cart-page .ecc-form-group input:focus,
body.ff-cart-page .ff-state-combo__input:focus { outline:2px solid #245b93; outline-offset:2px; }
body.ff-cart-page .ecc-shipping-toggle-button { font-size:13px!important; color:#245b93; min-height:44px; display:flex; align-items:center; }
body.ff-cart-page #payment-form-container { padding:0!important; background:#fff!important; border:0!important; margin-top:18px!important; }
body.ff-cart-page #paypal_advanced_guest_form { padding:12px!important; border-radius:14px; box-shadow:none; }
body.ff-cart-page .pagg-form-header { margin-bottom:16px; }
body.ff-cart-page .pagg-form-title { font-size:20px; color:#172033; }
body.ff-cart-page .pagg-form-subtitle { color:#475569; font-size:14px; }
body.ff-cart-page .ff-native-card-name { height:66px!important; border-radius:10px!important; }
body.ff-cart-page .ff-card-billing { padding:10px; margin:16px 0; background:#f8fafc; border:1px solid #dce4ee; border-radius:12px; }
body.ff-cart-page .ff-card-billing .ff-card-billing-summary { color:#203952; font-size:14px; }
body.ff-cart-page .ff-card-billing .ff-card-billing-toggle { border-radius:8px; border-color:#8795a7; color:#245b93; }
body.ff-cart-page .ff-card-billing .ff-card-billing-fields input,
body.ff-cart-page .ff-card-billing .ff-card-billing-fields select { border-radius:8px; border-color:#8795a7; }
body.ff-cart-page .ff-card-billing .ff-card-billing-help { color:#475569; }
body.ff-cart-page .ff-card-billing .ff-card-billing-error,
body.ff-cart-page .ff-checkout-field-error { padding:8px 10px; margin:7px 0 0; border-left:3px solid #b42318; border-radius:5px; background:#fff1f0; color:#912018; font-size:13px; line-height:1.5; }
body.ff-cart-page .ecc-form-group [aria-invalid="true"],
body.ff-cart-page .ff-card-billing [aria-invalid="true"] { border-color:#b42318!important; box-shadow:0 0 0 1px #b42318!important; }
body.ff-cart-page .ff-checkout-field-error[hidden] { display:none!important; }
body.ff-cart-page .pcs-accepted-payments-note,
body.ff-cart-page .accepted-payments p { color:#475569!important; font-size:12px!important; }
body.ff-cart-page .ecc-checkout-button,
body.ff-cart-page .ecc-pay-now,
body.ff-cart-page .pcs-checkout-button-pay-now { background:linear-gradient(135deg,#167047,#12613e)!important; }
body.ff-cart-page .pcs-checkout-button-login { background:linear-gradient(135deg,#32659d,#244c7c)!important; }
body.ff-cart-page .ecc-checkout-button:focus-visible,
body.ff-cart-page .ecc-payment-button:focus-visible,
body.ff-cart-page .ecc-change-method-button:focus-visible { outline:3px solid #245b93!important; outline-offset:3px; }
@media (min-width:993px) {
  body.ff-cart-page .pcs-cart-items-column,
  body.ff-cart-page .pcs-cart-summary-column { position:sticky; top:var(--ff-cart-sticky-top,24px); align-self:flex-start; }
  body.ff-cart-page .pcs-cart-items-column.ff-cart-column-tall,
  body.ff-cart-page .pcs-cart-summary-column.ff-cart-column-tall { position:static; }
}
@media (max-width:992px) {
  body.ff-cart-page .pcs-cart-items-column,
  body.ff-cart-page .pcs-cart-summary-column { position:static; }
}
@media (max-width:480px) {
  body.ff-cart-page .order-summary-payment-container { padding:16px 12px!important; }
  body.ff-cart-page .ecc-checkout-form,
  body.ff-cart-page #paypal_advanced_guest_form { padding:12px!important; }
  body.ff-cart-page .ecc-form-row { gap:10px!important; }
  body.ff-cart-page .ff-card-billing { padding:10px; }
}
@media (prefers-reduced-motion:reduce) {
  body.ff-cart-page .ecc-container *,body.ff-cart-page .payment-icon { animation:none!important; transition:none!important; }
}

@media (min-width:1200px) {
  body.ff-cart-page .pcs-summary-totals-panel { position:sticky!important; top:var(--ff-cart-sticky-top,24px); align-self:flex-start; }
  body.ff-cart-page .pcs-summary-totals-panel.ff-cart-column-tall { position:static!important; }
}

body.ff-cart-page #paypal-guest-payment-status-container .status-error { background:#fff1f0; border-left:3px solid #b42318; border-radius:8px; padding:12px; color:#912018; }
body.ff-cart-page #paypal-guest-payment-status-container:has(.status-error) .status-success { display:none; }

/* FF_CARD_FIELD_COMPLETE_BORDERS_20261008: hosted input is 54px + 6px inset on each side. */
body.ff-cart-page #paypal_advanced_guest_form #paypal-guest-name-container,
body.ff-cart-page #paypal_advanced_guest_form #paypal-guest-card-number-container,
body.ff-cart-page #paypal_advanced_guest_form #paypal-guest-expiry-container,
body.ff-cart-page #paypal_advanced_guest_form #paypal-guest-cvv-container { height:66px!important; min-height:66px!important; }
body.ff-cart-page #paypal_advanced_guest_form #paypal-guest-name-container { padding:6px!important; overflow:visible; }
body.ff-cart-page #paypal_advanced_guest_form .ff-native-card-name { height:54px!important; padding:14px 12px!important; font-size:16px!important; border-radius:10px!important; }
body.ff-cart-page #paypal_advanced_guest_form iframe.zoid-visible { height:66px!important; min-height:66px!important; max-height:66px!important; }
/* Keep the full subtotal and readable product details inside narrow item columns. */
@media (max-width: 1199px) {
  .pcs-cart-items-column .pcs-cart-table { display: block; width: 100%; min-width: 0; }
  .pcs-cart-items-column .pcs-cart-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .pcs-cart-items-column .pcs-cart-table tbody { display: block; width: 100%; }
  .pcs-cart-items-column .pcs-cart-table tbody tr { display: grid; grid-template-columns: 44px 80px minmax(0,1fr); gap: 8px; padding: 16px 0; width: 100%; box-sizing: border-box; }
  .pcs-cart-items-column .pcs-cart-table td { width: auto; min-width: 0; padding: 0; border: 0; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-remove { grid-column: 1; grid-row: 1 / span 2; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-remove button { min-width: 44px; min-height: 44px; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-artwork { grid-column: 2; grid-row: 1 / span 2; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-artwork img { max-width: 80px; height: auto; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-name { grid-column: 3; grid-row: 1; overflow-wrap: anywhere; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-subtotal { grid-column: 3; grid-row: 2; text-align: left; white-space: nowrap; align-self: start; font-weight: 700; }
  .pcs-cart-items-column .pcs-cart-table .pcs-product-subtotal::before { content: 'Subtotal '; font-size: 12px; font-weight: 400; }
}
/* Small cart labels must stay readable on the light summary and product cards. */
.pcs-summary-totals-panel span { color: #065f46 !important; opacity: 1 !important; }
.pcs-summary-totals-panel .pcs-coupon-label,
.pcs-cart-items-column .pcs-set-name-label,
.pcs-cart-items-column .pcs-product-name dt,
.pcs-cart-items-column .pcs-product-name dd { color: #475569 !important; }
.pcs-cart-items-column .pcs-product-name button { color: #315d99 !important; }
.pcs-cart-items-column .pcs-item-config-preview.has-fade::after { display: none; }
#paypal-adv-guest-pay-btn,
#paypal-adv-pay-btn,
#stripe-submit-button {
  background: linear-gradient(90deg, #147075, #2f5ac1) !important;
  color: #fff !important;
}

/* Empty-cart guidance must remain readable on its white card. */
body.ff-cart-page .pcs-empty-cart-message, body.ff-cart-page .pcs-saved-carts-login { color:#475569!important; }
body.ff-cart-page .pcs-empty-cart-title, body.ff-cart-page .pcs-saved-carts-login a { color:#315d99!important; }
body.ff-cart-page .pcs-return-to-shop .pcs-button-primary { background:#315d99!important; color:#fff!important; }

body.ff-cart-page .pcs-summary-payment-panel #shipping-carousel-wrapper { margin:0 0 16px; }
body.ff-cart-page .pcs-summary-payment-panel .deliver-box { background:#fff; }

body.ff-cart-page #addressModal .address-modal-content { box-sizing:border-box; max-height:calc(100dvh - 120px); overflow-y:auto; }
body.ff-cart-page #closeAddressModal { min-height:44px; min-width:44px; color:#475569; }
body.ff-cart-page #addressForm .btn-submit { min-height:44px; background:#315d99!important; color:#fff!important; }
/* A hidden, dragged chat panel must not extend the document beyond its viewport. */
body.ff-cart-page .ct-widget-root.is-minimized .ct-widget-panel { display:none!important; }

/* Invisible carousel slides must not intercept edits or other address actions. */
body.ff-cart-page #shipping-carousel-wrapper .address:not(.active) { pointer-events:none; }
body.ff-cart-page #shipping-carousel-wrapper .address.active { pointer-events:auto; }

/* Keep processor choices inside their column instead of magnifying over adjacent controls. */
body.ff-cart-page .payment-icon .ecc-tile { transform:translate3d(0,0,0) scale(.55)!important; }
body.ff-cart-page .payment-icon { animation:none!important; transform:none!important; }
body.ff-cart-page #shipping-carousel-wrapper .address-line { white-space:normal!important; overflow-wrap:anywhere; }

body.ff-cart-page #paypal_advanced_form { padding:16px 12px!important; border:1px solid #dce4ee!important; border-radius:14px!important; }
body.ff-cart-page #payment-form-title-paypal-adv { display:block!important; font-size:18px; color:#172033; margin:0 0 16px; }
body.ff-cart-page #paypal_advanced_form #paypal-card-number-container,
body.ff-cart-page #paypal_advanced_form #paypal-expiry-container,
body.ff-cart-page #paypal_advanced_form #paypal-cvv-container { height:66px!important; min-height:66px!important; }
body.ff-cart-page #paypal_advanced_form iframe.zoid-visible { height:66px!important; min-height:66px!important; max-height:66px!important; }
body.ff-cart-page #paypal_advanced_form .ff-native-card-name-wrap { padding:6px; height:66px!important; box-sizing:border-box; }
body.ff-cart-page #paypal_advanced_form .ff-native-card-name { width:100%; height:54px!important; padding:12px; border:1px solid #8795a7; background:#fff; color:#172033; font-size:16px; }
body.ff-cart-page #paypal_advanced_form .ff-native-card-name:focus { outline:2px solid #245b93; outline-offset:2px; }

body.ff-cart-page #payment-form-title-paypal-adv { display:none!important; }
body.ff-cart-page .ff-card-payment-header { text-align:center; margin-bottom:16px; }
body.ff-cart-page .ff-card-payment-header h3 { color:#172033; font-size:20px; margin:10px 0 6px; }
body.ff-cart-page .ff-card-payment-header p { color:#475569; font-size:14px; margin:0; }
body.ff-cart-page .ff-card-payment-lock { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:#eef5fb; color:#245b93; }
body.ff-cart-page #paypal_advanced_form .ff-native-card-name:focus { outline:2px solid #245b93!important; box-shadow:none!important; }

body.ff-cart-page .ct-widget-root.is-minimized { contain:paint; overflow:clip; overflow-clip-margin:8px; }

/* Keep the native backing select visually hidden after form input styling. */
body.ff-cart-page .ecc-form-group select.ff-state-combo__native { width:1px!important; min-width:0!important; height:1px!important; min-height:0!important; padding:0!important; left:0!important; top:0!important; }
@media(max-width:1199px) { body.ff-cart-page .pcs-cart-items-column .pcs-cart-table thead { contain:strict; } }
