/*
 * Ketabbin 3.32 — provider-neutral commerce presentation.
 *
 * This layer contains no availability or pricing rules. It gives the native
 * KBC and WooCommerce controls the same RTL, keyboard and account ergonomics.
 */

.ketabbin-theme .kbc-variant-picker,
.ketabbin-theme [data-kbc-variant-picker] {
	margin: 22px 0;
	padding: clamp(16px, 3vw, 24px);
	border: 1px solid var(--line, rgba(8, 41, 68, .18));
	border-radius: 16px;
	background: var(--surface, #fff);
	color: var(--text, #10243a);
	direction: rtl;
	text-align: start;
}

.kbc-public-provider-native .kbc-order-lifecycle {
	direction: rtl;
	text-align: start;
}

.kbc-public-provider-native .kbc-order-lifecycle__list li,
.kbc-public-provider-native .kbc-order-lifecycle__form {
	border-color: var(--kb-border, rgba(217, 155, 25, .28));
}

.kbc-public-provider-native .kbc-order-lifecycle__form summary {
	color: var(--kb-gold, #d99b19);
}

.kbc-public-provider-native .kbc-order-lifecycle__form button {
	min-height: 44px;
	background: var(--kb-gold, #d99b19);
	color: #071b2c;
}

.kbc-public-provider-native .kbc-order-lifecycle__form :focus-visible {
	outline: 3px solid var(--kb-gold, #d99b19);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.kbc-public-provider-native .kbc-order-lifecycle *,
	.kbc-public-provider-native .kbc-order-lifecycle *::before,
	.kbc-public-provider-native .kbc-order-lifecycle *::after {
		scroll-behavior: auto;
		transition: none !important;
	}
}

.ketabbin-theme .kbc-variant-picker legend,
.ketabbin-theme [data-kbc-variant-picker] legend {
	padding-inline: 8px;
	color: var(--text, #10243a);
	font-weight: 800;
}

.ketabbin-theme .kbc-variant-picker__fields {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr));
	gap: 14px;
}

.ketabbin-theme .kbc-variant-picker__fields label {
	display: grid;
	gap: 7px;
	min-width: 0;
	color: var(--muted, #65737c);
	font-size: 13px;
	font-weight: 700;
}

.ketabbin-theme .kbc-variant-picker__select,
.ketabbin-theme [data-kbc-variant-attribute],
.ketabbin-theme .variations_form .variations select {
	width: 100%;
	min-height: 48px;
	padding: 9px 13px;
	border: 1px solid var(--line-strong, rgba(8, 41, 68, .28));
	border-radius: 10px;
	background: var(--surface, #fff);
	color: var(--text, #10243a);
	direction: rtl;
	text-align: start;
}

.ketabbin-theme .kbc-variant-picker__select:focus-visible,
.ketabbin-theme [data-kbc-variant-attribute]:focus-visible,
.ketabbin-theme .variations_form .variations select:focus-visible,
.ketabbin-theme .kbc-address-form :is(input, textarea, select, button, a):focus-visible,
.ketabbin-theme .kbc-address-card a:focus-visible,
.ketabbin-theme .kbc-account-order a:focus-visible,
.ketabbin-theme .kbc-account-orders__filters a:focus-visible,
.ketabbin-theme .kbc-account-orders__pagination a:focus-visible,
.ketabbin-theme .kbc-account-surface__head a:focus-visible,
.ketabbin-theme .kbc-account-surface__header a:focus-visible,
.ketabbin-theme .kbc-account-surface__tabs a:focus-visible {
	border-color: var(--amber, #f2a900);
	outline: 3px solid color-mix(in srgb, var(--amber, #f2a900) 32%, transparent);
	outline-offset: 2px;
}

.ketabbin-theme .kbc-variant-picker__select:disabled,
.ketabbin-theme [data-kbc-variant-attribute]:disabled {
	cursor: not-allowed;
	opacity: .62;
}

.ketabbin-theme .kbc-variant-picker__summary {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 5px 16px;
	margin-top: 16px;
	padding: 13px 15px;
	border-inline-start: 3px solid var(--amber, #f2a900);
	border-radius: 10px;
	background: color-mix(in srgb, var(--amber, #f2a900) 8%, var(--surface, #fff));
	color: var(--muted, #65737c);
	font-size: 13px;
}

.ketabbin-theme .kbc-variant-picker__summary strong,
.ketabbin-theme [data-kbc-variant-title] {
	color: var(--text, #10243a);
}

.ketabbin-theme [data-kbc-variant-price],
.ketabbin-theme [data-kbc-variant-stock] {
	font-variant-numeric: tabular-nums;
}

.ketabbin-theme [data-kbc-variant-sale-window] {
	grid-column: 1 / -1;
	direction: rtl;
	text-align: start;
	font-size: 12px;
	font-variant-numeric: tabular-nums;
}

.ketabbin-theme .kbc-checkout-addresses {
	margin-block: 0 20px;
	padding: clamp(14px, 2.5vw, 18px);
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 16px;
	background: var(--surface, #fff);
	color: var(--text, #10243a);
	direction: rtl;
	text-align: start;
}

.ketabbin-theme .kbc-checkout-addresses legend {
	padding-inline: 8px;
	color: var(--text, #10243a);
	font-size: 13px;
	font-weight: 850;
}

.ketabbin-theme .kbc-checkout-addresses__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

.ketabbin-theme .kbc-checkout-address {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 10px;
	align-items: start;
	min-width: 0;
	min-height: 78px;
	padding: 13px;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 12px;
	background: var(--paper, #fff);
	color: var(--text, #10243a);
	cursor: pointer;
}

.ketabbin-theme .kbc-checkout-address.is-manual {
	grid-column: 1 / -1;
}

.ketabbin-theme .kbc-checkout-address input[type="radio"] {
	width: 20px;
	height: 20px;
	margin: 2px 0 0;
	flex: 0 0 auto;
	accent-color: var(--amber, #f2a900);
}

.ketabbin-theme .kbc-checkout-address :is(span, strong, small) {
	display: block;
	min-width: 0;
}

.ketabbin-theme .kbc-checkout-address strong {
	color: var(--text, #10243a);
}

.ketabbin-theme .kbc-checkout-address small {
	margin-top: 4px;
	overflow-wrap: anywhere;
	color: var(--muted, #65737c);
	line-height: 1.75;
}

.ketabbin-theme .kbc-checkout-address em {
	padding: 3px 8px;
	border-radius: 999px;
	background: color-mix(in srgb, #198754 14%, transparent);
	color: #08734f;
	font-size: 10px;
	font-style: normal;
	font-weight: 850;
}

.ketabbin-theme .kbc-checkout-address:has(input:checked) {
	border-color: var(--amber, #f2a900);
	background: color-mix(in srgb, var(--amber, #f2a900) 8%, var(--paper, #fff));
	box-shadow: inset 0 0 0 1px var(--amber, #f2a900);
}

.ketabbin-theme .kbc-checkout-address:has(input:focus-visible) {
	border-color: var(--amber, #f2a900);
	outline: 3px solid color-mix(in srgb, var(--amber, #f2a900) 34%, transparent);
	outline-offset: 3px;
}

.ketabbin-theme .kbc-checkout-address input:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.ketabbin-theme .kbc-checkout-addresses > a {
	display: inline-flex;
	min-height: 44px;
	margin-top: 10px;
	align-items: center;
	color: var(--amber, #a36c00);
	font-size: 12px;
	font-weight: 850;
}

.ketabbin-theme .kbc-checkout-addresses > a:focus-visible {
	border-radius: 6px;
	outline: 3px solid color-mix(in srgb, var(--amber, #f2a900) 34%, transparent);
	outline-offset: 3px;
}

.ketabbin-theme .kbc-account-surface,
.ketabbin-theme [data-kbc-account-surface] {
	width: min(1050px, calc(100% - 28px));
	margin: 30px auto 80px;
	color: var(--text, #10243a);
	direction: rtl;
	text-align: start;
}

.ketabbin-theme.kbc-account-surface-page .kbc-account-surface {
	padding-top: 82px;
}

.ketabbin-theme .kbc-account-surface__inner {
	width: 100%;
}

.ketabbin-theme .kbc-account-surface__head,
.ketabbin-theme .kbc-account-surface__header {
	display: flex;
	align-items: end;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 22px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--line, rgba(8, 41, 68, .16));
}

.ketabbin-theme .kbc-account-surface__header > :not(h1),
.ketabbin-theme .kbc-account-surface__head span,
.ketabbin-theme .kbc-account-surface__eyebrow {
	color: var(--amber, #c38300);
	font-size: 12px;
	font-weight: 800;
}

.ketabbin-theme .kbc-account-surface__head h1,
.ketabbin-theme .kbc-account-surface__header h1 {
	margin: 4px 0 0;
	color: var(--text, #10243a);
	font-size: clamp(27px, 4vw, 42px);
	line-height: 1.35;
}

.ketabbin-theme .kbc-account-surface__header > p {
	flex-basis: 100%;
	margin: 0;
}

.ketabbin-theme .kbc-account-surface__header > p:first-child {
	order: -1;
}

.ketabbin-theme .kbc-account-surface__tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}

.ketabbin-theme .kbc-account-surface__tabs a {
	display: inline-flex;
	min-height: 44px;
	padding: 7px 15px;
	align-items: center;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 999px;
	background: var(--surface, #fff);
}

.ketabbin-theme .kbc-account-surface__tabs a[aria-current="page"] {
	border-color: var(--amber, #f2a900);
	background: color-mix(in srgb, var(--amber, #f2a900) 12%, var(--surface, #fff));
	font-weight: 800;
}

.ketabbin-theme .kbc-account-surface__notice {
	margin: 0 0 18px;
	padding: 13px 16px;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-inline-start: 4px solid var(--amber, #f2a900);
	border-radius: 10px;
	background: var(--surface, #fff);
}

.ketabbin-theme .kbc-account-surface__notice--success {
	border-inline-start-color: #198754;
}

.ketabbin-theme .kbc-account-surface__notice--error {
	border-inline-start-color: #b42318;
}

.ketabbin-theme .kbc-account-surface__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
	gap: 14px;
}

.ketabbin-theme .kbc-account-surface__card {
	padding: 20px;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 16px;
	background: var(--surface, #fff);
	box-shadow: 0 12px 40px rgba(4, 24, 43, .06);
}

.ketabbin-theme .kbc-account-surface__card h2 {
	margin: 0 0 8px;
}

.ketabbin-theme .kbc-account-surface__card p {
	color: var(--muted, #65737c);
}

.ketabbin-theme .kbc-account-surface__card .button {
	display: inline-flex;
	min-height: 44px;
	padding: 8px 15px;
	align-items: center;
	border: 1px solid var(--amber, #f2a900);
	border-radius: 9px;
	font-weight: 800;
}

.ketabbin-theme .kbc-account-orders__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 18px;
}

.ketabbin-theme .kbc-account-orders__filters a,
.ketabbin-theme .kbc-account-orders__pagination a {
	display: inline-flex;
	align-items: center;
	min-height: 42px;
	padding: 7px 13px;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 999px;
	background: var(--surface, #fff);
}

.ketabbin-theme .kbc-account-orders__filters a[aria-current="page"] {
	border-color: var(--amber, #f2a900);
	background: color-mix(in srgb, var(--amber, #f2a900) 12%, var(--surface, #fff));
	font-weight: 800;
}

.ketabbin-theme .kbc-account-orders__list {
	display: grid;
	gap: 14px;
}

.ketabbin-theme .kbc-account-order {
	padding: 18px;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 16px;
	background: var(--surface, #fff);
	box-shadow: 0 12px 40px rgba(4, 24, 43, .06);
}

.ketabbin-theme .kbc-account-order > header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
}

.ketabbin-theme .kbc-account-order > header div,
.ketabbin-theme .kbc-account-order dl div {
	display: grid;
	gap: 4px;
}

.ketabbin-theme .kbc-account-order > header span,
.ketabbin-theme .kbc-account-order dt {
	color: var(--muted, #65737c);
	font-size: 12px;
}

.ketabbin-theme .kbc-account-order mark {
	padding: 5px 9px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--amber, #f2a900) 13%, var(--surface, #fff));
	color: var(--text, #10243a);
	font-size: 12px;
	font-weight: 800;
}

.ketabbin-theme .kbc-account-order dl {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
	margin: 16px 0;
}

.ketabbin-theme .kbc-account-order dd {
	margin: 0;
	font-weight: 750;
}

.ketabbin-theme .kbc-account-order > footer a {
	display: inline-flex;
	min-height: 42px;
	padding: 7px 13px;
	align-items: center;
	border: 1px solid var(--amber, #f2a900);
	border-radius: 9px;
	font-weight: 800;
}

.ketabbin-theme .kbc-account-orders__pagination {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: 18px;
}

.ketabbin-theme .kbc-address-list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr));
	gap: 14px;
}

.ketabbin-theme .kbc-address-card,
.ketabbin-theme .kbc-address-form,
.ketabbin-theme .kbc-account-surface__empty {
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 16px;
	background: var(--surface, #fff);
	box-shadow: 0 12px 40px rgba(4, 24, 43, .06);
}

.ketabbin-theme .kbc-address-card {
	display: flex;
	flex-direction: column;
	min-height: 240px;
	padding: 20px;
}

.ketabbin-theme .kbc-address-card > header {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 12px;
}

.ketabbin-theme .kbc-address-card > header > div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}

.ketabbin-theme .kbc-address-card__default {
	display: inline-flex;
	min-height: 26px;
	padding: 2px 9px;
	align-items: center;
	border-radius: 999px;
	background: color-mix(in srgb, var(--amber, #f2a900) 15%, transparent);
	color: var(--text, #10243a);
	font-size: 11px;
	font-weight: 800;
}

.ketabbin-theme .kbc-address-card address {
	margin-block: 10px;
	color: var(--muted, #65737c);
	font-style: normal;
	line-height: 1.9;
}

.ketabbin-theme .kbc-address-card > p {
	margin: 7px 0;
}

.ketabbin-theme .kbc-address-card > footer,
.ketabbin-theme .kbc-address-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 14px;
	margin-top: auto;
	padding-top: 14px;
	border-top: 1px solid var(--line, rgba(8, 41, 68, .14));
}

.ketabbin-theme .kbc-address-card__actions form {
	margin: 0;
}

.ketabbin-theme .kbc-address-card > footer :is(a, button),
.ketabbin-theme .kbc-address-card__actions :is(a, button) {
	display: inline-flex;
	min-height: 44px;
	padding: 7px 12px;
	align-items: center;
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 8px;
	background: transparent;
	color: var(--amber, #a36c00);
	font-weight: 800;
}

.ketabbin-theme .kbc-address-form {
	padding: clamp(18px, 4vw, 30px);
}

.ketabbin-theme .kbc-address-form > h2 {
	margin: 0 0 18px;
}

.ketabbin-theme .kbc-address-form__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 15px;
}

.ketabbin-theme .kbc-address-form__grid label {
	display: grid;
	gap: 7px;
	min-width: 0;
	font-size: 13px;
	font-weight: 750;
}

.ketabbin-theme .kbc-address-form__grid label.is-wide,
.ketabbin-theme .kbc-address-form__wide {
	grid-column: 1 / -1;
}

.ketabbin-theme .kbc-address-form__grid p {
	margin: 0;
}

.ketabbin-theme .kbc-address-form__grid :is(input, textarea, select) {
	width: 100%;
	min-height: 48px;
	padding: 10px 13px;
	border: 1px solid var(--line-strong, rgba(8, 41, 68, .26));
	border-radius: 10px;
	background: var(--paper, #fff);
	color: var(--text, #10243a);
}

.ketabbin-theme .kbc-address-form__grid textarea {
	min-height: 112px;
	resize: vertical;
}

.ketabbin-theme .kbc-address-form :is(input[type="tel"], input[name="postcode"]) {
	direction: ltr;
	text-align: left;
}

.ketabbin-theme .kbc-address-form__default,
.ketabbin-theme .kbc-address-form__check {
	display: inline-flex;
	gap: 9px;
	min-height: 44px;
	margin-top: 15px;
	align-items: center;
}

.ketabbin-theme .kbc-address-form__default input,
.ketabbin-theme .kbc-address-form__check input {
	width: 20px;
	height: 20px;
	accent-color: var(--amber, #f2a900);
}

.ketabbin-theme .kbc-address-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.ketabbin-theme .kbc-address-form__actions :is(button, a) {
	display: inline-flex;
	min-height: 46px;
	padding: 9px 18px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--amber, #f2a900);
	border-radius: 9px;
	background: var(--amber, #f2a900);
	color: #071b2c;
	font: inherit;
	font-weight: 800;
}

.ketabbin-theme .kbc-address-form__actions a,
.ketabbin-theme .kbc-address-form__actions .button:not(.button-primary) {
	background: transparent;
	color: var(--text, #10243a);
}

.ketabbin-theme .kbc-account-surface__empty {
	padding: clamp(24px, 5vw, 50px);
	text-align: center;
}

.ketabbin-theme .kbc-account-surface__empty p {
	margin: 7px 0 0;
	color: var(--muted, #65737c);
}

.ketabbin-theme .kbc-payment-methods__list {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 16px;
}

.ketabbin-theme .kbc-payment-method {
	display: grid;
	gap: 14px;
	min-width: 0;
	padding: clamp(16px, 3vw, 22px);
	border: 1px solid var(--line, rgba(8, 41, 68, .16));
	border-radius: 14px;
	background: var(--paper, #fff);
	color: var(--text, #10243a);
}

.ketabbin-theme .kbc-payment-method > header,
.ketabbin-theme .kbc-payment-method__actions {
	display: flex;
	gap: 12px;
	align-items: center;
	justify-content: space-between;
}

.ketabbin-theme .kbc-payment-method mark {
	padding: 5px 10px;
	border-radius: 999px;
	background: rgba(58, 209, 151, .14);
	color: #08724e;
}

.ketabbin-theme .kbc-payment-method__actions {
	flex-wrap: wrap;
	justify-content: flex-start;
}

.ketabbin-theme .kbc-payment-method__actions :is(button, a) {
	min-height: 44px;
	padding: 8px 13px;
	border: 1px solid currentColor;
	border-radius: 9px;
	background: transparent;
	color: var(--amber, #a36c00);
	font: inherit;
	font-weight: 800;
}

.ketabbin-theme .kbc-payment-method__actions .is-danger {
	color: #a22727;
}

.ketabbin-theme .kbc-payment-method :focus-visible {
	outline: 3px solid var(--amber, #f2a900);
	outline-offset: 3px;
}

.ketabbin-theme.kb-commerce-provider-native .woocommerce-MyAccount-navigation,
.ketabbin-theme.kb-commerce-provider-native .woocommerce-MyAccount-content {
	/*
	 * Do not hide Woo account data during the pilot. This rule intentionally
	 * reserves no visual ownership; the provider-neutral links choose the
	 * active surface and Woo remains visible as the safe fallback.
	 */
	visibility: visible;
}

html[data-theme="dark"] .ketabbin-theme .kbc-checkout-addresses,
html[data-theme="dark"] .ketabbin-theme .kbc-checkout-address {
	border-color: rgba(255, 193, 61, .24);
	background: var(--surface, #061d33);
	color: var(--text, #edf3f7);
}

html[data-theme="dark"] .ketabbin-theme .kbc-checkout-addresses legend,
html[data-theme="dark"] .ketabbin-theme .kbc-checkout-address strong {
	color: var(--text, #fff8e7);
}

html[data-theme="dark"] .ketabbin-theme .kbc-checkout-address:has(input:checked) {
	border-color: var(--amber, #ffc13d);
	background: color-mix(in srgb, var(--amber, #ffc13d) 11%, var(--surface, #061d33));
}

html[data-theme="dark"] .ketabbin-theme .kbc-checkout-address em {
	background: rgba(58, 209, 151, .14);
	color: #82e3bd;
}

@media (max-width: 680px) {
	.ketabbin-theme .kbc-variant-picker__summary,
	.ketabbin-theme .kbc-address-form__grid {
		grid-template-columns: 1fr;
	}

	.ketabbin-theme .kbc-checkout-addresses__list {
		grid-template-columns: 1fr;
	}

	.ketabbin-theme .kbc-checkout-address.is-manual {
		grid-column: auto;
	}

	.ketabbin-theme .kbc-checkout-address {
		grid-template-columns: auto minmax(0, 1fr);
		min-height: 72px;
	}

	.ketabbin-theme .kbc-checkout-address em {
		grid-column: 2;
		justify-self: start;
	}

	.ketabbin-theme .kbc-checkout-addresses > a {
		width: 100%;
		justify-content: center;
	}

	.ketabbin-theme .kbc-account-surface__head,
	.ketabbin-theme .kbc-account-surface__header {
		align-items: start;
		flex-direction: column;
	}

	.ketabbin-theme .kbc-account-surface__head .kb-button {
		width: 100%;
	}

	.ketabbin-theme .kbc-account-order > header {
		align-items: start;
		flex-direction: column;
	}

	.ketabbin-theme .kbc-payment-methods__list {
		grid-template-columns: 1fr;
	}

	.ketabbin-theme .kbc-payment-method > header {
		align-items: start;
		flex-direction: column;
	}

	.ketabbin-theme .kbc-account-order dl {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ketabbin-theme .kbc-address-form__grid label.is-wide,
	.ketabbin-theme .kbc-address-form__wide {
		grid-column: auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.ketabbin-theme .kbc-variant-picker *,
	.ketabbin-theme .kbc-checkout-addresses *,
	.ketabbin-theme .kbc-account-surface * {
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}

@media (forced-colors: active) {
	.ketabbin-theme .kbc-variant-picker,
	.ketabbin-theme .kbc-checkout-addresses,
	.ketabbin-theme .kbc-checkout-address,
		.ketabbin-theme .kbc-address-card,
		.ketabbin-theme .kbc-address-form,
		.ketabbin-theme .kbc-payment-method {
		border: 1px solid CanvasText;
	}

	.ketabbin-theme .kbc-variant-picker__select:focus-visible,
	.ketabbin-theme [data-kbc-variant-attribute]:focus-visible,
	.ketabbin-theme .kbc-checkout-address:has(input:focus-visible),
	.ketabbin-theme .kbc-checkout-address input:focus-visible,
	.ketabbin-theme .kbc-checkout-addresses > a:focus-visible,
	.ketabbin-theme .kbc-address-form :focus-visible,
	.ketabbin-theme .kbc-payment-method :focus-visible {
		outline: 3px solid Highlight;
	}

	.ketabbin-theme .kbc-checkout-address:has(input:checked) {
		border: 2px solid Highlight;
		forced-color-adjust: auto;
	}
}

.ketabbin-theme .kbc-reviews {
	margin-block: 32px;
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid rgba(8, 41, 68, .14);
	border-radius: 24px;
	background: var(--kb-surface, #fff);
	direction: rtl;
	text-align: start;
}

.ketabbin-theme .kbc-reviews__head,
.ketabbin-theme .kbc-review > header {
	display: flex;
	gap: 16px;
	align-items: center;
	justify-content: space-between;
}

.ketabbin-theme .kbc-reviews__list {
	display: grid;
	gap: 14px;
	margin-block: 22px;
}

.ketabbin-theme .kbc-review {
	padding: 18px;
	border: 1px solid rgba(8, 41, 68, .12);
	border-radius: 18px;
	background: rgba(8, 41, 68, .025);
}

.ketabbin-theme .kbc-review > header span {
	direction: ltr;
	color: #b97800;
	letter-spacing: .08em;
}

.ketabbin-theme .kbc-review mark {
	margin-inline-start: 8px;
	padding: 4px 8px;
	border-radius: 999px;
	background: rgba(20, 145, 95, .12);
	color: #08724e;
}

.ketabbin-theme .kbc-review__reply {
	margin-block-start: 14px;
	margin-inline-start: 24px;
	padding: 14px;
	border-inline-start: 4px solid #f2a900;
	border-radius: 12px;
	background: var(--kb-surface, #fff);
}

.ketabbin-theme .kbc-review-form {
	display: grid;
	gap: 14px;
	margin-block-start: 24px;
	padding-block-start: 22px;
	border-block-start: 1px solid rgba(8, 41, 68, .14);
}

.ketabbin-theme .kbc-review-form label,
.ketabbin-theme .kbc-review-form fieldset {
	display: grid;
	gap: 7px;
	margin: 0;
	font-weight: 700;
}

.ketabbin-theme .kbc-review-form fieldset {
	padding: 0;
	border: 0;
}

.ketabbin-theme .kbc-review-form__identity {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.ketabbin-theme .kbc-review-form input[type="text"],
.ketabbin-theme .kbc-review-form input[type="email"],
.ketabbin-theme .kbc-review-form textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid rgba(8, 41, 68, .24);
	border-radius: 12px;
	background: var(--kb-surface, #fff);
	color: inherit;
	font: inherit;
}

.ketabbin-theme .kbc-review-form__rating {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.ketabbin-theme .kbc-review-form__rating label {
	display: inline-flex;
	min-height: 44px;
	padding: 8px 10px;
	border: 1px solid rgba(8, 41, 68, .18);
	border-radius: 10px;
	align-items: center;
	cursor: pointer;
}

.ketabbin-theme .kbc-review-form button {
	width: fit-content;
	min-height: 44px;
	padding: 10px 18px;
	border: 0;
	border-radius: 12px;
	background: #0b3656;
	color: #fff;
	font: inherit;
	font-weight: 900;
	cursor: pointer;
}

.ketabbin-theme .kbc-review-form :focus-visible,
.ketabbin-theme .kbc-review-form__rating label:has(input:focus-visible) {
	outline: 3px solid #f2a900;
	outline-offset: 3px;
}

.ketabbin-theme .kbc-review-form__trap {
	position: absolute !important;
	inline-size: 1px !important;
	block-size: 1px !important;
	overflow: hidden !important;
	clip-path: inset(50%) !important;
}

.ketabbin-theme [data-kbc-review-message].is-error {
	color: #8d1f17;
}

@media (max-width: 680px) {
	.ketabbin-theme .kbc-reviews__head,
	.ketabbin-theme .kbc-review > header {
		align-items: start;
		flex-direction: column;
	}

	.ketabbin-theme .kbc-review-form__identity {
		grid-template-columns: 1fr;
	}
}
.ketabbin-theme .kbc-grouped-products,
.ketabbin-theme .kbc-external-product {
	direction: rtl;
	text-align: start;
}

.ketabbin-theme .kbc-grouped-products__list {
	display: grid;
	gap: 14px;
}

.ketabbin-theme .kbc-grouped-products__list > article {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(110px, auto) minmax(150px, auto);
	gap: 16px;
	align-items: center;
	padding: 16px;
	border: 1px solid rgba(8, 41, 68, .14);
	border-inline-start: 4px solid var(--kb-accent, #f2a900);
	border-radius: 18px;
	background: var(--kb-surface, #fff);
}

.ketabbin-theme .kbc-grouped-products__list h3,
.ketabbin-theme .kbc-grouped-products__list p,
.ketabbin-theme .kbc-external-product p {
	margin: 0;
}

.ketabbin-theme .kbc-grouped-products__list label {
	display: grid;
	gap: 6px;
}

.ketabbin-theme .kbc-grouped-products__list input,
.ketabbin-theme .kbc-grouped-products__list button,
.ketabbin-theme .kbc-external-product a {
	min-height: 44px;
	font: inherit;
}

.ketabbin-theme .kbc-grouped-products__list input {
	width: 100%;
	padding-inline: 10px;
	border: 1px solid rgba(8, 41, 68, .24);
	border-radius: 10px;
}

.ketabbin-theme .kbc-grouped-products__list button,
.ketabbin-theme .kbc-external-product a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 8px 14px;
	border: 0;
	border-radius: 12px;
	background: var(--kb-navy, #0b3656);
	color: #fff;
	font-weight: 800;
	text-decoration: none;
}

.ketabbin-theme .kbc-grouped-products__list :is(a, button, input):focus-visible,
.ketabbin-theme .kbc-external-product a:focus-visible {
	outline: 3px solid var(--kb-accent, #f2a900);
	outline-offset: 3px;
}

.ketabbin-theme .kbc-external-product {
	display: grid;
	gap: 12px;
	max-width: 640px;
	padding: 18px;
	border: 1px solid rgba(8, 41, 68, .14);
	border-inline-start: 4px solid var(--kb-accent, #f2a900);
	border-radius: 18px;
	background: var(--kb-surface, #fff);
}

html[data-theme="dark"] .ketabbin-theme .kbc-grouped-products__list > article,
html[data-theme="dark"] .ketabbin-theme .kbc-external-product {
	border-color: rgba(255, 255, 255, .18);
	background: rgba(255, 255, 255, .06);
	color: #f3f7fa;
}

@media (max-width: 680px) {
	.ketabbin-theme .kbc-grouped-products__list > article {
		grid-template-columns: 1fr;
	}
}

@media (forced-colors: active) {
	.ketabbin-theme .kbc-grouped-products__list > article,
	.ketabbin-theme .kbc-grouped-products__list button,
	.ketabbin-theme .kbc-external-product,
	.ketabbin-theme .kbc-external-product a {
		border: 1px solid ButtonText;
		forced-color-adjust: auto;
	}
}
/* Provider-neutral native upsell, cross-sell and related-product rails. */
.kbc-product-rail {
	margin-block: clamp(24px, 4vw, 48px);
	padding: clamp(16px, 3vw, 28px);
	border: 1px solid color-mix(in srgb, currentColor 12%, transparent);
	border-radius: 22px;
	background: var(--kb-surface, #fff);
}

.kbc-product-rail__head h2 {
	margin: 0 0 18px;
	font-size: clamp(1.15rem, 2vw, 1.5rem);
}

.kbc-product-rail__grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.kbc-product-rail__card {
	min-width: 0;
	padding: 12px;
	border: 1px solid color-mix(in srgb, currentColor 10%, transparent);
	border-radius: 16px;
	background: color-mix(in srgb, var(--kb-surface, #fff) 94%, #f3eadf);
}

.kbc-product-rail__card > a {
	display: grid;
	gap: 10px;
	color: inherit;
	text-decoration: none;
}

.kbc-product-rail__card img,
.kbc-product-rail__placeholder {
	display: grid;
	width: 100%;
	aspect-ratio: 3 / 4;
	place-items: center;
	border-radius: 12px;
	background: #f3eadf;
	object-fit: cover;
	font-size: 2rem;
}

.kbc-product-rail__card h3 {
	margin: 0;
	font-size: 1rem;
	line-height: 1.7;
}

.kbc-product-rail__card > strong {
	display: block;
	margin-block-start: 8px;
	color: var(--kb-primary, #7b3427);
}

@media (max-width: 900px) {
	.kbc-product-rail__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

.kbc-shipping-quote,
.kbc-shipping-rates,
.kbc-shipping-package {
	direction: rtl;
	text-align: start;
}

.kbc-shipping-package {
	border-color: color-mix(in srgb, var(--kb-gold, #d7a928) 28%, transparent);
	background: color-mix(in srgb, var(--kb-navy, #101a33) 6%, transparent);
}

.kbc-shipping-package label {
	transition: border-color .16s ease, background-color .16s ease;
}

.kbc-shipping-package label:has(input:checked) {
	border-color: var(--kb-gold, #d7a928);
	background: color-mix(in srgb, var(--kb-gold, #d7a928) 12%, transparent);
}

.kbc-shipping-package input,
.kbc-shipping-quote__button {
	min-inline-size: 44px;
	min-block-size: 44px;
}

.kbc-shipping-package input:focus-visible,
.kbc-shipping-quote__button:focus-visible {
	outline: 3px solid var(--kb-gold, #d7a928);
	outline-offset: 3px;
}

/* KBC 1.9: server-authoritative tax and fee totals remain legible in RTL. */
.ketabbin-theme [data-kbc-tax-total],
.ketabbin-theme [data-kbc-fee-total],
.ketabbin-theme [data-kbc-grand-total] {
	display: inline-block;
	min-inline-size: 7rem;
	font-variant-numeric: tabular-nums;
	text-align: end;
	unicode-bidi: isolate;
}

.ketabbin-theme [data-kbc-grand-total] {
	color: var(--kb-gold, #d7a928);
	font-weight: 800;
}

/* KBC 2.0: private refund evidence remains readable and RTL-safe. */
.ketabbin-theme [data-kbc-refund-summary],
.ketabbin-theme [data-kbc-refund-status],
.ketabbin-theme .kbc-native-refunds-panel {
	direction: rtl;
	text-align: start;
}

.ketabbin-theme [data-kbc-refund-summary] [data-kbc-money],
.ketabbin-theme [data-kbc-refund-status] [dir="ltr"],
.ketabbin-theme .kbc-native-refunds-panel [dir="ltr"] {
	display: inline-block;
	font-variant-numeric: tabular-nums;
	unicode-bidi: isolate;
}

.ketabbin-theme .kbc-native-refunds-panel :is(input, textarea, button) {
	min-block-size: 44px;
}

.ketabbin-theme .kbc-native-refunds-panel :is(input, textarea, button):focus-visible {
	outline: 3px solid var(--kb-gold, #d7a928);
	outline-offset: 3px;
}

/* KBC 2.2: private offline-payment instructions and state evidence. */
.ketabbin-theme [data-kbc-offline-payment-receipt] {
	direction: rtl;
	text-align: start;
	border-inline-start: 4px solid var(--kb-gold, #d7a928);
	white-space: normal;
}

.ketabbin-theme [data-kbc-offline-payment-receipt] p {
	line-height: 1.9;
}

@media (prefers-reduced-motion: reduce) {
	.kbc-shipping-package label {
		transition: none;
	}
}

@media (forced-colors: active) {
	.kbc-shipping-package,
	.kbc-shipping-package label:has(input:checked) {
		border: 1px solid CanvasText;
	}
}

/* KBC 2.3: private digital entitlements on the signed order receipt. */
.ketabbin-theme [data-kbc-private-downloads] {
	direction: rtl;
	text-align: start;
}

.ketabbin-theme .kbc-order-downloads__list {
	display: grid;
	gap: 12px;
}

.ketabbin-theme .kbc-order-downloads__list article {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	padding: 14px 16px;
	border: 1px solid color-mix(in srgb, var(--kb-gold, #d7a928) 28%, transparent);
	border-radius: 12px;
	background: color-mix(in srgb, var(--kb-gold, #d7a928) 7%, Canvas);
}

.ketabbin-theme .kbc-order-downloads__list small {
	display: block;
	margin-block-start: 5px;
	color: CanvasText;
	opacity: .72;
}

.ketabbin-theme .kbc-order-downloads__button {
	flex: 0 0 auto;
	min-block-size: 44px;
	padding: 10px 15px;
	border-radius: 9px;
	background: var(--kb-gold, #d7a928);
	color: #18130a;
	text-decoration: none;
	font-weight: 800;
}

.ketabbin-theme .kbc-order-downloads__button:focus-visible {
	outline: 3px solid CanvasText;
	outline-offset: 3px;
}

.ketabbin-theme .kbc-order-downloads__unavailable {
	color: #8a2424;
	font-weight: 700;
}

.ketabbin-theme .kbc-order-downloads__note {
	margin-block: 14px 0;
	font-size: .9rem;
	opacity: .72;
}

@media (max-width: 640px) {
	.ketabbin-theme .kbc-order-downloads__list article {
		align-items: stretch;
		flex-direction: column;
	}

	.ketabbin-theme .kbc-order-downloads__button {
		text-align: center;
	}
}

/* KBC 2.4: PII-free transactional email state on an authorized receipt. */
.ketabbin-theme [data-kbc-email-delivery-status] {
	direction: rtl;
	text-align: start;
}

.ketabbin-theme [data-kbc-email-delivery-status] ul {
	display: grid;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ketabbin-theme [data-kbc-email-delivery-status] li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	align-items: center;
	gap: 12px;
	padding-block: 10px;
	border-block-end: 1px solid color-mix(in srgb, CanvasText 14%, transparent);
}

.ketabbin-theme [data-kbc-email-delivery-status] time {
	font-variant-numeric: tabular-nums;
	unicode-bidi: isolate;
}

.ketabbin-theme [data-kbc-email-delivery-status] p {
	margin-block-end: 0;
	font-size: .9rem;
	opacity: .76;
}

@media (max-width: 640px) {
	.ketabbin-theme [data-kbc-email-delivery-status] li {
		grid-template-columns: 1fr;
	}
}
