.purchase-main { width: min(1120px, 92vw); margin: 60px auto 90px; }
.purchase-main h1 { font-family: var(--display); font-size: clamp(2.5rem, 6vw, 4.5rem); line-height: 1.05; letter-spacing: -.04em; margin: 12px 0 22px; }
.purchase-main h1 em { font-family: var(--serif); font-weight: 600; color: var(--gold); letter-spacing: 0; }
.purchase-intro { max-width: 670px; font-size: 1.125rem; line-height: 1.65; }
.purchase-main h2 { font-family: var(--display); font-size: 1.4rem; line-height: 1.25; margin: 0 0 20px; }
.purchase-main p { line-height: 1.65; }
.purchase-main a:not(.button) { text-underline-offset: .2em; }
.purchase-layout { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 5vw, 64px); margin-top: 35px; align-items: start; }
.purchase-layout > * { min-width: 0; }
.checkout-item > div { min-width: 0; }
.checkout-item, .purchase-total { flex-wrap: wrap; }
.purchase-agreement > span { min-width: 0; }
.purchase-main h1, .purchase-main h2, .purchase-main h3 { overflow-wrap: anywhere; }
.purchase-summary, .download-card { border: 1px solid #6b5734; padding: clamp(22px, 3vw, 34px); background: #151410; }
.purchase-summary p { margin: 18px 0; }
.purchase-total { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-bottom: 22px; border-bottom: 1px solid #514329; }
.purchase-total strong { font-size: 2rem; color: var(--gold); }
.checkout-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 22px 0; border-bottom: 1px solid #514329; }
.checkout-item:first-child { padding-top: 0; }
.checkout-item h3 { font-family: var(--display); font-size: 1.25rem; line-height: 1.3; margin: 0 0 8px; }
.checkout-item p { margin: 0; color: #c6bca9; font-size: .9375rem; }
.checkout-item > strong { white-space: nowrap; font-size: 1.125rem; color: var(--gold); }
.purchase-layout section > .text-link { display: inline-block; margin-top: 22px; }
.purchase-agreement { display: flex; align-items: flex-start; gap: 12px; font-size: .9375rem; line-height: 1.6; margin: 25px 0; cursor: pointer; }
.purchase-agreement input { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 3px; accent-color: var(--gold); }
#checkout-pay { width: 100%; }
.purchase-main .button:disabled { opacity: .5; cursor: not-allowed; }
.purchase-error { color: #ffd3bd; border-left: 3px solid #bc795f; padding: 12px 16px; background: #2a1b17; overflow-wrap: anywhere; }
#purchase-status:not(:empty) { border: 1px solid #6b5734; padding: 16px 20px; margin: 22px 0; color: #dfd2b5; line-height: 1.6; }
.order-reference { margin: 26px 0 18px; font-size: .9375rem; overflow-wrap: anywhere; }
.receipt-actions, .download-links { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; }
.receipt-actions { margin-bottom: 30px; }
.download-card { margin: 22px 0; }
.download-card h2 { margin-bottom: 8px; }
.download-card > p { margin: 0 0 24px; color: #c6bca9; }
.download-links .button { min-height: 46px; gap: 12px; }
.download-links .button small { opacity: .75; font-size: .8125rem; }
.download-help { max-width: 780px; margin-top: 42px; }
.download-help p { margin: 16px 0; }
#recent-orders { margin-top: 32px; }
#recent-order-list { display: grid; gap: 12px; }
.recent-order { border: 1px solid #514329; padding: 16px; overflow-wrap: anywhere; }
[hidden] { display: none !important; }
@media (max-width: 700px) {
  .purchase-main { margin-top: 34px; width: 90vw; }
  .purchase-layout { grid-template-columns: 1fr; gap: 35px; }
  .purchase-main h1 { font-size: 2.8rem; }
  .purchase-intro { font-size: 1rem; }
  .download-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .download-links .button { padding: 13px 12px; font-size: .875rem; flex-direction: column; gap: 3px; }
  .download-links .download-full { grid-column: 1 / -1; flex-direction: row; }
  .receipt-actions .button { width: 100%; }
  .policy-header { gap: 20px; }
  .policy-header > a:last-child { max-width: 130px; text-align: right; font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
