/*
 * Checkout Designs for EDD 1.0.0
 * Restyles the EDD Checkout block. Everything is scoped to #edd_checkout_form_wrap.cdfe, which outranks EDD's own
 * block styles (one id + two classes) without !important; !important is used only where EDD or the theme uses it.
 * The layout follows the space the block really has (container queries), not the window.
 */

/* ---------- Icons (masks, so they take the text colour) ---------- */
:root {
	--cdfe-i-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='11' width='16' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E");
	--cdfe-i-download: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v11M7 10l5 5 5-5M5 20h14'/%3E%3C/svg%3E");
	--cdfe-i-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.3-8 9-4.6-.7-8-4.5-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E");
	--cdfe-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
	--cdfe-i-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");
	--cdfe-i-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='5' width='19' height='14' rx='2'/%3E%3Cpath d='M2.5 10h19M6 15h4'/%3E%3C/svg%3E");
	--cdfe-i-wallet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 7V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3'/%3E%3Cpath d='M21 9h-5a3 3 0 0 0 0 6h5z'/%3E%3C/svg%3E");
	--cdfe-i-bank: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10h18M5 10v8M9.5 10v8M14.5 10v8M19 10v8M3 20h18M12 3l9 5H3z'/%3E%3C/svg%3E");
	--cdfe-i-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 3v5h5M12 11v6M9.5 14.5L12 17l2.5-2.5'/%3E%3C/svg%3E");
	--cdfe-i-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 7h12l1 13H5z'/%3E%3Cpath d='M9 7a3 3 0 0 1 6 0'/%3E%3C/svg%3E");
	--cdfe-i-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	--cdfe-i-quote: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 11H4V7h4v4c0 3-1.5 5-4 6M18 11h-4V7h4v4c0 3-1.5 5-4 6'/%3E%3C/svg%3E");
}
.cdfe-icon {
	display: inline-block;
	flex: none;
	width: 1em;
	height: 1em;
	background-color: currentColor;
	-webkit-mask: var(--cdfe-i) center / contain no-repeat;
	mask: var(--cdfe-i) center / contain no-repeat;
	vertical-align: -0.125em;
}
.cdfe-icon--lock { --cdfe-i: var(--cdfe-i-lock); }
.cdfe-icon--download { --cdfe-i: var(--cdfe-i-download); }
.cdfe-icon--shield { --cdfe-i: var(--cdfe-i-shield); }
.cdfe-icon--quote { --cdfe-i: var(--cdfe-i-quote); }
.cdfe-icon--bag { --cdfe-i: var(--cdfe-i-bag); }
.cdfe-icon--chevron { --cdfe-i: var(--cdfe-i-chevron); }

/* ---------- Frame: the block's own width decides the layout ---------- */
.cdfe-frame {
	container: cdfe / inline-size;
	box-sizing: border-box;
	width: 100%;
	max-width: var(--cdfe-frame-max, 1160px) !important;
	margin-left: auto !important;
	margin-right: auto !important;
}
.cdfe-frame--centered { --cdfe-frame-max: 620px; }

/* ---------- Shared tokens (each design changes some) ---------- */
#edd_checkout_form_wrap.cdfe {
	--cdfe-ink: #121316;
	--cdfe-muted: #52525b;
	--cdfe-faint: #71717a;
	--cdfe-line: #e4e4e7;
	--cdfe-soft: #f4f4f5;
	--cdfe-field-line: #d4d4d8;
	--cdfe-field-bg: #ffffff;
	--cdfe-field-h: 50px;
	--cdfe-field-bw: 1px;
	--cdfe-field-radius: 10px;
	--cdfe-label-size: 13px;
	--cdfe-label-weight: 600;
	--cdfe-label-track: 0;
	--cdfe-label-case: none;
	--cdfe-label-ink: #3f3f46;
	--cdfe-focus: var(--cdfe-accent);
	--cdfe-focus-ring: var(--cdfe-accent-ring);
	--cdfe-opt-on: var(--cdfe-accent);
	--cdfe-opt-on-bg: var(--cdfe-accent-faint);
	--cdfe-btn-h: 56px;
	--cdfe-btn-radius: 12px;
	--cdfe-section-gap: 32px;
	--cdfe-side: 400px;
	--cdfe-gap: 48px;
	--cdfe-panel-ink: var(--cdfe-ink);
	--cdfe-panel-muted: var(--cdfe-muted);
	--cdfe-panel-line: var(--cdfe-line);
	--cdfe-thumb: 56px;
	--cdfe-thumb-bg: var(--cdfe-soft);
	--cdfe-thumb-line: transparent;
	--cdfe-thumb-ink: var(--cdfe-muted);
	--cdfe-good: #15803d;
	--cdfe-good-soft: #e7f6ec;
	--cdfe-link: var(--cdfe-ink);

	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, var(--cdfe-side));
	grid-template-rows: repeat(5, auto) 1fr;
	column-gap: var(--cdfe-gap);
	row-gap: 0;
	align-items: start;
	box-sizing: border-box;
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	color: var(--cdfe-ink);
	font-size: 15px;
	line-height: 1.5;
}
#edd_checkout_form_wrap.cdfe > * {
	grid-column: 1;
	grid-row: auto;
	min-width: 0;
	margin: 0 0 28px;
	box-sizing: border-box;
}
#edd_checkout_form_wrap.cdfe > .cdfe-head { order: -30; }
#edd_checkout_form_wrap.cdfe > .edd-blocks__logged-in { order: -20; }
#edd_checkout_form_wrap.cdfe > .edd-alert,
#edd_checkout_form_wrap.cdfe > .edd_errors { order: 5; }
#edd_checkout_form_wrap.cdfe > .edd-blocks__purchase-form { order: 10; margin-bottom: 0; }
#edd_checkout_form_wrap.cdfe > .edd-blocks__cart {
	grid-column: 2;
	grid-row: 1 / -1;
	order: -10;
	position: sticky;
	top: calc(24px + var(--wp-admin--admin-bar--height, 0px));
	margin: 0;
	color: var(--cdfe-panel-ink);
}
#edd_checkout_form_wrap.cdfe a { color: var(--cdfe-link); }

