/* Cart discounts: saved codes are verified by Stripe, not priced in the browser. */
.promotion-form {margin: 24px 0; padding-bottom: 24px; border-bottom: 1px solid var(--line);}
.promotion-form > label {display: block; margin-bottom: 10px; font-size: 15px; font-weight: 600;}
.promotion-entry {display: flex; gap: 8px;}
.promotion-entry input {min-width: 0; width: 100%; padding: 13px 12px; border: 1px solid #89917f; border-radius: 0; background: var(--paper); color: var(--ink); font: 16px var(--sans);}
.promotion-entry input:focus {outline: 2px solid var(--ink); outline-offset: 2px;}
.promotion-entry input[aria-invalid="true"] {border-color: #903d2f;}
.promotion-save {flex-shrink: 0; padding: 12px 15px; border: 1px solid var(--ink); background: var(--ink); color: var(--paper); font: 500 13px var(--sans); cursor: pointer;}
.promotion-save:hover {background: #3e4a3b;}
.promotion-hint, .promotion-status {margin: 10px 0 0; font-size: 13px; line-height: 1.6; color: #4c5647;}
.promotion-status:empty {display: none;}
.promotion-saved {display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding: 10px 12px; background: #eef0e5; border: 1px solid #a0aa92; font-size: 13px;}
.promotion-saved > span {overflow-wrap: anywhere; font-weight: 600; letter-spacing: .04em;}
.promotion-saved button {flex-shrink: 0; padding: 6px 0 6px 8px; border: 0; background: transparent; color: var(--ink); font: 13px var(--sans); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;}
.promotion-summary {display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 20px; font-size: 13px; line-height: 1.6;}
.promotion-summary > :last-child {text-align: right; color: #4c5647;}
.sandbox-checkout {border-top: 1px solid var(--line); margin-top: 28px; padding-top: 22px;}
.sandbox-checkout .sandbox-label {font-size: 11px; font-weight: 600; letter-spacing: .08em; color: var(--ink);}
.sandbox-checkout p {font-size: 13px; line-height: 1.65; color: #4c5647; margin: 0 0 12px;}
.sandbox-checkout .outline-button {width: 100%; text-align: center;}
.promotion-saved[hidden], .promotion-summary[hidden], .sandbox-checkout[hidden] {display: none;}
@media (max-width: 400px) {
  .promotion-entry {flex-wrap: wrap;}
  .promotion-save {width: 100%; min-height: 44px;}
  .promotion-saved {gap: 8px;}
}
