/* Group E: legal pages, EDD checkout / receipt / history, 404. Scoped to body classes; tokens from wapi-layout.css, nothing new on :root. Paper and mist only. */

/* ---------- Legal text pages ---------- */
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .site-main { padding-block-start: clamp(40px, 6vw, 80px); }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .entry-header { padding-block-end: clamp(20px, 3vw, 32px); border-block-end: 2px solid var(--w-ink); margin-block-end: clamp(24px, 3vw, 40px); }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .entry-title { font-size: var(--w-s-pagehead, var(--w-s-h1)); margin-block-end: 0; text-wrap: balance; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose { max-inline-size: var(--w-measure); margin-inline: auto; line-height: var(--w-lh-body); }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose > .w-muted:first-child { font-size: var(--w-s-small); margin-block-end: 20px; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose > h2 { padding-block-start: 1.2em; border-block-start: 1px solid var(--w-stone); scroll-margin-block-start: 96px; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose > h2:first-of-type { border-block-start: 0; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose > h3 { font-weight: 600; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose :is(ul, ol):not([class]) { padding-inline-start: 1.4em; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose li + li { margin-block-start: 6px; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-note { margin-block: 0 clamp(24px, 3vw, 40px); padding: clamp(18px, 2.4vw, 28px); }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-note > strong:first-child { font-family: var(--w-f-display); font-size: var(--w-s-h3); font-weight: 650; margin-block-end: 8px; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-note ul { padding-inline-start: 1.2em; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose :is(table, .w-scroll) { max-inline-size: 100%; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose table:not(.w-table) { display: block; overflow-x: auto; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose :is(a, code) { overflow-wrap: anywhere; }
:is(.wapi-p-terms-of-service, .wapi-p-privacy-policy, .wapi-p-refund-policy) .w-prose a:focus-visible { outline: 3px solid var(--w-ink); outline-offset: 2px; }

/* ---------- EDD pages: checkout, receipt, confirmation, history ---------- */
.wapi-sec-checkout .site-main, .edd-page .site-main { padding-block-start: clamp(40px, 6vw, 72px); }
:is(.wapi-sec-checkout, .edd-page) .entry-header { max-inline-size: 760px; }
:is(.wapi-sec-checkout, .edd-page) .entry-content { max-inline-size: 760px; margin-inline: auto; text-align: start; }
:is(.wapi-sec-checkout, .edd-page) .entry-content > * + * { margin-block-start: 20px; }
:is(.wapi-sec-checkout, .edd-page) .entry-content p { line-height: var(--w-lh-body); }
:is(.wapi-sec-checkout, .edd-page) .entry-content a:not(.edd-submit):not(.button) { text-underline-offset: .2em; }
:is(.wapi-sec-checkout, .edd-page) :focus-visible { outline: 3px solid var(--w-ink); outline-offset: 2px; }

/* cart */
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart, :is(.wapi-sec-checkout, .edd-page) #edd_checkout_cart { background: var(--w-mist); border: 0; padding: 0; margin-block-end: 28px; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__row { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px clamp(16px, 2.4vw, 24px); border: 0; border-block-end: 2px solid var(--w-paper); background: transparent; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__row-header { background: var(--w-ink); color: #fff; font-size: var(--w-s-small); font-weight: 600; }
:is(.wapi-sec-checkout, .edd-page) .edd_cart_item_name { flex: 1 1 auto; min-inline-size: 0; font-weight: 600; overflow-wrap: anywhere; }
:is(.wapi-sec-checkout, .edd-page) .edd_cart_item_price { flex: none; display: flex; align-items: center; gap: 14px; font-variant-numeric: tabular-nums; }
:is(.wapi-sec-checkout, .edd-page) .edd_cart_item_price { direction: ltr; unicode-bidi: isolate; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__action-remove { display: inline-grid; place-items: center; inline-size: 44px; block-size: 44px; margin-block: -10px; color: var(--w-ink); text-decoration: none; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__action-remove::before { content: "\00d7"; font-size: 1.6rem; line-height: 1; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__row-footer { border-block-end: 0; justify-content: flex-end; font-family: var(--w-f-display); font-size: var(--w-s-h3); font-weight: 650; }
:is(.wapi-sec-checkout, .edd-page) .edd_cart_total { font-weight: 650; }
:is(.wapi-sec-checkout, .edd-page) .edd_cart_amount { font-variant-numeric: tabular-nums; unicode-bidi: isolate; }

/* form */
:is(.wapi-sec-checkout, .edd-page) #edd_purchase_form fieldset, :is(.wapi-sec-checkout, .edd-page) fieldset { border: 0; padding: clamp(18px, 3vw, 28px); margin: 0 0 20px; background: var(--w-mist); min-inline-size: 0; }
:is(.wapi-sec-checkout, .edd-page) legend { font-family: var(--w-f-display); font-size: var(--w-s-h3); font-weight: 650; padding: 0; float: inline-start; inline-size: 100%; margin-block-end: 14px; }
:is(.wapi-sec-checkout, .edd-page) legend + * { clear: both; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-form__group, :is(.wapi-sec-checkout, .edd-page) #wapi-business-wrap, :is(.wapi-sec-checkout, .edd-page) #wapi-tax-wrap { display: grid; gap: 6px; margin: 0 0 18px; }
:is(.wapi-sec-checkout, .edd-page) .edd-label, :is(.wapi-sec-checkout, .edd-page) label { display: block; font-weight: 600; margin-block-end: 2px; }
:is(.wapi-sec-checkout, .edd-page) .edd-required-indicator { color: var(--w-ink); margin-inline-start: 2px; }
:is(.wapi-sec-checkout, .edd-page) .edd-description { color: var(--w-ink-2); font-size: var(--w-s-small); margin: 0; font-weight: 400; }
:is(.wapi-sec-checkout, .edd-page) :is(input.edd-input, select, textarea) { inline-size: 100%; }
:is(.wapi-sec-checkout, .edd-page) #wapi_tax_id, :is(.wapi-sec-checkout, .edd-page) #edd-email { direction: ltr; text-align: start; }
:is(.wapi-sec-checkout, .edd-page) :is(input, select, textarea):is([aria-invalid="true"], .error) { border-color: var(--w-ink); box-shadow: inset 0 -4px 0 var(--w-ink); }

/* agreement row */
:is(.wapi-sec-checkout, .edd-page) #wapi-agree-wrap { display: flex; align-items: flex-start; gap: 12px; margin: 16px 0 20px; padding: 14px 16px; background: var(--w-mist); }
:is(.wapi-sec-checkout, .edd-page) #wapi-agree-wrap input { flex: none; inline-size: 24px; block-size: 24px; margin: 0; }
:is(.wapi-sec-checkout, .edd-page) #wapi-agree-wrap label { font-weight: 400; margin: 0; line-height: 1.5; }
:is(.wapi-sec-checkout, .edd-page) #edd_purchase_form fieldset#edd_purchase_submit { background: transparent; padding: 0; }
:is(.wapi-sec-checkout, .edd-page) #edd_purchase_submit > p.w-small { margin-block: 0 4px; }

/* purchase button: ink, full width on phones. !important only against EDD inline button colours */
:is(.wapi-sec-checkout, .edd-page) #edd-purchase-button, :is(.wapi-sec-checkout, .edd-page) .edd-submit { display: block; inline-size: 100%; max-inline-size: 100%; min-block-size: 56px; text-align: center; letter-spacing: 0; background: var(--w-ink) !important; color: #fff !important; }
:is(.wapi-sec-checkout, .edd-page) #edd-purchase-button:disabled { opacity: .55; cursor: not-allowed; }
@media (min-width: 640px) { :is(.wapi-sec-checkout, .edd-page) #edd-purchase-button { inline-size: auto; min-inline-size: 280px; } }
@media (hover: hover) and (pointer: fine) {
	:is(.wapi-sec-checkout, .edd-page) .edd-blocks-cart__action-remove:hover { background: var(--w-paper); }
	:is(.wapi-sec-checkout, .edd-page) .entry-content a:not(.edd-submit):hover { text-decoration-thickness: 2px; }
}

/* errors, notices */
:is(.wapi-sec-checkout, .edd-page) :is(.edd-alert, .edd_errors, .edd_error, .edd-blocks-form__error) { border: 0; border-radius: 0; background: var(--w-stone); color: var(--w-ink); padding: 16px 20px; margin: 0 0 20px; border-inline-start: 6px solid var(--w-ink); }
:is(.wapi-sec-checkout, .edd-page) :is(.edd-alert, .edd_errors) p { margin: 0; }
:is(.wapi-sec-checkout, .edd-page) :is(.edd-alert, .edd_errors) p + p { margin-block-start: 6px; }
:is(.wapi-sec-checkout, .edd-page) .edd-alert-success { background: var(--w-mist); }

/* receipt, confirmation, order history: mist tables on paper */
:is(.wapi-sec-checkout, .edd-page) :is(table.edd-table, #edd_purchase_receipt, #edd_user_history, #edd_purchase_receipt_products, .edd-order-items) { inline-size: 100%; border-collapse: collapse; font-size: var(--w-s-small); margin-block: 0 24px; }
:is(.wapi-sec-checkout, .edd-page) :is(table.edd-table, #edd_purchase_receipt, #edd_user_history, #edd_purchase_receipt_products) :is(th, td) { text-align: start; padding: 12px 14px; border: 0; border-block-end: 2px solid var(--w-paper); background: var(--w-mist); vertical-align: top; overflow-wrap: anywhere; }
:is(.wapi-sec-checkout, .edd-page) :is(table.edd-table, #edd_purchase_receipt, #edd_user_history, #edd_purchase_receipt_products) :is(thead th, th.edd_cart_header_row) { background: var(--w-ink); color: #fff; font-weight: 600; }
:is(.wapi-sec-checkout, .edd-page) :is(#edd_purchase_receipt, #edd_user_history) tbody th { font-weight: 600; inline-size: 34%; }
:is(.wapi-sec-checkout, .edd-page) .edd_purchase_receipt_product_name { font-weight: 600; }
:is(.wapi-sec-checkout, .edd-page) :is(#edd_user_history, table.edd-table) td.edd_purchase_amount, :is(.wapi-sec-checkout, .edd-page) .edd_purchase_receipt_price { font-variant-numeric: tabular-nums; unicode-bidi: isolate; }
@media (max-width: 640px) { :is(.wapi-sec-checkout, .edd-page) :is(#edd_user_history, table.edd-table) { display: block; overflow-x: auto; } }
/* EDD block receipt (grid rows): content column + value column, values at the end, on phones too */
:is(.wapi-sec-checkout, .edd-page) .edd-blocks__row.edd-blocks-receipt__row-item, :is(.wapi-sec-checkout, .edd-page) .edd-blocks__row.edd-blocks-receipt__row-header { grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 16px; }
:is(.wapi-sec-checkout, .edd-page) :is(.edd-blocks-receipt__item-price, .edd-blocks__row-value) { text-align: end; overflow-wrap: anywhere; }
:is(.wapi-sec-checkout, .edd-page) .edd-blocks-receipt__item-details { min-inline-size: 0; }
:is(.wapi-sec-checkout, .edd-page) .wapi-license-keys code { overflow-wrap: anywhere; }
:is(.wapi-sec-checkout, .edd-page) .edd_success, :is(.wapi-sec-checkout, .edd-page) .edd-receipt-confirmation { background: var(--w-mist); padding: 18px 20px; }

/* ---------- 404 ---------- */
.error404 .site-main { max-inline-size: 760px; margin-inline: auto; padding-block: clamp(56px, 10vw, 120px) var(--w-sec); }
.error404 .inside-article, .error404 .page-header { padding: 0; max-inline-size: none; background: transparent; }
.error404 .page-header { border-block-end: 2px solid var(--w-ink); padding-block-end: clamp(20px, 3vw, 32px); margin-block-end: clamp(24px, 3vw, 40px); }
.error404 .entry-title { font-size: var(--w-s-pagehead, var(--w-s-h1)); text-wrap: balance; margin: 0; }
.error404 .page-content { max-inline-size: var(--w-measure); margin-inline: 0; text-align: start; }
.error404 .page-content p { line-height: var(--w-lh-body); }
.error404 .page-content .w-list { list-style: none; padding: 0; margin: 20px 0 0; display: grid; gap: 2px; }
.error404 .page-content .w-list li { background: var(--w-mist); }
.error404 .page-content .w-list a { display: block; padding: 14px 18px; min-block-size: 48px; font-weight: 600; color: var(--w-ink); }
.error404 :focus-visible { outline: 3px solid var(--w-ink); outline-offset: 2px; }
@media (hover: hover) and (pointer: fine) { .error404 .page-content .w-list a:hover { background: var(--w-stone); } }