/* ---------- Head: steps, heading, log in ---------- */
#edd_checkout_form_wrap.cdfe .cdfe-head { display: flex; flex-direction: column; gap: 20px; }
#edd_checkout_form_wrap.cdfe .cdfe-head__text { min-width: 0; }
#edd_checkout_form_wrap.cdfe .cdfe-title {
	margin: 0;
	padding: 0;
	color: var(--cdfe-ink);
	font-size: clamp(28px, 4vw, 36px);
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.02em;
	text-wrap: balance;
	text-transform: none;
}
#edd_checkout_form_wrap.cdfe .cdfe-login { margin: 8px 0 0; color: var(--cdfe-muted); font-size: 15px; }
#edd_checkout_form_wrap.cdfe .cdfe-login a { color: var(--cdfe-link); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
#edd_checkout_form_wrap.cdfe .cdfe-steps {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: cdfe-step;
	font-size: 13px;
	font-weight: 600;
}
#edd_checkout_form_wrap.cdfe .cdfe-step {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	color: var(--cdfe-faint);
	counter-increment: cdfe-step;
	list-style: none;
}
#edd_checkout_form_wrap.cdfe .cdfe-step.is-done,
#edd_checkout_form_wrap.cdfe .cdfe-step.is-current { color: var(--cdfe-ink); }

