.quantity-stepper {
  display: inline-grid;
  grid-template-columns: 2.75rem minmax(3.2rem, 4.2rem) 2.75rem;
  align-items: stretch;
  min-height: 2.75rem;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--linea, #7c8c84) 70%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--fondo, #07120e) 84%, white 4%);
}
.quantity-stepper button,
.quantity-stepper input { border: 0; background: transparent; color: inherit; font: inherit; }
.quantity-stepper button { cursor: pointer; font-size: 1.3rem; transition: background .18s ease, color .18s ease; }
.quantity-stepper button:hover,
.quantity-stepper button:focus-visible { background: color-mix(in srgb, #36d7a7 18%, transparent); color: #46e1b2; outline: none; }
.quantity-stepper input { width: 100%; text-align: center; font-weight: 800; appearance: textfield; }
.quantity-stepper input::-webkit-inner-spin-button { appearance: none; }
.quantity-stepper-small { grid-template-columns: 2.25rem 2.8rem 2.25rem; min-height: 2.35rem; }
.catalog-quick-add { display: flex; gap: .65rem; align-items: center; justify-content: space-between; padding: 0 1rem 1rem; position: relative; z-index: 3; }
.cart-add-button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; border: 1px solid #2ab98f; border-radius: 999px; background: #2dc99b; color: #04100c; min-height: 2.45rem; padding: .65rem 1rem; font-weight: 850; cursor: pointer; }
.cart-add-button:hover { background: #45ddb0; transform: translateY(-1px); }
.cart-add-button svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.catalog-sold-out { margin: 0 1rem 1rem; font-size: .85rem; opacity: .72; }
.product-add-modern { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.product-add-modern > label { flex-basis: 100%; }
.product-add-modern .cart-add-button { min-height: 2.8rem; }
.cantidad-carrito { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.cantidad-carrito > label { flex-basis: 100%; }
.cantidad-carrito .quitar { border: 0; background: transparent; color: #e88787; text-decoration: underline; cursor: pointer; }
.cart-payment-box { border: 1px solid color-mix(in srgb, #36d7a7 38%, var(--linea, #586b62)); border-radius: 1.25rem; padding: 1.1rem; background: linear-gradient(160deg, color-mix(in srgb, #36d7a7 8%, transparent), transparent 52%); }
.payment-methods { display: grid; gap: .7rem; border: 0; padding: 0; margin: 1rem 0; }
.payment-method-card { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: .8rem; border: 1px solid color-mix(in srgb, var(--linea, #7c8c84) 72%, transparent); border-radius: 1rem; padding: .95rem; cursor: pointer; }
.payment-method-card:has(input:checked) { border-color: #36d7a7; box-shadow: 0 0 0 2px color-mix(in srgb, #36d7a7 18%, transparent); }
.payment-method-card span { display: grid; gap: .24rem; }
.payment-method-card strong { display: flex; flex-wrap: wrap; gap: .45rem; align-items: center; }
.payment-method-card strong em { border-radius: 999px; padding: .16rem .45rem; background: #36d7a7; color: #06130f; font-size: .65rem; font-style: normal; text-transform: uppercase; letter-spacing: .05em; }
.payment-method-card small,
.payment-method-card i { opacity: .76; font-style: normal; line-height: 1.45; }
.payment-reward { display: flex; gap: .7rem; align-items: center; margin: .9rem 0; padding: .8rem; border-radius: .9rem; background: color-mix(in srgb, #d9ad55 14%, transparent); }
.payment-reward > span { font-size: 1.55rem; color: #d9ad55; }
.payment-reward p { display: grid; gap: .1rem; margin: 0; }
.payment-reward small { opacity: .75; }
.receipt-choice { display: grid; gap: .5rem; margin: 1rem 0; padding: .9rem; border-radius: .9rem; background: color-mix(in srgb, var(--linea, #7c8c84) 11%, transparent); }
.receipt-choice > label:first-child { display: flex; align-items: flex-start; gap: .6rem; font-weight: 700; }
.receipt-choice input[type="email"] { width: 100%; min-height: 2.7rem; border: 1px solid var(--linea, #7c8c84); border-radius: .7rem; padding: .65rem .75rem; background: var(--fondo, #07120e); color: inherit; }
.payment-submit { width: 100%; display: flex; gap: .55rem; align-items: center; justify-content: center; margin-top: 1rem; }
.payment-submit svg { width: 1.15rem; height: 1.15rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.payment-handoff { min-height: 62vh; display: grid; place-items: center; padding: 2rem 1rem; }
.payment-handoff-card { width: min(34rem, 100%); text-align: center; border: 1px solid color-mix(in srgb, #36d7a7 40%, var(--linea, #586b62)); border-radius: 1.5rem; padding: clamp(1.5rem, 5vw, 3rem); background: var(--fondo, #07120e); box-shadow: 0 1.5rem 5rem rgba(0,0,0,.18); }
.payment-secure-icon { display: inline-grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: #36d7a7; color: #052017; font-size: 1.5rem; font-weight: 900; }
.order-points { padding: .7rem .85rem; border-radius: .75rem; background: color-mix(in srgb, #d9ad55 14%, transparent); font-weight: 750; }
@media (max-width: 680px) {
  .catalog-quick-add { align-items: stretch; }
  .catalog-quick-add .cart-add-button { flex: 1; }
  .product-add-modern .cart-add-button { flex: 1 1 12rem; }
}
