.fw-express {
  --homecat-purple: #5e2ee6;
  --homecat-purple-dark: #261268;
  --homecat-purple-soft: #f2efff;
  --homecat-teal: #14b8b8;
  --homecat-ink: #17132b;
  --homecat-muted: #6c6880;
  --homecat-line: #e9e6f3;
  --fw-action: var(--homecat-purple, #5e2ee6);
  --fw-action-hover: var(--homecat-purple-dark, #261268);
  --fw-info: var(--homecat-teal, #14b8b8);
  --fw-info-strong: #087f7f;
  --fw-surface: var(--homecat-purple-soft, #f2efff);
  --fw-border: var(--homecat-line, #e9e6f3);
  --fw-heading: var(--homecat-ink, #17132b);
  --fw-text: var(--homecat-ink, #17132b);
  --fw-muted: var(--homecat-muted, #6c6880);
  box-sizing: border-box;
  width: 100%;
  margin: 1rem 0 0;
  padding: 1rem;
  border: 1px solid var(--fw-border);
  border-radius: .75rem;
  background: #fff;
  color: var(--fw-text);
  text-align: left;
  box-shadow: 0 1px 2px rgba(23, 19, 43, .04);
}

.fw-express__eyebrow {
  margin-bottom: .25rem;
  color: var(--fw-action);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.fw-express__title {
  margin: 0 0 .75rem;
  color: var(--fw-heading);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
}

.fw-express__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  padding: .75rem 1rem;
  border: 1px solid var(--fw-action);
  border-radius: .65rem;
  background: var(--fw-action);
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.25;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(94, 46, 230, .18);
  transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.fw-express__label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}

.fw-express__label > i {
  flex: 0 0 auto;
}

.fw-express__button:hover,
.fw-express__button:active {
  border-color: var(--fw-action-hover);
  background: var(--fw-action-hover);
  color: #fff;
  box-shadow: 0 6px 16px rgba(94, 46, 230, .24);
}

.fw-express__button:focus-visible {
  outline: 3px solid var(--fw-info-strong);
  outline-offset: 2px;
  box-shadow: 0 0 0 2px #fff;
}

.fw-express__button.is-loading {
  cursor: wait;
  opacity: .7;
}

.fw-express__button:disabled {
  border-color: var(--fw-muted);
  background: var(--fw-muted);
  color: #fff;
  cursor: not-allowed;
}

.fw-express__notice,
.fw-express__unavailable {
  margin: .75rem 0 0;
  padding: .75rem;
  border: 0;
  border-radius: .65rem;
  background: var(--fw-surface);
  color: var(--fw-muted);
  font-size: .875rem;
  line-height: 1.5;
}

.fw-express__notice strong,
.fw-express__notice span {
  display: block;
}

.fw-express__notice strong {
  margin-bottom: .2rem;
}

/* Cart Express: compact CTA holder inside .text-sm-center, matching the native
   Commander button. Cardless — no border/background/padding/radius/max-width. */
.fw-express.fw-express--cart {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  max-width: none;
  width: auto;
  margin: .5rem 0 0;
  text-align: center;
}

/* Compact Metronic action for the cart recap. */
.fw-express--cart .fw-express__button {
  display: inline-block;
  width: auto;
  min-height: 40px;
  padding: .625rem 1.25rem;
  border-width: 1px;
  border-radius: .5rem;
  font-size: 14px;
  font-weight: 700;
  line-height: 16px;
  text-align: center;
}

.fw-express--cart .fw-express__button:not(:disabled) {
  border-color: var(--fw-action);
  background: var(--fw-action);
  color: #fff;
}

.fw-express--cart .fw-express__button:hover:not(:disabled),
.fw-express--cart .fw-express__button:active:not(:disabled) {
  border-color: var(--fw-action-hover);
  background: var(--fw-action-hover);
  color: #fff;
}

/* Cart page: place the PayPal action below the detailed cart card. */
body#cart #main .cart-grid-body > .fw-express--cart {
  display: block;
  width: 100%;
  max-width: none;
  margin: .75rem 0 0;
  text-align: center;
}

body#cart #main .cart-grid-body > .fw-express--cart .fw-express__form {
  display: block;
  width: 100%;
  max-width: none;
}

body#cart #main .cart-grid-body > .fw-express--cart .fw-express__button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 48px;
}

body#cart #main .cart-grid-body > .fw-express--cart .fw-express__label {
  width: 100%;
}

@media (max-width: 991px) {
  body#cart #main .cart-grid-body > .fw-express--cart {
    text-align: center;
  }

  body#cart #main .cart-grid-body > .fw-express--cart .fw-express__form {
    display: block;
    width: 100%;
  }

}

@media (max-width: 575px) {
  .fw-express {
    padding: .875rem;
  }

  .fw-express__title {
    font-size: 1rem;
  }
}

/* Product recap: render the PayPal CTA inline inside the recap panel, with no
   separate card around it. The cart view (.fw-express--cart) is cardless too
   and matches the native Commander button. */
.fw-express--product {
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  max-width: none;
  width: 100%;
  margin: .75rem 0 0;
}

/* Product PayPal CTA: Metronic primary-action polish.
   Scoped to .fw-express--product only — the cart Express CTA is styled
   separately for the compact recap layout. */
.fw-express--product .fw-express__button:not(:disabled) {
  width: 100%;
  min-height: 50px;
  padding: .92rem 1.05rem;
  border: 1px solid var(--fw-action);
  border-radius: .65rem;
  background: var(--fw-action);
  color: #fff;
  font-weight: 700;
  text-transform: none;
  box-shadow: 0 4px 14px rgba(94, 46, 230, .22);
}

.fw-express--product .fw-express__button:hover:not(:disabled),
.fw-express--product .fw-express__button:active:not(:disabled) {
  border-color: var(--fw-action-hover);
  background: var(--fw-action-hover);
  color: #fff;
}

.fw-express--product .fw-express__button:focus-visible {
  box-shadow: 0 0 0 2px #fff;
}

/* Product mobile recap contract. Only this module owns its payment action. */
@media (max-width: 767px) {
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product { margin: 12px 0 0; }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__button {
    box-sizing: border-box; display: flex; align-items: center; justify-content: flex-start;
    width: 100%; min-height: var(--euray-purchase-height, 56px); height: auto;
    padding: 8px var(--euray-purchase-padding, 16px);
    border: 1px solid #e1e6e7; border-radius: var(--euray-purchase-radius, 14px);
    background: #fff; color: #142122; box-shadow: none;
    font-family: inherit; font-size: var(--euray-purchase-font-size, 15px);
    font-weight: var(--euray-purchase-weight, 600); line-height: 1.35; text-align: left;
  }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__label {
    justify-content: flex-start; gap: var(--euray-purchase-gap, 8px); width: 100%; min-width: 0; font: inherit;
  }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__label > i {
    flex: 0 0 var(--euray-purchase-icon-size, 20px); width: var(--euray-purchase-icon-size, 20px);
    font-size: var(--euray-purchase-icon-size, 20px); text-align: center;
  }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__button:hover:not(:disabled) { background: #f8f9fc; border-color: #b9c5c7; color: #142122; }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__button:focus-visible { outline: 3px solid #007a80; outline-offset: 3px; }
  body#product.lxo-recap-enabled .lglg-product-page .lxo-recap-sheet .fw-express--product .fw-express__button:disabled { opacity: .5; cursor: not-allowed; }
}
