.checkout-page { background: #0c0e10; color: #eef0f2; }
.checkout-page .site-header { background: #0c0e10ef; border-bottom: 1px solid var(--line); }
.checkout-main { width: min(76rem, calc(100% - 2 * var(--pad))); margin: 0 auto; padding: 8rem 0 4rem; }
.draft-notice { margin: 0 0 2.5rem; padding: .9rem 1.15rem; border: 1px solid #8c744945; background: #e5c6970a; color: #e5c697; font-size: .875rem; line-height: 1.6; border-radius: .4rem; }
.checkout-title { margin-bottom: 2.5rem; }
.checkout-title .eyebrow { color: #e5c697; font-size: .875rem; }
.checkout-title h1 { margin: .6rem 0 1rem; font-size: clamp(2.25rem, 4.5vw, 4rem); line-height: 1.15; letter-spacing: -.035em; }
.checkout-title > p:last-child { margin: 0; color: #b6bdc4; font-size: 1.125rem; }
.checkout-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.form-section { min-width: 0; margin: 0 0 2rem; padding: 1.75rem; border: 1px solid #30363b; background: #15191d; border-radius: .6rem; }
.form-section > legend { padding: 0 .65rem; font-size: 1.25rem; font-weight: 700; }
.field-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.25rem; }
.field-grid label { display: grid; gap: .55rem; min-width: 0; font-size: 1rem; }
.field-full { grid-column: 1 / -1; }
.field-grid input, .field-grid textarea, .field-grid select { min-width: 0; width: 100%; border: 1px solid #515a63; border-radius: .3rem; padding: .8rem .9rem; color: #fff; font: inherit; font-size: 1rem; line-height: 1.5; background: #0c1014; color-scheme: dark; }
.field-grid textarea { resize: vertical; }
.field-grid input:focus, .field-grid textarea:focus, .field-grid select:focus { outline: 2px solid #e5c697; outline-offset: 2px; }
.field-grid small { font-size: .875rem; line-height: 1.5; color: #aeb6be; }
.invoice-options { display: flex; gap: .75rem; margin-bottom: 1.5rem; }
.invoice-options label { display: flex; gap: .6rem; align-items: center; min-height: 3rem; padding: .65rem 1rem; border: 1px solid #4e565f; border-radius: .3rem; cursor: pointer; }
.invoice-options label:has(input:checked) { border-color: #c8a670; background: #e5c69710; }
.checkout-page input[type=radio], .checkout-page input[type=checkbox] { accent-color: #e5c697; width: 1.15rem; height: 1.15rem; flex-shrink: 0; }
.company-fields { margin: 0 0 1.5rem; padding: 0 0 1.5rem; border: 0; border-bottom: 1px solid var(--line); }
.company-fields[hidden] { display: none; }
.form-finish { padding: 0 .25rem; }
.requirements-brief { padding: 1.25rem; margin-bottom: 1.5rem; border: 1px solid #746244; border-radius: .4rem; background: #e5c69708; }
.requirements-brief strong { font-size: 1.125rem; }
.requirements-brief p { margin: .6rem 0 .75rem; font-size: 1rem; color: #c4cbd1; line-height: 1.65; }
.requirements-link { padding: .25rem 0; border: 0; background: none; color: #e5c697; font-size: 1rem; text-decoration: underline; text-underline-offset: .25rem; cursor: pointer; }
.requirements-link:focus-visible { outline: 2px solid #e5c697; outline-offset: 4px; }
.requirements-dialog ul { padding-left: 1.25rem; font-size: 1rem; line-height: 1.8; color: #c4cbd1; }
.package-confirm { display: flex; gap: .8rem; align-items: start; font-size: 1rem; line-height: 1.6; margin-bottom: 1.5rem; }
.package-confirm input { margin-top: .2rem; }
.checkout-button { display: inline-flex; align-items: center; justify-content: center; min-height: 3.6rem; padding: .9rem 1.25rem; width: 100%; border: 1px solid #e5c697; border-radius: .3rem; background: #e5c697; color: #15110b; font-size: 1rem; font-weight: 750; line-height: 1.5; text-decoration: none; cursor: pointer; }
.checkout-button:hover { background: #fae0bb; border-color: #fae0bb; }
.checkout-button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.checkout-button.secondary { background: transparent; border-color: #626c75; color: #fff; }
.form-footnote { color: #b0b9c0; font-size: .875rem; line-height: 1.6; margin: 1rem 0 0; }
.checkout-summary { position: sticky; top: 7rem; overflow: hidden; border: 1px solid #6e5a3d; border-radius: .6rem; background: #181b1e; }
.summary-image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
.summary-body { padding: 1.75rem; }
.summary-body .eyebrow { color: #e5c697; font-size: .875rem; }
.summary-body h2 { margin: .65rem 0 1.5rem; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.35; letter-spacing: -.02em; }
.summary-route { display: flex; align-items: start; gap: 1rem; margin-top: 1rem; }
.summary-route strong { display: block; font-size: 1rem; }
.summary-route small { display: block; color: #abb5be; font-size: .875rem; margin-top: .25rem; }
.summary-badge { padding: .3rem .5rem; border: 1px solid #59646d; border-radius: .2rem; color: #d0d6dc; font-size: .75rem; font-weight: 700; flex-shrink: 0; }
.summary-badge.is-new { background: #e5c697; color: #15110b; border-color: #e5c697; }
.summary-includes { padding: 1.25rem 0; margin: 1.25rem 0; list-style: none; border-block: 1px solid var(--line); color: #c4ccd3; }
.summary-includes li { margin: .45rem 0; font-size: 1rem; }
.summary-requirement { color: #e0d5c5; font-size: 1rem; line-height: 1.6; }
.summary-status { color: #aeb6bd; font-size: .875rem; line-height: 1.6; margin-bottom: 0; }
.preview-links { display: flex; flex-wrap: wrap; gap: .75rem 1.5rem; margin-top: 3rem; font-size: .875rem; color: #aeb6bd; }
.preview-links a { color: #e5c697; text-underline-offset: .25rem; }
.payment-preview-dialog { width: min(32rem, calc(100% - 2rem)); max-height: 85svh; overflow-y: auto; padding: 2rem; border: 1px solid #746244; border-radius: .6rem; background: #181c20; color: #fff; }
.payment-preview-dialog::backdrop { background: #000b; }
.payment-preview-dialog h2 { font-size: 1.7rem; line-height: 1.3; }
.payment-preview-dialog p { font-size: 1rem; line-height: 1.6; color: #bbc4cd; }
.payment-preview-dialog .checkout-button { margin-top: .8rem; }
.dialog-close { position: absolute; top: .5rem; right: .5rem; width: 2.8rem; height: 2.8rem; background: transparent; border: 0; color: #fff; font-size: 1.75rem; cursor: pointer; }
.result-panel { max-width: 47rem; margin: 1.5rem auto 0; padding: clamp(1.5rem,4vw,3rem); border: 1px solid #3d474f; border-radius: .7rem; background: #151a1e; }
.result-symbol { width: 3.5rem; height: 3.5rem; display: grid; place-items: center; background: #a1c5b518; border: 1px solid #a1c5b555; border-radius: 50%; color: #b0decb; font-size: 1.75rem; }
.result-panel.is-failure .result-symbol { color: #ffbaa8; background: #ffbaa80b; border-color: #ffbaa83d; }
.result-panel h1 { font-size: clamp(2rem,4vw,3rem); line-height: 1.2; letter-spacing: -.03em; margin: 1.25rem 0 1rem; }
.result-panel p { font-size: 1rem; line-height: 1.65; color: #b7c0c7; }
.result-product { margin: 1.5rem 0; padding: 1.25rem; background: #20262b; border-radius: .35rem; }
.result-product strong { display: block; margin-bottom: .4rem; font-size: 1.125rem; }
.result-product p { margin: 0; }
.result-actions { display: flex; flex-wrap: wrap; gap: .85rem; margin-top: 1.5rem; }
.result-actions .checkout-button { width: auto; flex: 1; min-width: 12rem; }
.draft-download { margin-top: 1rem; width: 100%; padding: .8rem; color: #aeb6bd; background: #252b30; border: 1px solid #515c64; border-radius: .3rem; font-size: 1rem; cursor: not-allowed; }
.checkout-page .site-footer { margin-top: 2rem; }
@media(max-width:960px) { .checkout-layout { grid-template-columns: minmax(0,1fr); gap: 2rem; } .checkout-summary { position: static; } .checkout-main { padding-top: 7rem; } }
@media(max-width:540px) { .field-grid { grid-template-columns: minmax(0,1fr); } .form-section { padding: 1.25rem; } .summary-body { padding: 1.25rem; } .summary-route { flex-wrap: wrap; } .invoice-options label { flex: 1; justify-content: center; } .preview-links { flex-direction: column; } }
.sandbox-token-label { display: block; margin: 1.25rem 0 .5rem; font-size: 1rem; }
.sandbox-token { width: 100%; min-width: 0; padding: .9rem; background: #0c1014; color: #fff; border: 1px solid #515a63; border-radius: .3rem; font-size: 1rem; }
.sandbox-token:focus-visible { outline: 2px solid #e5c697; outline-offset: 2px; }
#sandbox-code-hint { display: block; margin-top: .6rem; color: #b7c0c7; font-size: .875rem; line-height: 1.6; }
#sandbox-error { border-left: 3px solid #ffbaa8; padding-left: .75rem; color: #ffbaa8; }
.checkout-button:disabled { opacity: .6; cursor: wait; }
#result-retry[hidden], #sandbox-error[hidden] { display: none; }
#external-download[hidden], #external-download-link[hidden], #result-sample-download[hidden] { display: none; }
#external-download { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #3d474f; }
#external-download h2 { font-size: 1.25rem; line-height: 1.4; }

#result-order-reference[hidden] { display: none; }
#result-order-reference { padding: .8rem 1rem; border: 1px solid #3d474f; border-radius: .35rem; font-size: 1rem; overflow-wrap: anywhere; }
#result-test-email[hidden] { display: none; }
#result-test-email-open[hidden] { display: none; }
#result-test-email { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid #3d474f; }
#result-test-email h2 { font-size: 1.25rem; line-height: 1.4; }
#result-test-email-status { overflow-wrap: anywhere; }

.terms-preview-links { display:flex; flex-wrap:wrap; gap:.75rem 1.25rem; margin:0 0 1.5rem; }
.terms-preview-links a, .terms-section a { color:#e5c697; text-underline-offset:.25rem; font-size:1rem; }
.terms-preview-links small { flex-basis:100%; color:#b0b9c0; font-size:.875rem; line-height:1.6; }
.terms-main { max-width:58rem; }
.terms-nav { display:flex; flex-wrap:wrap; gap:.65rem; margin:0 0 2rem; }
.terms-nav a { flex:1 1 12rem; display:flex; align-items:center; padding:1rem; border:1px solid #515a63; border-radius:.4rem; color:#e5c697; font-size:1rem; line-height:1.5; text-decoration:none; }
.terms-nav a:hover { border-color:#e5c697; background:#e5c6970a; }
.terms-nav a:focus-visible, .terms-section a:focus-visible, .terms-preview-links a:focus-visible { outline:2px solid #e5c697; outline-offset:4px; }
.terms-section { margin:0 0 1.5rem; padding:clamp(1.25rem,3vw,2rem); border:1px solid #30363b; border-radius:.6rem; background:#15191d; scroll-margin-top:7rem; }
.terms-section h2 { margin:0 0 1.5rem; font-size:clamp(1.4rem,3vw,2rem); line-height:1.3; letter-spacing:-.02em; }
.terms-section h3 { margin:1.75rem 0 .65rem; font-size:1.125rem; line-height:1.5; }
.terms-section p, .terms-section li, .terms-section address { font-size:1rem; line-height:1.75; color:#c4cbd1; overflow-wrap:anywhere; }
.terms-section p { margin:.65rem 0 1rem; }
.terms-section ul { padding-left:1.25rem; }
.terms-section address { font-style:normal; }
.terms-section .terms-company { color:#eef0f2; font-weight:700; }
.terms-section .terms-pending { color:#e5c697; }
.terms-completion { border-color:#746244; background:#e5c69708; }
.terms-actions { margin-top:2rem; }
@media (max-width:540px) { .terms-preview-links { flex-direction:column; } .terms-preview-links small { flex-basis:auto; } }

.legal-confirmations { min-width:0; margin:0 0 1.5rem; padding:1.25rem; border:1px solid #515a63; border-radius:.4rem; background:#15191d; }
.legal-confirmations legend { padding:0 .5rem; font-size:1rem; font-weight:700; }
.legal-confirmation-note { margin:0 0 1.25rem; color:#b0b9c0; font-size:.875rem; line-height:1.65; }
.legal-confirmations .package-confirm { margin-bottom:1rem; }
.legal-test-total { margin:1.25rem 0 0; padding-top:1rem; border-top:1px solid #30363b; color:#e5c697; font-size:1rem; line-height:1.6; }

/* Public review: controls are visibly unavailable; no payment script is loaded. */
.sales-closed-button:disabled { opacity:1; color:#c2c9cf; background:#252b30; border-color:#515c64; cursor:not-allowed; }
.order-form fieldset:disabled input, .order-form fieldset:disabled textarea, .order-form fieldset:disabled select { opacity:.7; cursor:not-allowed; }
.sales-price { margin:1.25rem 0 0; padding-top:1.25rem; border-top:1px solid #3d474f; color:#e5c697; font-size:2.25rem; font-weight:700; line-height:1.3; }
.sales-price small { display:block; margin-top:.4rem; font-size:.875rem; font-weight:400; line-height:1.6; }
.payment-provider { padding-top:1rem; }
.payment-provider img { display:block; width:327px; max-width:100%; height:auto; }
.payment-provider p { margin:0 0 .8rem; color:#b0b9c0; font-size:.875rem; line-height:1.5; }
.shopier-order-info { padding:clamp(1.25rem,3vw,2rem); border:1px solid #3d474f; border-radius:.6rem; background:#151a1e; }
.shopier-order-info h2 { margin:0 0 1rem; font-size:clamp(1.35rem,3vw,1.8rem); line-height:1.3; }
.shopier-order-info p { margin:1rem 0 0; font-size:1rem; line-height:1.7; color:#c4ccd3; }

/* Live pre-checkout information and explicit content acknowledgement. */
.purchase-review { max-width: 50rem; }
.de33000-preview { margin: 0 0 2rem; }
.de33000-preview img { display: block; width: 100%; height: auto; border: 1px solid #515a63; border-radius: .6rem; }
.de33000-preview figcaption { margin-top: .7rem; color: #b0b9c0; font-size: .875rem; line-height: 1.6; }
.de33000-notice { margin: 0 0 2rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid #b99a63; border-radius: .6rem; background: #e5c6970a; }
.de33000-notice h2 { margin: 0 0 1rem; color: #e5c697; font-size: clamp(1.3rem, 3vw, 1.7rem); line-height: 1.3; }
.de33000-notice p, p.de33000-notice, .purchase-review-details p { font-size: 1rem; line-height: 1.8; color: #d4d9de; }
.de33000-notice p { margin: 0; }
.purchase-review-details { margin-bottom: 2rem; }
.purchase-review-details h2 { font-size: 1.35rem; line-height: 1.4; }
.purchase-review-details .sales-price { font-size: 1.7rem; color: #e5c697; }
#purchase-consent-form { padding-top: 1.5rem; border-top: 1px solid #515a63; }
#purchase-consent-form .package-confirm { cursor: pointer; }
#purchase-consent-form .checkout-button:disabled { background: #252b30; border-color: #515c64; color: #aeb6bd; opacity: 1; cursor: not-allowed; }
