/* RestroPress Checkout — implements the approved Claude Design "Checkout"
   (v1) mockup in RestroPress brand colors. Re-skins EDD's real checkout;
   no payment markup is replaced. Scoped to body.rp-checkout. */

body.rp-checkout {
	--co-coral: #EF643D;
	--co-coral-dark: #CF5226;
	--co-grad: linear-gradient(135deg, #F57351 0%, #EF643D 100%);
	--co-shadow-coral: rgba(239, 100, 61, .30);
	--co-ink: #1A1512;
	--co-body: #4A423C;
	--co-muted: #6B625B;
	--co-faint: #9A918A;
	--co-border: #ECE6E1;
	--co-line: #F5F0EC;
	--co-tint: #FDEDE5;
	--co-field: #FCFAF8;
	--co-bg: #FBF8F5;
	--co-green: #1FA37A;
	background: var(--co-bg) !important;
	font-family: 'Hanken Grotesk', system-ui, -apple-system, sans-serif;
	color: var(--co-ink);
	-webkit-font-smoothing: antialiased;
}

body.rp-checkout .material-symbols-rounded { font-family: 'Material Symbols Rounded'; line-height: 1; vertical-align: middle; flex-shrink: 0; }
body.rp-checkout .material-symbols-rounded.is-fill { font-variation-settings: 'FILL' 1; }

/* ---- legacy chrome neutralised ---- */
/* tall purple hero -> slim dark brand bar (JS tags it .rp-co-topbar) */
body.rp-checkout .ct-section.rp-co-topbar { background-image: none !important; background-color: var(--co-ink) !important; min-height: 0 !important; height: auto !important; }
body.rp-checkout .ct-section.rp-co-topbar .ct-section-inner-wrap { padding: 9px 28px !important; min-height: 0 !important; max-width: 1180px; margin: 0 auto; }
/* centre the lone logo column (the "Checkout" + SSL columns are hidden by JS) */
body.rp-checkout .ct-section.rp-co-topbar [id^="new_columns"] { justify-content: center !important; }
body.rp-checkout .ct-section.rp-co-topbar [id^="new_columns"] > div { width: auto !important; flex: 0 0 auto !important; text-align: center; }
body.rp-checkout .ct-section.rp-co-topbar svg { display: none !important; }
body.rp-checkout .ct-section.rp-co-topbar img { max-height: 42px !important; height: 42px !important; width: auto !important; }
body.rp-checkout .ct-section.rp-co-topbar h1,
body.rp-checkout .ct-section.rp-co-topbar h2 { font-size: 17px !important; line-height: 1.2 !important; margin: 0 !important; }
/* the legacy negative-margin overlap + white content panel */
body.rp-checkout #section-2-49037 { margin-top: 0 !important; top: 0 !important; background-color: var(--co-bg) !important; }
body.rp-checkout [id^="new_columns-"],
body.rp-checkout .ct-new-columns { background: transparent !important; background-color: transparent !important; margin-top: 0 !important; padding-top: 18px !important; }
body.rp-checkout .custom-checkout-message { display: none !important; }

/* ================= LAYOUT ================= */
/* The Oxygen template nests the checkout in padded, max-width-capped wrappers
   (~1140px cap + ~80px padding) that shrink it to ~980px. Neutralise them on
   the checkout so the grid can use the page width. Class + :has() based, so it
   survives Oxygen id changes. */
body.rp-checkout .ct-section-inner-wrap:has(#edd_checkout_wrap),
body.rp-checkout .ct-new-columns:has(#edd_checkout_wrap),
body.rp-checkout .ct-div-block:has(#edd_checkout_wrap),
body.rp-checkout .ct-code-block:has(#edd_checkout_wrap) {
	max-width: none !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	justify-content: center !important;
}
body.rp-checkout #edd_checkout_wrap {
	display: grid !important;
	grid-template-columns: minmax(0, 1.55fr) minmax(340px, 0.85fr) !important;
	gap: 36px !important;
	align-items: start !important;
	max-width: 1280px !important;
	margin: 0 auto !important;
	padding: 12px 32px 90px !important;
	box-sizing: border-box;
	float: none !important;
}
body.rp-checkout #edd_checkout_wrap > * { box-sizing: border-box; }
body.rp-checkout #edd_checkout_cart_form { display: none !important; }
body.rp-checkout #edd_checkout_form_wrap { grid-column: 1; width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; display: flex; flex-direction: column; gap: 18px; }
body.rp-checkout .checkout-cart-wrap { grid-column: 2; width: auto !important; float: none !important; margin: 0 !important; padding: 0 !important; position: sticky; top: 20px; display: flex; flex-direction: column; gap: 14px; }

/* ================= HEADER ================= */
body.rp-checkout .rp-co-header { grid-column: 1 / -1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding: 26px 0 12px; }
body.rp-checkout .rp-co-crumbs { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--co-faint); }
body.rp-checkout .rp-co-crumbs .material-symbols-rounded { font-size: 16px; color: #CDC4BC; }
body.rp-checkout .rp-co-crumb-current { color: var(--co-coral); font-weight: 700; }
body.rp-checkout .rp-co-title { font-family: 'Schibsted Grotesk', system-ui, sans-serif; font-weight: 800; font-size: 40px; line-height: 1.05; letter-spacing: -.028em; margin: 12px 0 0; color: var(--co-ink); }
body.rp-checkout .rp-co-sub { font-size: 16.5px; color: var(--co-muted); line-height: 1.5; margin: 9px 0 0; max-width: 520px; }
/* header right: star rating + social proof (v3, replaces the old SSL pill) */
body.rp-checkout .rp-co-head-right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; text-align: right; }
body.rp-checkout .rp-co-rating { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--co-faint); }
body.rp-checkout .rp-co-rating b { font-size: 13.5px; font-weight: 700; color: var(--co-ink); }
body.rp-checkout .rp-co-stars { display: inline-flex; gap: 1px; }
body.rp-checkout .rp-co-stars .material-symbols-rounded { font-size: 17px; color: #FFB400; font-variation-settings: 'FILL' 1; }
body.rp-checkout .rp-co-rating-src { font-size: 13px; color: var(--co-faint); }
body.rp-checkout .rp-co-social { font-size: 13px; color: var(--co-muted); }
body.rp-checkout .rp-co-social strong { color: var(--co-ink); font-weight: 700; }

/* "Secure SSL encrypted" badge in the Payment method heading (v3) */
body.rp-checkout .rp-co-ssl-badge { margin-left: auto; display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; color: var(--co-green); white-space: nowrap; }
body.rp-checkout .rp-co-ssl-badge .material-symbols-rounded { font-size: 16px; }

/* order-card foot: "Instant license delivery" microcopy + "What you get" perks (v3) */
body.rp-checkout .rp-co-cta-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 16px; font-size: 12.5px; color: var(--co-faint); }
body.rp-checkout .rp-co-cta-note .material-symbols-rounded { font-size: 16px; color: var(--co-green); }
body.rp-checkout .rp-co-perks { list-style: none; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--co-line); display: flex; flex-direction: column; gap: 9px; }
body.rp-checkout .rp-co-perks li { display: flex; align-items: center; gap: 9px; font-size: 13px; color: var(--co-body); font-weight: 600; }
body.rp-checkout .rp-co-perks .material-symbols-rounded { font-size: 17px; color: var(--co-green); }