/* ---------- Order panel (EDD's cart) ---------- */
#edd_checkout_form_wrap.cdfe .cdfe-order-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin: 0 0 8px; }
#edd_checkout_form_wrap.cdfe .cdfe-order-title { margin: 0; padding: 0; color: inherit; font-size: 17px; font-weight: 700; line-height: 1.3; letter-spacing: normal; text-transform: none; }
#edd_checkout_form_wrap.cdfe .cdfe-count { color: var(--cdfe-panel-muted); font-size: 13px; }
#edd_checkout_form_wrap.cdfe .edd-blocks-form__cart { margin: 0; padding: 0; border: 0; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart {
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__row.edd-blocks-cart__row-header { display: none; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__items { order: 0; display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 0 0 6px; border: 0; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__row {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 10px 0;
	border: 0;
	background: none;
	text-align: start;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_name { display: block; flex: 1 1 auto; min-width: 0; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_checkout_cart_item_title {
	position: relative;
	display: flex;
	align-items: center;
	gap: 14px;
	color: var(--cdfe-panel-ink);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.35;
	overflow-wrap: anywhere;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_image { flex: none; margin: 0; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_image img {
	display: block;
	width: var(--cdfe-thumb);
	height: var(--cdfe-thumb);
	max-width: none;
	object-fit: cover;
	border-radius: 12px;
}
/* A product without an image gets a quiet file tile, so every row lines up. */
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_checkout_cart_item_title:not(:has(.edd_cart_item_image))::before {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: var(--cdfe-thumb);
	height: var(--cdfe-thumb);
	border: 1px solid var(--cdfe-thumb-line);
	border-radius: 12px;
	background: var(--cdfe-thumb-bg);
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_checkout_cart_item_title:not(:has(.edd_cart_item_image))::after {
	content: "";
	position: absolute;
	inset-inline-start: calc(var(--cdfe-thumb) / 2 - 12px);
	top: 50%;
	width: 24px;
	height: 24px;
	margin-top: -12px;
	background-color: var(--cdfe-thumb-ink);
	-webkit-mask: var(--cdfe-i-file) center / contain no-repeat;
	mask: var(--cdfe-i-file) center / contain no-repeat;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_name .edd_cart_actions { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; padding-inline-start: calc(var(--cdfe-thumb) + 14px); font-size: 13px; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_name .edd_cart_actions input.edd-item-quantity { width: 64px !important; height: 34px; padding: 0 8px; border: 1px solid var(--cdfe-panel-line); border-radius: 8px; background: transparent; color: inherit; font: inherit; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_price {
	display: flex;
	flex: none;
	align-items: center;
	gap: 4px;
	color: var(--cdfe-panel-ink);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_price .edd_cart_actions { display: flex; margin: 0; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__action-remove,
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_discount_remove {
	position: relative;
	display: block;
	width: 32px;
	height: 32px;
	margin: 0 -6px 0 2px;
	border-radius: 8px;
	background: none;
	box-shadow: none;
	color: var(--cdfe-panel-muted);
	opacity: 1;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__action-remove::before,
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_discount_remove::before {
	content: "";
	position: absolute;
	inset: 9px;
	background-color: currentColor;
	-webkit-mask: var(--cdfe-i-x) center / contain no-repeat;
	mask: var(--cdfe-i-x) center / contain no-repeat;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__action-remove:hover,
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__action-remove:focus-visible { color: var(--cdfe-panel-ink); background: var(--cdfe-panel-hover, rgba(0, 0, 0, .06)); }

/* Footer rows: discount form, then the discount/fee/tax lines, then the total. */
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__row-footer { order: 2; flex-wrap: wrap; justify-content: space-between; padding: 6px 0; text-align: start; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__row-footer > div { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; text-align: start; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_footer_row:has(> .edd_cart_total) { display: contents; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart #edd_discount_code {
	display: block;
	flex: none;
	order: 1;
	width: 100%;
	margin: 8px 0 10px;
	padding: 16px 0 0;
	border-top: 1px solid var(--cdfe-panel-line);
	text-align: start;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_total {
	display: flex;
	flex: none;
	order: 3;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	margin-top: 12px;
	padding-top: 16px;
	border-top: 1px solid var(--cdfe-panel-line);
	color: var(--cdfe-panel-ink);
	font-size: 15px;
	font-weight: 600;
	text-align: start;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_amount { font-size: 26px; font-weight: 800; line-height: 1.1; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd-blocks-cart__row-buttons { order: 4; justify-content: flex-end; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_discount,
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_subtotal,
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_tax { color: var(--cdfe-panel-muted); font-size: 14px; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_discount .edd_discount {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 2px 2px 2px 10px;
	border-radius: 999px;
	background: var(--cdfe-good-soft);
	color: var(--cdfe-good);
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
}
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_discount_rate { font-weight: 500; opacity: .85; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_discount .edd_discount_remove { width: 24px; height: 24px; margin: 0; border-radius: 50%; color: inherit; }
#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_discount .edd_discount_remove::before { inset: 6px; }

/* The discount form: always open, with its label shown. */
#edd_checkout_form_wrap.cdfe #edd_show_discount { display: none !important; }
#edd_checkout_form_wrap.cdfe #edd-discount-code-wrap { display: block !important; margin: 0; padding: 0 !important; border: 0 !important; background: none !important; }
#edd_checkout_form_wrap.cdfe #edd-discount-code-wrap > label.screen-reader-text {
	position: static !important;
	display: block;
	width: auto !important;
	height: auto !important;
	margin: 0 0 8px !important;
	padding: 0 !important;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	border: 0;
	color: var(--cdfe-panel-muted);
	font-size: 13px;
	font-weight: 600;
	white-space: normal;
	word-wrap: normal !important;
}
#edd_checkout_form_wrap.cdfe .edd-discount-code-field-wrap { display: flex; flex-wrap: nowrap; align-items: stretch; gap: 8px; }
#edd_checkout_form_wrap.cdfe .edd-discount-code-field-wrap #edd-discount {
	flex: 1 1 auto;
	min-width: 0;
	height: 44px;
	margin: 0 !important;
	padding: 0 14px;
	border: var(--cdfe-field-bw) solid var(--cdfe-disc-line, var(--cdfe-field-line));
	border-radius: var(--cdfe-field-radius);
	background: var(--cdfe-disc-bg, #fff);
	box-shadow: none;
	color: var(--cdfe-disc-ink, var(--cdfe-ink));
	font: inherit;
	font-size: 15px;
}
#edd_checkout_form_wrap.cdfe .edd-discount-code-field-wrap #edd-discount:focus { border-color: var(--cdfe-focus); box-shadow: 0 0 0 3px var(--cdfe-focus-ring); outline: none; }
#edd_checkout_form_wrap.cdfe .edd-discount-code-field-wrap .edd-apply-discount {
	flex: none;
	height: 44px;
	min-height: 0;
	margin: 0 !important;
	padding: 0 18px;
	border: var(--cdfe-field-bw) solid var(--cdfe-apply-line, var(--cdfe-field-line));
	border-radius: var(--cdfe-field-radius);
	background: var(--cdfe-apply-bg, #fff);
	box-shadow: none;
	color: var(--cdfe-apply-ink, var(--cdfe-ink));
	font: inherit;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transform: none;
}
#edd_checkout_form_wrap.cdfe .edd-discount-code-field-wrap .edd-apply-discount:hover { transform: none; filter: brightness(.96); }
#edd_checkout_form_wrap.cdfe #edd-discount-error-wrap { margin: 8px 0 0; padding: 8px 12px; border: 0; border-radius: 8px; background: #fef2f2; color: #991b1b; font-size: 13px; }

/* ---------- Trust points, quote ---------- */
#edd_checkout_form_wrap.cdfe .cdfe-trust { margin: 24px 0 0; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__title { margin: 0 0 14px; padding: 0; color: var(--cdfe-panel-muted); font-size: 12px; font-weight: 700; letter-spacing: .08em; line-height: 1.3; text-transform: uppercase; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__list { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__item { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 0; list-style: none; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__badge { display: flex; flex: none; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: var(--cdfe-badge-bg, var(--cdfe-accent-soft)); color: var(--cdfe-badge-ink, var(--cdfe-accent-text, var(--cdfe-ink))); font-size: 17px; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__text strong { color: var(--cdfe-panel-ink); font-size: 14.5px; font-weight: 600; line-height: 1.35; }
#edd_checkout_form_wrap.cdfe .cdfe-trust__text span { color: var(--cdfe-panel-muted); font-size: 13px; line-height: 1.45; }
#edd_checkout_form_wrap.cdfe .cdfe-quote { display: flex; flex-direction: column; gap: 12px; margin: 24px 0 0; padding: 20px; border: 1px solid var(--cdfe-panel-line); border-radius: 16px; background: var(--cdfe-quote-bg, transparent); }
#edd_checkout_form_wrap.cdfe .cdfe-quote > .cdfe-icon { color: var(--cdfe-accent-text, var(--cdfe-accent)); font-size: 26px; }
#edd_checkout_form_wrap.cdfe .cdfe-quote blockquote { margin: 0; padding: 0; border: 0; background: none; color: var(--cdfe-panel-ink); font-size: 15.5px; font-style: normal; line-height: 1.55; quotes: none; }
#edd_checkout_form_wrap.cdfe .cdfe-quote blockquote::before,
#edd_checkout_form_wrap.cdfe .cdfe-quote blockquote::after { content: none; }
#edd_checkout_form_wrap.cdfe .cdfe-quote blockquote p { margin: 0; font-size: inherit; line-height: inherit; }
#edd_checkout_form_wrap.cdfe .cdfe-quote figcaption { color: var(--cdfe-panel-muted); font-size: 14px; font-weight: 600; }

/* ---------- Form ---------- */
#edd_checkout_form_wrap.cdfe #edd_purchase_form { margin: 0; padding: 0; border: 0; counter-reset: cdfe-section; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks__user-details,
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks__checkout-user,
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-checkout-block__personal-info,
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks__payment-details,
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_payment_mode_select_wrap,
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_purchase_form_wrap { margin: 0; padding: 0; border: 0; background: none; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks__checkout-user { position: relative; }

/* Every section (fieldset) the same way: a two-column grid with its legend on top. */
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form,
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_payment_mode_select {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	min-width: 0;
	margin: 0 0 var(--cdfe-section-gap);
	padding: var(--cdfe-card-pad, 0);
	border: var(--cdfe-card-border, 0);
	border-radius: var(--cdfe-card-radius, 0);
	background: var(--cdfe-card-bg, transparent);
	box-shadow: var(--cdfe-card-shadow, none);
}
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_payment_mode_select { grid-template-columns: minmax(0, 1fr); }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form > *,
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_payment_mode_select > * { grid-column: 1 / -1; min-width: 0; margin: 0; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form > legend,
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_payment_mode_select > legend {
	float: left; /* a floated legend becomes an ordinary grid item */
	display: flex;
	align-items: center;
	gap: 12px;
	width: 100%;
	margin: 0 0 2px;
	padding: 0;
	border: 0;
	color: var(--cdfe-ink);
	font-size: 20px;
	font-weight: 700;
	line-height: 1.3;
	letter-spacing: -0.01em;
	counter-increment: cdfe-section;
}
/* Halves: first + last name, password + confirm, city + postcode. */
#edd_checkout_form_wrap.cdfe #edd_checkout_user_info:has(#edd-last-name-wrap) > #edd-first-name-wrap,
#edd_checkout_form_wrap.cdfe #edd_checkout_user_info:has(#edd-first-name-wrap) > #edd-last-name-wrap,
#edd_checkout_form_wrap.cdfe #edd_register_fields > .user-pass1-wrap,
#edd_checkout_form_wrap.cdfe #edd_register_fields > .user-pass2-wrap,
#edd_checkout_form_wrap.cdfe #edd_cc_address:has(#edd-card-zip-wrap) > #edd-card-city-wrap,
#edd_checkout_form_wrap.cdfe #edd_cc_address:has(#edd-card-city-wrap) > #edd-card-zip-wrap,
#edd_checkout_form_wrap.cdfe #edd_cc_address.cc-address--country-zip > #edd-card-country-wrap,
#edd_checkout_form_wrap.cdfe #edd_cc_address.cc-address--country-zip > #edd-card-zip-wrap { grid-column: span 1; }

#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form__group > label,
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-label {
	display: block;
	margin: 0 0 6px !important;
	color: var(--cdfe-label-ink);
	font-size: var(--cdfe-label-size);
	font-weight: var(--cdfe-label-weight);
	letter-spacing: var(--cdfe-label-track);
	line-height: 1.35;
	text-transform: var(--cdfe-label-case);
}
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-required-indicator { margin-inline-start: 2px; color: #c2410c; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="text"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="email"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="password"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="tel"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="number"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form input[type="url"],
#edd_checkout_form_wrap.cdfe #edd_purchase_form select,
#edd_checkout_form_wrap.cdfe #edd_purchase_form textarea {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: var(--cdfe-field-h);
	margin: 0;
	padding: 0 14px;
	border: var(--cdfe-field-bw) solid var(--cdfe-field-line);
	border-radius: var(--cdfe-field-radius);
	background-color: var(--cdfe-field-bg);
	box-shadow: none;
	color: var(--cdfe-ink);
	font: inherit;
	font-size: 15px;
	line-height: 1.3;
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
#edd_checkout_form_wrap.cdfe #edd_purchase_form textarea { height: auto; min-height: 96px; padding: 12px 14px; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form select {
	padding-inline-end: 40px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2352525b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-position: right 14px center;
	background-repeat: no-repeat;
	background-size: 16px;
	-webkit-appearance: none;
	appearance: none;
}
[dir="rtl"] #edd_checkout_form_wrap.cdfe #edd_purchase_form select { background-position: left 14px center; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form input:focus,
#edd_checkout_form_wrap.cdfe #edd_purchase_form select:focus,
#edd_checkout_form_wrap.cdfe #edd_purchase_form textarea:focus { border-color: var(--cdfe-focus); box-shadow: 0 0 0 3px var(--cdfe-focus-ring); }
#edd_checkout_form_wrap.cdfe #edd_purchase_form input::placeholder { color: #8b8b94; opacity: 1; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-description { margin: 6px 0 0; color: var(--cdfe-muted); font-size: 13px; line-height: 1.45; }
#edd_checkout_form_wrap.cdfe.cdfe--no-name-notes #edd-first-description,
#edd_checkout_form_wrap.cdfe.cdfe--no-name-notes #edd-last-description { display: none; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form__group--card-expiration select { display: inline-block !important; width: calc(50% - 14px) !important; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .exp-divider { display: inline-block; width: 20px; text-align: center; color: var(--cdfe-muted); }
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form__halves { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd_secure_site_wrapper { display: flex; align-items: center; gap: 8px; color: var(--cdfe-good); font-size: 13px; font-weight: 600; }
#edd_checkout_form_wrap.cdfe #edd_purchase_form #edd-stripe-card-element,
#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-stripe-card-element.StripeElement { min-height: var(--cdfe-field-h); padding: 15px 14px; border: var(--cdfe-field-bw) solid var(--cdfe-field-line); border-radius: var(--cdfe-field-radius); background: var(--cdfe-field-bg); box-sizing: border-box; }

/* Register / Log in switch (when EDD offers both) */
#edd_checkout_form_wrap.cdfe #edd-account-forms { position: static; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; margin: 0 0 16px; }
#edd_checkout_form_wrap.cdfe #edd-account-forms button {
	min-height: 40px;
	margin: 0;
	padding: 0 16px;
	border: 1px solid var(--cdfe-field-line);
	border-radius: 999px;
	background: #fff;
	box-shadow: none;
	color: var(--cdfe-ink);
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transform: none;
}
#edd_checkout_form_wrap.cdfe #edd-account-forms button:hover { border-color: var(--cdfe-ink); }
#edd_checkout_form_wrap.cdfe #edd-account-forms button:disabled { display: none; }
#edd_checkout_form_wrap.cdfe #edd_login_fields .edd-blocks-form__group-lost-password { margin: 0; font-size: 14px; }
#edd_checkout_form_wrap.cdfe #edd_login_fields #edd-user-login-submit input[type="submit"] {
	min-height: 46px;
	padding: 0 22px;
	border: 0;
	border-radius: var(--cdfe-field-radius);
	background: var(--cdfe-ink);
	color: #fff;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
	transform: none;
}

/* Logged-in line */
#edd_checkout_form_wrap.cdfe > .edd-blocks__logged-in { margin: 0 0 28px; padding: 12px 16px; border-radius: 12px; background: var(--cdfe-soft); color: var(--cdfe-muted); font-size: 14px; line-height: 1.5; }
#edd_checkout_form_wrap.cdfe > .edd-blocks__logged-in strong { color: var(--cdfe-ink); }
#edd_checkout_form_wrap.cdfe > .edd-blocks__logged-in a { color: var(--cdfe-ink); font-weight: 600; }

/* Payment methods: selectable cards with the radio shown */
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap { display: flex; flex-direction: column; gap: 10px; margin: 0; }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label.edd-gateway-option {
	position: relative;
	display: flex !important;
	flex: 0 0 auto;
	align-items: center;
	justify-content: flex-start;
	gap: 12px;
	box-sizing: border-box;
	min-height: 58px;
	margin: 0 !important;
	padding: 0 16px;
	border: var(--cdfe-field-bw) solid var(--cdfe-field-line);
	border-radius: var(--cdfe-opt-radius, 12px);
	background: #fff;
	box-shadow: none;
	color: var(--cdfe-ink);
	font-size: 15px;
	font-weight: 600;
	text-align: start;
	cursor: pointer;
	transform: none;
	transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label.edd-gateway-option:hover { transform: none; background: #fff; border-color: var(--cdfe-opt-hover, var(--cdfe-faint)); }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label.edd-gateway-option.edd-gateway-option-selected { border-color: var(--cdfe-opt-on); background: var(--cdfe-opt-on-bg); box-shadow: 0 0 0 1px var(--cdfe-opt-on); }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap input.edd-gateway { position: static; flex: none; width: 18px; height: 18px; margin: 0; opacity: 1; accent-color: var(--cdfe-opt-on); }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label.edd-gateway-option::after {
	content: "";
	flex: none;
	width: 22px;
	height: 22px;
	margin-inline-start: auto;
	background-color: var(--cdfe-muted);
	-webkit-mask: var(--cdfe-i-bank) center / contain no-repeat;
	mask: var(--cdfe-i-bank) center / contain no-repeat;
}
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label[id^="edd-gateway-option-stripe"]::after,
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label[id^="edd-gateway-option-square"]::after,
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label[id^="edd-gateway-option-authorize"]::after,
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label[id^="edd-gateway-option-braintree"]::after { -webkit-mask-image: var(--cdfe-i-card); mask-image: var(--cdfe-i-card); }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label[id^="edd-gateway-option-paypal"]::after { -webkit-mask-image: var(--cdfe-i-wallet); mask-image: var(--cdfe-i-wallet); }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap label.edd-gateway-option:has(.edd-payment-icons)::after { display: none; }
#edd_checkout_form_wrap.cdfe #edd-payment-mode-wrap .edd-payment-icons { margin-inline-start: auto; }

/* Buy button + the trust line under it */
#edd_checkout_form_wrap.cdfe #edd_purchase_submit { display: block; min-width: 0; margin: 8px 0 0; padding: 0; border: 0; }
#edd_checkout_form_wrap.cdfe #edd_purchase_submit #edd-purchase-button,
#edd_checkout_form_wrap.cdfe #edd-purchase-button {
	display: block;
	box-sizing: border-box;
	width: 100%;
	min-height: var(--cdfe-btn-h);
	margin: 0;
	padding: 0 24px;
	border: 0;
	border-radius: var(--cdfe-btn-radius);
	background: var(--cdfe-accent);
	box-shadow: none;
	color: var(--cdfe-on-accent);
	font: inherit;
	font-size: 17px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: .01em;
	text-align: center;
	text-shadow: none;
	white-space: normal;
	cursor: pointer;
	transform: none;
	-webkit-appearance: none;
	appearance: none;
	transition: filter .15s ease;
}
#edd_checkout_form_wrap.cdfe #edd-purchase-button:hover { transform: none; filter: brightness(.94); }
#edd_checkout_form_wrap.cdfe #edd-purchase-button:focus-visible { outline: 3px solid var(--cdfe-ink); outline-offset: 3px; }
#edd_checkout_form_wrap.cdfe #edd-purchase-button:disabled { cursor: progress; opacity: .75; }
#edd_checkout_form_wrap.cdfe .cdfe-note { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 14px 0 0; padding: 0; color: var(--cdfe-muted); font-size: 13px; list-style: none; }
#edd_checkout_form_wrap.cdfe .cdfe-note li { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 0; list-style: none; }

/* Errors */
#edd_checkout_form_wrap.cdfe .edd_errors,
#edd_checkout_form_wrap.cdfe .edd-alert-error { margin: 0 0 20px; padding: 12px 16px; border: 1px solid #fecaca; border-radius: 12px; background: #fef2f2; color: #991b1b; font-size: 14px; }
#edd_checkout_form_wrap.cdfe .edd_errors p,
#edd_checkout_form_wrap.cdfe .edd-alert-error p { margin: 0; }
#edd_checkout_form_wrap.cdfe #edd_terms_agreement,
#edd_checkout_form_wrap.cdfe #edd-privacy-policy-agreement { margin: 0 0 16px; font-size: 14px; }

/* =====================================================================
   Design: Bold Dark Sidebar
   ===================================================================== */
#edd_checkout_form_wrap.cdfe--bold {
	--cdfe-side: 440px;
	--cdfe-gap: 56px;
	--cdfe-field-h: 52px;
	--cdfe-field-bw: 1.5px;
	--cdfe-field-radius: 12px;
	--cdfe-field-bg: #fafafa;
	--cdfe-label-size: 12px;
	--cdfe-label-weight: 700;
	--cdfe-label-track: .07em;
	--cdfe-label-case: uppercase;
	--cdfe-focus: #121316;
	--cdfe-opt-on: #121316;
	--cdfe-opt-on-bg: #fafafa;
	--cdfe-opt-hover: #a1a1aa;
	--cdfe-btn-h: 60px;
	--cdfe-btn-radius: 14px;
	--cdfe-section-gap: 36px;
	--cdfe-panel-ink: #f4f4f5;
	--cdfe-panel-muted: #a1a1aa;
	--cdfe-panel-line: #2a2d34;
	--cdfe-panel-hover: rgba(255, 255, 255, .08);
	--cdfe-thumb: 64px;
	--cdfe-thumb-bg: #1d1f24;
	--cdfe-thumb-line: #2a2d34;
	--cdfe-thumb-ink: var(--cdfe-accent);
	--cdfe-badge-bg: #1d1f24;
	--cdfe-badge-ink: var(--cdfe-accent);
	--cdfe-quote-bg: #1a1c21;
	--cdfe-accent-text: var(--cdfe-accent);
	--cdfe-good: var(--cdfe-accent);
	--cdfe-good-soft: var(--cdfe-accent-soft);
	--cdfe-disc-bg: #1b1d22;
	--cdfe-disc-line: #34363d;
	--cdfe-disc-ink: #fafafa;
	--cdfe-apply-bg: transparent;
	--cdfe-apply-line: #52525b;
	--cdfe-apply-ink: #fafafa;
}
#edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart { padding: 32px; border-radius: 22px; background: #111215; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-order-head { margin-bottom: 14px; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-order-title { color: var(--cdfe-accent); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
#edd_checkout_form_wrap.cdfe--bold #edd_checkout_cart .edd_checkout_cart_item_title { font-size: 16px; }
#edd_checkout_form_wrap.cdfe--bold #edd_checkout_cart .edd_cart_item_image img { border-radius: 14px; }
#edd_checkout_form_wrap.cdfe--bold #edd_checkout_cart .edd_cart_amount { color: #fff; font-size: clamp(32px, 4vw, 44px); font-weight: 800; letter-spacing: -0.02em; }
#edd_checkout_form_wrap.cdfe--bold #edd_checkout_cart .edd_cart_total { align-items: center; }
#edd_checkout_form_wrap.cdfe--bold #edd-discount-code-wrap > label.screen-reader-text { color: #d4d4d8; }
#edd_checkout_form_wrap.cdfe--bold .edd-discount-code-field-wrap #edd-discount::placeholder { color: #8b8b94; opacity: 1; }
#edd_checkout_form_wrap.cdfe--bold .edd-discount-code-field-wrap #edd-discount:focus { border-color: var(--cdfe-accent); }
#edd_checkout_form_wrap.cdfe--bold .cdfe-head { gap: 28px; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-steps { order: -1; gap: 8px; width: 100%; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-step { flex: 1 1 0; flex-direction: column; align-items: stretch; gap: 8px; min-width: 0; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-step__mark { display: block; height: 4px; overflow: hidden; border-radius: 4px; background: var(--cdfe-line); font-size: 0; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-step.is-done .cdfe-step__mark,
#edd_checkout_form_wrap.cdfe--bold .cdfe-step.is-current .cdfe-step__mark { background: var(--cdfe-ink); }
#edd_checkout_form_wrap.cdfe--bold .cdfe-step__label::before { content: counter(cdfe-step, decimal-leading-zero) " "; }
#edd_checkout_form_wrap.cdfe--bold .cdfe-title { font-size: clamp(36px, 5vw, 48px); font-weight: 800; line-height: 1; letter-spacing: -0.03em; }
#edd_checkout_form_wrap.cdfe--bold #edd_purchase_form .edd-blocks-form > legend,
#edd_checkout_form_wrap.cdfe--bold #edd_purchase_form #edd_payment_mode_select > legend { align-items: baseline; font-size: 21px; font-weight: 800; }
#edd_checkout_form_wrap.cdfe--bold #edd_purchase_form .edd-blocks-form > legend::before,
#edd_checkout_form_wrap.cdfe--bold #edd_purchase_form #edd_payment_mode_select > legend::before { content: counter(cdfe-section, decimal-leading-zero); color: var(--cdfe-faint); font-size: 13px; font-weight: 700; letter-spacing: .06em; }
#edd_checkout_form_wrap.cdfe--bold #edd-payment-mode-wrap { flex-direction: row; flex-wrap: wrap; gap: 12px; }
#edd_checkout_form_wrap.cdfe--bold #edd-payment-mode-wrap label.edd-gateway-option { flex: 1 1 200px; min-height: 64px; border-radius: 14px; }
#edd_checkout_form_wrap.cdfe--bold #edd-purchase-button { font-size: 18px; font-weight: 800; }

/* =====================================================================
   Design: Modern Split
   ===================================================================== */
#edd_checkout_form_wrap.cdfe--split {
	--cdfe-ink: #0f172a;
	--cdfe-muted: #4b5565;
	--cdfe-faint: #5f6b7c;
	--cdfe-line: #e4e7ec;
	--cdfe-soft: #f2f4f7;
	--cdfe-field-line: #d0d5dd;
	--cdfe-label-ink: #344054;
	--cdfe-side: 400px;
	--cdfe-gap: 32px;
	--cdfe-card-bg: #fff;
	--cdfe-card-border: 1px solid #e4e7ec;
	--cdfe-card-radius: 16px;
	--cdfe-card-pad: 28px;
	--cdfe-card-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	--cdfe-section-gap: 20px;
	--cdfe-panel-line: #eaecf0;
	--cdfe-panel-muted: #5f6b7c;
	--cdfe-thumb-bg: var(--cdfe-accent-soft);
	--cdfe-thumb-ink: var(--cdfe-accent);
	--cdfe-accent-text: var(--cdfe-accent);
	--cdfe-quote-bg: #fff;
	--cdfe-link: var(--cdfe-accent);
	--cdfe-good: #16794a;
}
#edd_checkout_form_wrap.cdfe--split > .edd-blocks__cart { display: flex; flex-direction: column; }
#edd_checkout_form_wrap.cdfe--split .cdfe-order-head { margin: 0; padding: 24px 24px 6px; border: 1px solid #e4e7ec; border-bottom: 0; border-radius: 16px 16px 0 0; background: #fff; }
#edd_checkout_form_wrap.cdfe--split #edd_checkout_cart_form { padding: 6px 24px 24px; border: 1px solid #e4e7ec; border-top: 0; border-radius: 0 0 16px 16px; background: #fff; box-shadow: 0 1px 2px rgba(16, 24, 40, .05); }
#edd_checkout_form_wrap.cdfe--split .cdfe-discount-fallback { margin-top: 16px; padding: 20px 24px; border: 1px solid #e4e7ec; border-radius: 16px; background: #fff; }
#edd_checkout_form_wrap.cdfe--split .cdfe-trust { margin-top: 16px; padding: 20px 24px; border: 1px solid #e4e7ec; border-radius: 16px; background: #fff; }
#edd_checkout_form_wrap.cdfe--split .cdfe-quote { margin-top: 16px; }
#edd_checkout_form_wrap.cdfe--split .cdfe-head { flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 16px 32px; }
#edd_checkout_form_wrap.cdfe--split .cdfe-step__mark { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 24px; height: 24px; border: 1.5px solid #c4cad4; border-radius: 50%; color: var(--cdfe-faint); font-size: 12px; }
#edd_checkout_form_wrap.cdfe--split .cdfe-step.is-current .cdfe-step__mark { border-color: var(--cdfe-accent); background: var(--cdfe-accent); color: var(--cdfe-on-accent); }
#edd_checkout_form_wrap.cdfe--split .cdfe-step.is-done .cdfe-step__mark { position: relative; border-color: transparent; background: #e7f6ec; color: transparent; }
#edd_checkout_form_wrap.cdfe--split .cdfe-step.is-done .cdfe-step__mark::after { content: ""; position: absolute; inset: 5px; background-color: #16794a; -webkit-mask: var(--cdfe-i-check) center / contain no-repeat; mask: var(--cdfe-i-check) center / contain no-repeat; }
#edd_checkout_form_wrap.cdfe--split .cdfe-step + .cdfe-step::before { content: ""; width: 28px; height: 1px; background: #d0d5dd; }
#edd_checkout_form_wrap.cdfe--split #edd_purchase_form .edd-blocks-form > legend::before,
#edd_checkout_form_wrap.cdfe--split #edd_purchase_form #edd_payment_mode_select > legend::before {
	content: counter(cdfe-section);
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	background: var(--cdfe-accent);
	color: var(--cdfe-on-accent);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0;
}
#edd_checkout_form_wrap.cdfe--split #edd_purchase_form .edd-blocks-form > legend,
#edd_checkout_form_wrap.cdfe--split #edd_purchase_form #edd_payment_mode_select > legend { font-size: 18px; }

/* =====================================================================
   Design: Clean Centered
   ===================================================================== */
#edd_checkout_form_wrap.cdfe--centered {
	--cdfe-ink: #18181b;
	--cdfe-section-gap: 28px;
	--cdfe-btn-h: 54px;
	--cdfe-btn-radius: 10px;
	--cdfe-thumb: 48px;
	--cdfe-thumb-bg: #fff;
	--cdfe-thumb-line: #e4e4e7;
	--cdfe-thumb-ink: #3f3f46;
	--cdfe-link: var(--cdfe-accent);
	--cdfe-label-weight: 500;
	--cdfe-opt-radius: 0;
	grid-template-columns: minmax(0, 1fr);
	grid-template-rows: none;
}
#edd_checkout_form_wrap.cdfe--centered > .edd-blocks__cart { grid-column: 1; grid-row: auto; position: static; margin: 0 0 32px; padding: 0; border: 1px solid #e4e4e7; border-radius: 14px; background: #fafafa; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-order-toggle {
	display: flex;
	align-items: center;
	gap: 10px;
	box-sizing: border-box;
	width: 100%;
	min-height: 56px;
	margin: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 14px;
	background: transparent;
	box-shadow: none;
	color: var(--cdfe-ink);
	font: inherit;
	font-size: 15px;
	text-align: start;
	cursor: pointer;
	transform: none;
}
#edd_checkout_form_wrap.cdfe--centered .cdfe-order-toggle:focus-visible { outline: 3px solid var(--cdfe-accent-ring); outline-offset: 0; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-order-toggle .cdfe-icon--bag { font-size: 18px; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-order-title { font-size: 15px; font-weight: 600; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-chevron { color: var(--cdfe-muted); font-size: 16px; transform: rotate(180deg); transition: transform .15s ease; }
#edd_checkout_form_wrap.cdfe--centered.cdfe-order-closed .cdfe-chevron { transform: none; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-order-toggle__total { margin-inline-start: auto; font-weight: 700; font-variant-numeric: tabular-nums; }
#edd_checkout_form_wrap.cdfe--centered #edd_checkout_cart_form,
#edd_checkout_form_wrap.cdfe--centered .cdfe-discount-fallback { padding: 6px 18px 18px; border-top: 1px solid #e4e4e7; }
#edd_checkout_form_wrap.cdfe--centered.cdfe-order-closed #edd_checkout_cart_form,
#edd_checkout_form_wrap.cdfe--centered.cdfe-order-closed .cdfe-discount-fallback { display: none; }
#edd_checkout_form_wrap.cdfe--centered #edd_checkout_cart .edd_cart_item_image img { border-radius: 10px; }
#edd_checkout_form_wrap.cdfe--centered #edd_checkout_cart .edd_cart_amount { font-size: 22px; font-weight: 700; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-head { align-items: center; text-align: center; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-steps { order: -1; justify-content: center; gap: 12px; font-size: 14px; font-weight: 500; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step__mark { display: none; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step.is-done { color: var(--cdfe-muted); }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step.is-done::before { content: ""; width: 15px; height: 15px; background-color: currentColor; -webkit-mask: var(--cdfe-i-check) center / contain no-repeat; mask: var(--cdfe-i-check) center / contain no-repeat; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step.is-current { font-weight: 600; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step.is-current::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--cdfe-accent); }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step + .cdfe-step { gap: 6px; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step:not(:first-child) { position: relative; padding-inline-start: 40px; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-step:not(:first-child)::after { content: ""; position: absolute; inset-inline-start: 0; top: 50%; width: 28px; height: 1px; background: #d4d4d8; }
#edd_checkout_form_wrap.cdfe--centered .cdfe-title { font-size: 30px; font-weight: 600; }
#edd_checkout_form_wrap.cdfe--centered #edd_purchase_form .edd-blocks-form > legend,
#edd_checkout_form_wrap.cdfe--centered #edd_purchase_form #edd_payment_mode_select > legend { font-size: 18px; font-weight: 600; letter-spacing: 0; }
#edd_checkout_form_wrap.cdfe--centered #edd-payment-mode-wrap { gap: 0; overflow: hidden; border: 1px solid var(--cdfe-field-line); border-radius: 12px; }
#edd_checkout_form_wrap.cdfe--centered #edd-payment-mode-wrap label.edd-gateway-option { min-height: 56px; border: 0; border-radius: 0; }
#edd_checkout_form_wrap.cdfe--centered #edd-payment-mode-wrap label.edd-gateway-option + label.edd-gateway-option { border-top: 1px solid var(--cdfe-line); }
#edd_checkout_form_wrap.cdfe--centered #edd-payment-mode-wrap label.edd-gateway-option.edd-gateway-option-selected { box-shadow: none; }
#edd_checkout_form_wrap.cdfe--centered #edd-purchase-button { font-size: 16px; font-weight: 600; }

/* ---------- Narrow: one column (the block's width, not the window's) ---------- */
@container cdfe (max-width: 880px) {
	#edd_checkout_form_wrap.cdfe { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
	#edd_checkout_form_wrap.cdfe > .edd-blocks__cart { grid-column: 1; grid-row: auto; position: static; margin: 0 0 28px; }
	#edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart { padding: 24px 20px; border-radius: 18px; }
}
@container cdfe (max-width: 520px) {
	#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form > *,
	#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form__halves { grid-column: 1 / -1 !important; }
	#edd_checkout_form_wrap.cdfe #edd_purchase_form .edd-blocks-form__halves { grid-template-columns: minmax(0, 1fr); }
	#edd_checkout_form_wrap.cdfe--split { --cdfe-card-pad: 20px; }
	#edd_checkout_form_wrap.cdfe--split .cdfe-order-head { padding: 20px 20px 6px; }
	#edd_checkout_form_wrap.cdfe--split #edd_checkout_cart_form { padding: 6px 20px 20px; }
	#edd_checkout_form_wrap.cdfe #edd_checkout_cart .edd_cart_item_name .edd_cart_actions { padding-inline-start: 0; }
}

/* ---------- Theme page title hidden (the design shows its own heading) ---------- */
body.cdfe-hide-title .wp-block-post-title,
body.cdfe-hide-title .entry-title,
body.cdfe-hide-title .page-title { display: none !important; }

/* =====================================================================
   Distraction-free page
   ===================================================================== */
body.cdfe-df { margin: 0; background: #fff; }
body.cdfe-df.cdfe-page--split { background: #f3f4f7; }
.cdfe-bar { border-bottom: 1px solid #e4e4e7; background: #fff; }
.cdfe-bar__in {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 10px 24px;
	box-sizing: border-box;
	max-width: 1208px; /* the checkout's 1160px plus this bar's own side padding, so the logo lines up with the form */
	margin: 0 auto;
	padding: 14px 24px;
}
.cdfe-brand { display: inline-flex; align-items: center; gap: 10px; color: #121316; font-size: 19px; font-weight: 800; letter-spacing: -0.01em; line-height: 1.2; text-decoration: none; }
.cdfe-brand:hover { color: #121316; }
.cdfe-brand__logo { display: block; width: auto; height: auto; max-height: 40px; max-width: 200px; }
.cdfe-bar__secure { display: inline-flex; align-items: center; gap: 8px; color: #15803d; font-size: 13px; font-weight: 600; }
.cdfe-main { box-sizing: border-box; padding: 40px 24px 72px; }
.cdfe-main > :not(.cdfe-frame) { max-width: 1160px; margin-left: auto; margin-right: auto; }
body.cdfe-df.cdfe-page--centered .cdfe-bar { border-bottom: 0; background: transparent; }
body.cdfe-df.cdfe-page--centered .cdfe-bar__in { flex-direction: column; justify-content: center; gap: 6px; padding-top: 36px; }
body.cdfe-df.cdfe-page--centered .cdfe-main { padding-top: 24px; }

/* Bold: the dark panel runs the full height of the page on the right. */
body.cdfe-df.cdfe-page--bold .cdfe-main { padding: 0; }
body.cdfe-df.cdfe-page--bold .cdfe-frame { max-width: none !important; }
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold { column-gap: 0; grid-template-columns: minmax(0, 1fr) minmax(380px, 42%); }
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > :not(.edd-blocks__cart) { justify-self: center; width: 100%; max-width: 720px; padding-left: clamp(20px, 5vw, 72px); padding-right: clamp(20px, 5vw, 72px); }
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .cdfe-head { padding-top: 48px; }
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__logged-in {
	width: calc(100% - 2 * clamp(20px, 5vw, 72px));
	max-width: calc(720px - 2 * clamp(20px, 5vw, 72px));
	padding: 12px 16px;
}
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__purchase-form { padding-bottom: 72px; }
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart {
	position: static;
	align-self: stretch;
	min-height: calc(100vh - 69px - var(--wp-admin--admin-bar--height, 0px));
	padding: 48px clamp(24px, 4vw, 56px) 56px;
	border-radius: 0;
}
body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart > * { max-width: 460px; }
/* Wide screens: the logo bar sits over the form column, so the dark panel starts at the very top. */
@media (min-width: 900px) {
	body.cdfe-df.cdfe-page--bold .cdfe-shell { position: relative; }
	body.cdfe-df.cdfe-page--bold .cdfe-bar {
		position: absolute;
		top: 0;
		inset-inline-start: 0;
		z-index: 2;
		width: calc(100% - max(380px, 42%));
		border-bottom: 0;
		background: transparent;
	}
	body.cdfe-df.cdfe-page--bold .cdfe-bar__in { max-width: 720px; padding: 28px clamp(20px, 5vw, 72px) 0; }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .cdfe-head { padding-top: 112px; }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart { min-height: calc(100vh - var(--wp-admin--admin-bar--height, 0px)); padding-top: 56px; }
}
@container cdfe (max-width: 880px) {
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold { grid-template-columns: minmax(0, 1fr); }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart { min-height: 0; padding: 28px 20px; }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .edd-blocks__cart > * { max-width: none; }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > .cdfe-head { padding-top: 28px; }
	body.cdfe-df.cdfe-page--bold #edd_checkout_form_wrap.cdfe--bold > :not(.edd-blocks__cart) { max-width: none; }
}