/* payment-trust note card (v3) */
body.rp-checkout .rp-co-paytrust { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--co-border); border-radius: 16px; padding: 14px 18px; }
body.rp-checkout .rp-co-paytrust .material-symbols-rounded { color: var(--co-green); font-size: 20px; flex-shrink: 0; }
body.rp-checkout .rp-co-paytrust > div { font-size: 13px; color: var(--co-muted); line-height: 1.5; }
body.rp-checkout .rp-co-paytrust strong { color: var(--co-ink); }

/* Trustpilot testimonial card (v3) */
body.rp-checkout .rp-co-testimonial { background: #fff; border: 1px solid var(--co-border); border-radius: 18px; padding: 22px 24px; display: flex; gap: 16px; align-items: flex-start; }
body.rp-checkout .rp-co-testimonial-ico { width: 44px; height: 44px; border-radius: 50%; background: var(--co-tint); color: var(--co-coral); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
body.rp-checkout .rp-co-testimonial-ico .material-symbols-rounded { font-size: 22px; }
body.rp-checkout .rp-co-t-stars { display: inline-flex; gap: 1px; margin-bottom: 6px; }
body.rp-checkout .rp-co-t-stars .material-symbols-rounded { font-size: 15px; color: #FFB400; font-variation-settings: 'FILL' 1; }
body.rp-checkout .rp-co-testimonial p { font-size: 14.5px; line-height: 1.6; color: var(--co-body); margin: 0; }
body.rp-checkout .rp-co-t-src { font-size: 12.5px; font-weight: 700; color: var(--co-faint); margin-top: 8px; }

/* ================= LEFT: SECTION CARDS ================= */
/* universal.css ships `border: unset !important` on these fieldsets, so the
   card border needs !important at higher specificity. Grid display turns
   legends into normal flow children (no float hacks). */
body.rp-checkout #edd_checkout_form_wrap #edd_purchase_form fieldset {
	display: grid;
	grid-template-columns: 1fr;
	background: #fff !important;
	border: 1px solid var(--co-border) !important;
	border-radius: 18px !important;
	padding: 24px !important;
	margin: 0 !important;
	box-shadow: 0 6px 22px rgba(26, 21, 18, .04);
}
body.rp-checkout #edd_purchase_form { display: flex; flex-direction: column; gap: 18px; border: none; background: none; padding: 0; margin: 0; }
body.rp-checkout #edd_payment_mode_submit { display: none !important; }

/* legends as card headings with step circles */
body.rp-checkout #edd_purchase_form legend { display: flex !important; align-items: center; gap: 11px; width: 100%; margin: 0 0 16px !important; padding: 0 !important; border: none; float: none; font-family: 'Schibsted Grotesk', system-ui, sans-serif; font-weight: 800; font-size: 20px; letter-spacing: -.02em; color: var(--co-ink); text-transform: none !important; }
body.rp-checkout .rp-step-num { width: 30px; height: 30px; border-radius: 999px; background: var(--co-tint); color: var(--co-coral); font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
body.rp-checkout .rp-co-cc-badges { margin-left: auto; display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.rp-checkout .rp-co-encrypted { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 600; color: var(--co-green); }
body.rp-checkout .rp-co-encrypted .material-symbols-rounded { font-size: 16px; font-variation-settings: 'FILL' 1; }
body.rp-checkout .rp-co-stripe { display: inline-flex; align-items: center; gap: 5px; background: #F4F1FD; border: 1px solid #E0D9F7; border-radius: 999px; padding: 4px 11px; color: #5A4FCF; font-weight: 700; font-size: 12px; }
body.rp-checkout .rp-co-stripe b { font-style: italic; font-weight: 800; }
body.rp-checkout .rp-co-section-note { font-size: 13.5px; color: var(--co-faint); margin: -10px 0 16px 41px !important; }

/* ---- fields ---- */
body.rp-checkout #edd_purchase_form .edd-label,
body.rp-checkout #edd_purchase_form label.edd-label { display: block; font-size: 13px; font-weight: 700; color: var(--co-body); margin-bottom: 7px; }
body.rp-checkout #edd_purchase_form input[type=text],
body.rp-checkout #edd_purchase_form input[type=email],
body.rp-checkout #edd_purchase_form input[type=tel],
body.rp-checkout #edd_purchase_form input[type=password],
body.rp-checkout #edd_purchase_form select,
body.rp-checkout #edd-discount,
body.rp-checkout .edd-input {
	width: 100%;
	padding: 13px 14px;
	border: 1.5px solid var(--co-border);
	border-radius: 11px;
	font-size: 15px;
	color: var(--co-ink);
	background: var(--co-field);
	outline: none;
	box-sizing: border-box;
	transition: border-color .15s, box-shadow .15s, background .15s;
	font-family: inherit;
}
body.rp-checkout #edd_purchase_form input:focus,
body.rp-checkout #edd_purchase_form select:focus,
body.rp-checkout .edd-input:focus { border-color: var(--co-coral); box-shadow: 0 0 0 3px rgba(239, 100, 61, .12); background: #fff; }
body.rp-checkout #edd_purchase_form select { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%239A918A' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 40px; cursor: pointer; }
body.rp-checkout #edd_purchase_form input::placeholder { color: #B3A89F; }
body.rp-checkout #edd_purchase_form p,
body.rp-checkout #edd_purchase_form .edd-form-group { margin: 0 0 16px; }
body.rp-checkout #edd_purchase_form p:last-child { margin-bottom: 0; }
body.rp-checkout .edd-description { font-size: 12.5px; color: var(--co-faint); font-style: normal !important; }

/* ---- step 1: payment method ---- */
body.rp-checkout #edd-payment-mode-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; list-style: none; margin: 0; padding: 0; width: 100% !important; min-width: 0; }
body.rp-checkout .edd-gateway-option {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 10px;
	border: 1.5px solid var(--co-border);
	border-radius: 13px;
	padding: 15px 16px;
	background: var(--co-field);
	cursor: pointer;
	font-weight: 700;
	font-size: 15px;
	color: var(--co-ink);
	margin: 0;
	transition: border-color .15s, background .15s;
}
body.rp-checkout .edd-gateway-option:hover { border-color: #D8CFC7; }
body.rp-checkout .edd-gateway-option.edd-gateway-option-selected { border-color: var(--co-coral); background: var(--co-tint); }
/* v3: plain selectable tiles, no radio dot (selection shown by the tinted
   border). The label still toggles the hidden radio so EDD's gateway switch
   keeps working. */
body.rp-checkout .edd-gateway-option input[type=radio] { position: absolute; opacity: 0; width: 0; height: 0; pointer-events: none; }
body.rp-checkout #edd-gateway-option-stripe::before { content: "credit_card"; font-family: 'Material Symbols Rounded'; font-size: 22px; color: var(--co-ink); }
body.rp-checkout #edd-gateway-option-paypal_commerce::before { content: "account_balance_wallet"; font-family: 'Material Symbols Rounded'; font-size: 22px; color: var(--co-ink); }
/* real accepted-card icons, relocated under the gateway cards by JS */
body.rp-checkout .rp-co-brands { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
body.rp-checkout .rp-co-brands svg, body.rp-checkout .rp-co-brands img { height: 24px; width: auto; }
body.rp-checkout .rp-co-brands .rp-co-brands-more { font-size: 12.5px; color: var(--co-faint); margin-left: 2px; }
body.rp-checkout #edd_purchase_form > .edd-payment-icons { display: none; }

/* ---- step 2: personal info ---- */
body.rp-checkout #edd_checkout_form_wrap #edd_purchase_form #edd_checkout_user_info { grid-template-columns: 1fr 1fr; gap: 0 14px; }
body.rp-checkout #edd_checkout_user_info > legend { grid-column: 1 / -1; }
body.rp-checkout #edd_checkout_user_info > #edd-email-wrap { grid-column: 1 / -1; }
body.rp-checkout #edd_checkout_user_info > p,
body.rp-checkout #edd_checkout_user_info > .edd-form-group { min-width: 0; width: 100% !important; max-width: none !important; }
body.rp-checkout .rp-co-email-note { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--co-green); font-weight: 600; margin-top: 7px; }
body.rp-checkout .rp-co-email-note .material-symbols-rounded { font-size: 15px; }

/* ---- gateway-switch loading state ----
   EDD replaces all of #edd_purchase_form_wrap with a bare
   <span class="edd-loading-ajax edd-loading"> during the AJAX gateway switch.
   Style it as a centred spinner card so the column doesn't collapse/flash. */
body.rp-checkout #edd_purchase_form_wrap > .edd-loading-ajax,
body.rp-checkout #edd_purchase_form_wrap > .edd-loading {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 340px;
	margin: 0;
	background: #fff;
	border: 1px solid var(--co-border);
	border-radius: 18px;
	box-shadow: 0 6px 22px rgba(26, 21, 18, .04);
	background-image: none !important;
}
body.rp-checkout #edd_purchase_form_wrap > .edd-loading-ajax::after,
body.rp-checkout #edd_purchase_form_wrap > .edd-loading::after {
	content: "";
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 3px solid var(--co-tint);
	border-top-color: var(--co-coral);
	animation: rp-co-spin .7s linear infinite;
}
@keyframes rp-co-spin { to { transform: rotate(360deg); } }

/* ---- step 3: card details (EDD Stripe) ---- */
body.rp-checkout .edd-stripe-new-card { display: flex; flex-direction: column; gap: 16px; }
body.rp-checkout .edd-stripe-new-card > p, body.rp-checkout .edd-stripe-new-card > div { margin: 0 !important; min-width: 0; }
body.rp-checkout #edd-card-wrap, body.rp-checkout #edd-card-details-wrap { width: 100%; }
body.rp-checkout .edd-stripe-new-card .StripeElement { padding: 13px 14px; border: 1.5px solid var(--co-border); border-radius: 11px; background: var(--co-field); }
body.rp-checkout .edd-stripe-new-card .StripeElement--focus { border-color: var(--co-coral); box-shadow: 0 0 0 3px rgba(239, 100, 61, .12); background: #fff; }
body.rp-checkout #edd_cc_fields .edd-description { display: none !important; }
body.rp-checkout #edd_secure_site_wrapper { display: none !important; } /* replaced by the Encrypted badge in the legend */

/* ---- step 4: billing details ---- */
body.rp-checkout #edd_checkout_form_wrap #edd_purchase_form #edd_cc_address { grid-template-columns: 1fr 1fr 1fr; gap: 0 14px; }
body.rp-checkout #edd_cc_address > legend { grid-column: 1 / -1; }
body.rp-checkout #edd_cc_address > .rp-co-section-note { grid-column: 1 / -1; }
body.rp-checkout #edd_cc_address > p,
body.rp-checkout #edd_cc_address > div { min-width: 0; width: 100% !important; max-width: none !important; grid-column: 1 / -1; margin: 0 0 16px; }
body.rp-checkout #edd_cc_address > #edd-card-city-wrap,
body.rp-checkout #edd_cc_address > #edd-card-state-wrap,
body.rp-checkout #edd_cc_address > #edd-card-zip-wrap { grid-column: auto; }
body.rp-checkout #edd_cc_address .edd-description { display: none !important; }

/* ---- renewal: neutral notice card (v3, toned down from amber) ---- */
body.rp-checkout #edd_sl_renewal_form fieldset {
	display: grid; grid-template-columns: 38px 1fr auto; gap: 4px 13px; align-items: center;
	background: #fff !important; border: 1px solid var(--co-border) !important; border-radius: 14px !important;
	padding: 15px 18px !important; margin: 0 !important; box-shadow: none;
	text-align: left !important;
}
body.rp-checkout #edd_sl_renewal_form legend.screen-reader-text { position: absolute; left: -9999px; }
body.rp-checkout .rp-co-renew-ico { width: 38px; height: 38px; border-radius: 10px; background: var(--co-line); display: flex; align-items: center; justify-content: center; grid-row: 1 / 3; grid-column: 1; }
body.rp-checkout .rp-co-renew-ico .material-symbols-rounded { color: var(--co-muted); font-size: 21px; }
body.rp-checkout .rp-co-renew-title { font-weight: 700; font-size: 14.5px; color: var(--co-ink); grid-column: 2; }
body.rp-checkout .rp-co-renew-sub { font-size: 13px; color: var(--co-faint); grid-column: 2; }
body.rp-checkout #edd_sl_show_renewal_form {
	grid-row: 1 / 3; grid-column: 3;
	background: #fff !important; border: 1px solid var(--co-border) !important; color: var(--co-body) !important;
	font-weight: 700 !important; font-size: 13.5px !important; padding: 10px 16px !important;
	border-radius: 10px !important; cursor: pointer; white-space: nowrap; width: auto !important;
	text-transform: none !important; text-decoration: none;
}
body.rp-checkout #edd_sl_show_renewal_form:hover { border-color: #D8CFC7 !important; }
/* expanded renewal panel */
body.rp-checkout #edd_sl_renewal_form .edd-sl-renewal-form-fields { grid-column: 1 / -1; margin-top: 14px; padding-top: 16px; border-top: 1px solid var(--co-line); display: flex; flex-direction: column; gap: 14px; }
body.rp-checkout #edd_sl_renewal_form .edd-sl-renewal-form-fields > div { background: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important; }
body.rp-checkout #edd_sl_renewal_form .edd-form-group__label,
body.rp-checkout #edd_sl_renewal_form label.edd-description { display: block; font-size: 13px; font-weight: 600; color: var(--co-faint); margin: 0 0 8px; font-style: normal; }
body.rp-checkout #edd_sl_renewal_form .edd-form-group__control { border: none !important; background: none !important; padding: 0 !important; }
body.rp-checkout #edd_sl_renewal_form #edd-license-key { width: 100%; padding: 13px 14px; border: 1.5px solid var(--co-border); border-radius: 11px; background: #fff; font-size: 15px; color: var(--co-ink); box-sizing: border-box; outline: none; transition: border-color .15s, box-shadow .15s; }
body.rp-checkout #edd_sl_renewal_form #edd-license-key:focus { border-color: var(--co-coral); box-shadow: 0 0 0 3px rgba(239,100,61,.12); }
body.rp-checkout .edd-sl-renewal-actions { display: flex; align-items: center; gap: 16px; }
body.rp-checkout #edd-add-license-renewal {
	width: auto !important;
	background: var(--co-grad) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 11px !important;
	font-weight: 700 !important;
	font-size: 14.5px !important;
	padding: 12px 22px !important;
	cursor: pointer;
	box-shadow: 0 8px 18px var(--co-shadow-coral) !important;
	text-transform: none !important;
	text-shadow: none !important;
}
body.rp-checkout #edd-add-license-renewal:hover { filter: brightness(.95); }
body.rp-checkout #edd-cancel-license-renewal { background: transparent !important; border: none !important; color: var(--co-muted) !important; font-weight: 700; font-size: 14px; cursor: pointer; padding: 0 !important; }
body.rp-checkout #edd-cancel-license-renewal:hover { color: var(--co-coral) !important; }

/* ---- agreement note (JS-injected) ---- */
body.rp-checkout .rp-co-agreement { display: flex; gap: 12px; align-items: flex-start; padding: 4px 6px; }
body.rp-checkout .rp-co-agreement .material-symbols-rounded { color: var(--co-green); font-size: 20px; margin-top: 1px; }
body.rp-checkout .rp-co-agreement p { font-size: 13px; color: var(--co-muted); line-height: 1.6; margin: 0; }
body.rp-checkout .rp-co-agreement a { color: var(--co-coral); font-weight: 700; }

/* ================= RIGHT: ORDER SUMMARY ================= */
body.rp-checkout .rp-co-ordercard { background: #fff; border: 1px solid var(--co-border); border-radius: 20px; padding: 22px; box-shadow: 0 18px 48px rgba(26, 21, 18, .10); }
body.rp-checkout .rp-co-ordercard h2,
body.rp-checkout .checkout-cart-wrap h2 { font-family: 'Schibsted Grotesk', system-ui, sans-serif; font-weight: 800; font-size: 19px; letter-spacing: -.02em; color: var(--co-ink); margin: 0 0 12px; }
body.rp-checkout .rp-co-ordercard h2 { display: flex; align-items: baseline; justify-content: space-between; }
body.rp-checkout .rp-co-itemcount { font-family: 'Hanken Grotesk', sans-serif; font-size: 12.5px; font-weight: 700; color: var(--co-faint); }

/* cart items */
body.rp-checkout .rp-co-ordercard #edd_checkout_cart { width: 100%; border-collapse: collapse; margin: 0 !important; background: none; border: none; display: block; }
body.rp-checkout #edd_checkout_cart thead { display: none; }
body.rp-checkout #edd_checkout_cart tbody { display: block; }
body.rp-checkout #edd_checkout_cart tbody tr.edd_cart_item { display: flex; align-items: center; gap: 13px; padding: 14px 0; border: none; border-top: 1px solid var(--co-line); background: none !important; }
body.rp-checkout #edd_checkout_cart tbody tr.edd_cart_item td { border: none; padding: 0; background: none; vertical-align: middle; }
body.rp-checkout .edd_cart_item_name { display: flex !important; flex-wrap: wrap; align-items: center; gap: 4px 11px; flex: 1; min-width: 0; }
body.rp-checkout .edd_cart_item_image { width: 42px; height: 42px; border-radius: 11px; overflow: hidden; flex-shrink: 0; background: var(--co-tint); }
body.rp-checkout .edd_cart_item_image img { width: 100%; height: 100%; object-fit: cover; }
body.rp-checkout .edd_checkout_cart_item_title { flex: 1; min-width: 0; font-weight: 700; font-size: 14px; line-height: 1.3; color: var(--co-ink); }
body.rp-checkout .eddr-notice.eddr-cart-item-notice { flex-basis: 100%; margin: 0; padding: 0 0 0 53px; font-family: 'Hanken Grotesk', sans-serif; font-size: 12px; font-weight: 600; font-style: normal; color: var(--co-faint); line-height: 1.3; }
body.rp-checkout .edd_cart_item_price { font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 14.5px; white-space: nowrap; text-align: right; color: var(--co-ink); flex-shrink: 0; }
body.rp-checkout .edd_cart_actions { text-align: right; flex-shrink: 0; }
body.rp-checkout .edd_cart_remove_item_btn { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; color: #C9C0B8; transition: background .15s, color .15s; }
body.rp-checkout .edd_cart_remove_item_btn:hover { background: var(--co-tint); color: var(--co-coral); }
body.rp-checkout .edd_cart_remove_item_btn svg path { fill: currentColor; }

/* discount (relocated into the order card by JS) */
body.rp-checkout .rp-co-discount { background: transparent !important; border: none !important; border-top: 1px solid var(--co-line) !important; border-radius: 0 !important; box-shadow: none !important; padding: 14px 0 0 !important; margin: 2px 0 0 !important; }
body.rp-checkout .rp-co-discount #edd_show_discount { margin: 0; font-size: 13.5px; font-weight: 700; color: var(--co-coral); }
body.rp-checkout .rp-co-discount #edd_show_discount::before { content: "sell"; font-family: 'Material Symbols Rounded'; font-size: 17px; vertical-align: -3px; margin-right: 7px; color: var(--co-coral); }
body.rp-checkout .rp-co-discount #edd_show_discount a { color: var(--co-coral) !important; font-weight: 700; }
body.rp-checkout .rp-co-discount .edd-discount-code-field-wrap { display: flex; gap: 8px; align-items: stretch; margin-top: 12px; }
body.rp-checkout .rp-co-discount .edd-discount-code-field-wrap input { padding: 11px 13px; }
body.rp-checkout .rp-co-discount label.edd-label, body.rp-checkout .rp-co-discount .edd-description { display: none !important; }
body.rp-checkout .edd-apply-discount { background: var(--co-ink) !important; color: #fff !important; border: none !important; border-radius: 10px !important; font-weight: 700 !important; padding: 0 18px !important; cursor: pointer; width: auto !important; text-transform: none !important; }

/* totals */
body.rp-checkout #edd_checkout_cart tfoot { display: block; border-top: 1px dashed var(--co-border); margin-top: 14px; padding-top: 8px; }
body.rp-checkout #edd_checkout_cart tfoot tr { display: flex; justify-content: space-between; align-items: baseline; border: none; }
body.rp-checkout #edd_checkout_cart tfoot tr[style*="display:none"],
body.rp-checkout #edd_checkout_cart tfoot tr[style*="display: none"] { display: none !important; }
body.rp-checkout #edd_checkout_cart tfoot .edd_cart_footer_row.edd-no-js { display: none !important; }
body.rp-checkout #edd_checkout_cart tfoot th { font-weight: 600; font-size: 13.5px; color: var(--co-muted); text-align: left; padding: 5px 0; border: none; background: none; }
body.rp-checkout #edd_checkout_cart tfoot .edd_cart_subtotal_amount { color: var(--co-ink) !important; font-weight: 700; }
body.rp-checkout #edd_checkout_cart tfoot tr:last-child th { display: flex; justify-content: space-between; align-items: baseline; width: 100%; font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 18px; color: var(--co-ink) !important; padding: 12px 0 0; margin-top: 4px; border-top: 1px solid var(--co-line); }
body.rp-checkout #edd_checkout_cart tfoot tr:last-child .edd_cart_amount { font-size: 26px; letter-spacing: -.02em; color: var(--co-ink) !important; }
body.rp-checkout #edd_checkout_cart tfoot span { color: var(--co-ink) !important; }

/* ---- submit area (stays inside EDD's form, styled as the CTA card) ---- */
body.rp-checkout #edd_purchase_submit { background: #fff !important; border: 1px solid var(--co-border) !important; border-radius: 18px !important; padding: 22px 24px !important; box-shadow: 0 6px 22px rgba(26, 21, 18, .04); }
body.rp-checkout #edd_purchase_submit #edd_final_total_wrap { display: flex; justify-content: space-between; align-items: baseline; font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 17px; color: var(--co-ink); margin: 0 0 14px; }
body.rp-checkout #edd_purchase_submit #edd_final_total_wrap .edd_cart_amount { font-size: 26px; letter-spacing: -.02em; }
body.rp-checkout #edd-purchase-button,
body.rp-checkout #edd_purchase_form .edd-submit.button {
	width: 100% !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 9px;
	background: var(--co-grad) !important;
	color: #fff !important;
	font-weight: 700 !important;
	font-size: 16.5px !important;
	font-family: inherit !important;
	border: none !important;
	border-radius: 13px !important;
	padding: 16px 22px !important;
	cursor: pointer;
	box-shadow: 0 10px 24px var(--co-shadow-coral) !important;
	text-shadow: none !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	transition: filter .15s, transform .14s;
	height: auto !important;
	line-height: 1.2 !important;
}
body.rp-checkout #edd-purchase-button:hover { filter: brightness(.95) !important; transform: translateY(-1px); }
body.rp-checkout .rp-co-ssl-note { display: flex; align-items: center; justify-content: center; gap: 7px; margin-top: 12px; font-size: 12.5px; color: var(--co-faint); }
body.rp-checkout .rp-co-ssl-note .material-symbols-rounded { font-size: 16px; color: var(--co-green); font-variation-settings: 'FILL' 1; }

/* ---- right rail extras ---- */
/* the legacy "Supported Payment Methods" block is superseded by the brand
   chips under Payment method and the agreement note under the form */
body.rp-checkout .checkout-cart-wrap > h2:not(.rp-co-keep),
body.rp-checkout .checkout-cart-wrap .card-info { display: none !important; }

/* dark guarantee card */
body.rp-checkout .money-back { background: var(--co-ink) !important; border-radius: 18px; padding: 20px !important; margin: 0 !important; color: #fff; display: grid; grid-template-columns: 42px 1fr; gap: 4px 14px; align-items: start; }
body.rp-checkout .money-back .image { width: 42px !important; height: 42px !important; min-height: 0 !important; border-radius: 12px; background-image: none !important; background-color: rgba(31,163,122,.18) !important; display: flex; align-items: center; justify-content: center; grid-row: 1 / 3; grid-column: 1; }
body.rp-checkout .money-back .image::before { content: "verified_user"; font-family: 'Material Symbols Rounded'; color: #3DD598; font-size: 24px; font-variation-settings: 'FILL' 1; }
body.rp-checkout .money-back h2 { font-family: 'Schibsted Grotesk', sans-serif; font-weight: 800; font-size: 16.5px !important; line-height: 1.25 !important; color: #fff !important; margin: 0 !important; grid-column: 2; align-self: center; display: block; text-align: left !important; }
body.rp-checkout .money-back p { font-size: 13px; color: #C9C0B8 !important; line-height: 1.55; margin: 0; grid-column: 2; text-align: left !important; }

/* support card (JS-injected) */
body.rp-checkout .rp-co-support { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--co-border); border-radius: 16px; padding: 16px 18px; }
body.rp-checkout .rp-co-support-ico { width: 40px; height: 40px; border-radius: 50%; background: var(--co-tint); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
body.rp-checkout .rp-co-support-ico .material-symbols-rounded { color: var(--co-coral); font-size: 21px; }
body.rp-checkout .rp-co-support-txt { line-height: 1.4; }
body.rp-checkout .rp-co-support-txt small { font-size: 12px; color: var(--co-faint); font-weight: 600; display: block; }
body.rp-checkout .rp-co-support-txt a { font-weight: 700; font-size: 14.5px; color: var(--co-ink); }

/* ================= RESPONSIVE ================= */
@media (max-width: 920px) {
	body.rp-checkout #edd_checkout_wrap { grid-template-columns: 1fr !important; gap: 18px !important; padding: 8px 18px 70px !important; }
	body.rp-checkout .checkout-cart-wrap { position: static; grid-column: 1; }
	body.rp-checkout #edd_checkout_form_wrap { grid-column: 1; }
	body.rp-checkout .rp-co-header { flex-direction: column; align-items: flex-start; }
	body.rp-checkout .rp-co-head-right { align-items: flex-start; text-align: left; }
	body.rp-checkout .rp-co-title { font-size: 30px; }
	body.rp-checkout #edd-payment-mode-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
	body.rp-checkout #edd_purchase_form #edd_checkout_user_info { grid-template-columns: 1fr; }
	body.rp-checkout #edd_purchase_form #edd_cc_address { grid-template-columns: 1fr; }
	body.rp-checkout #edd_cc_address > #edd-card-city-wrap,
	body.rp-checkout #edd_cc_address > #edd-card-state-wrap,
	body.rp-checkout #edd_cc_address > #edd-card-zip-wrap { grid-column: 1 / -1; }
	body.rp-checkout #edd_sl_renewal_form fieldset { grid-template-columns: 38px 1fr; }
	body.rp-checkout #edd_sl_show_renewal_form { grid-row: auto; grid-column: 2; justify-self: start; margin-top: 6px; }
}
