/* Compact page headings for Cart/Checkout; native Blocks and summaries stay intact. */
.bb-main--purchase {
	padding-block-start: var(--wp--preset--spacing--space-8);
}
.bb-main--purchase .bb-page-header {
	margin-block-end: var(--wp--preset--spacing--space-6);
}
.bb-main--purchase .bb-page-header h1 {
	font-size: var(--wp--preset--font-size--heading-medium);
	line-height: var(--wp--custom--line-height--heading, 1.25);
	font-weight: var(--wp--custom--font-weight--strong);
}
/* Woo adds 24px above this outer block, on top of our page-header gap. */
.bb-main--purchase .wp-block-woocommerce-checkout { padding-block-start: 0; }
/* PayPal may retain an empty native method slot after wallet eligibility checks.
 * Keep rendered buttons, notices and loading content native; collapse only empty
 * PayPal slots. One shared column also avoids a lone button occupying half a row.
 */
.bb-main--purchase .wc-block-components-express-payment--checkout .wc-block-components-express-payment__event-buttons {
	grid-template-columns: minmax(0, 1fr);
	max-inline-size: 36rem;
	margin-inline: auto;
}
.bb-main--purchase .wc-block-components-express-payment--checkout .wc-block-components-express-payment__event-buttons > :is(div, li)[id^="express-payment-method-ppcp-"]:is(:empty, :has(> div:only-child:empty), :has(> div:only-child > .ppcp-button-apm:only-child:empty)) {
	display: none;
}
@media (max-width: 48rem) {
	.bb-main--purchase { padding-block-start: var(--wp--preset--spacing--space-6); }
	.bb-main--purchase .bb-page-header { margin-block-end: var(--wp--preset--spacing--space-4); }
	.bb-main--purchase .bb-page-header h1 { font-size: var(--wp--preset--font-size--heading-small); }
}

.bb-shipping-help,
.bb-shipping-status {
	margin-block: var(--wp--preset--spacing--space-8);
	padding: var(--wp--preset--spacing--space-6);
	border: 1px solid var(--wp--preset--color--border);
	border-inline-start: 4px solid var(--wp--preset--color--accent);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 6%, var(--wp--preset--color--surface));
}
.bb-shipping-help { display: flex; align-items: center; gap: var(--wp--preset--spacing--space-6); justify-content: space-between; }
.bb-shipping-help h2, .bb-shipping-status h2 { margin-block: 0 var(--wp--preset--spacing--space-2); font-size: var(--wp--preset--font-size--lead); }
.bb-shipping-help p, .bb-shipping-status p { margin-block: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-4); color: var(--wp--preset--color--text-secondary); }
.bb-shipping-help details { font-size: var(--wp--preset--font-size--small); }
.bb-shipping-help summary { cursor: pointer; color: var(--wp--preset--color--accent); }
.bb-shipping-help .bb-shipping-help__action,
.bb-shipping-status .bb-shipping-help__action,
.bb-shipping-help .bb-shipping-help__action:visited,
.bb-shipping-status .bb-shipping-help__action:visited {
	flex-shrink: 0;
	text-decoration: none;
	color: var(--wp--preset--color--surface);
	background: var(--wp--preset--color--accent);
}
.bb-shipping-help .bb-shipping-help__action:hover,
.bb-shipping-status .bb-shipping-help__action:hover { color: var(--wp--preset--color--surface); background: var(--wp--custom--color--accent-hover); }
.bb-shipping-status[hidden], .bb-shipping-status [hidden] { display: none; }
@media (max-width: 48rem) { .bb-shipping-help { align-items: stretch; flex-direction: column; } .bb-shipping-help__action { text-align: center; } }

/* Classic public selectors and the documented Blocks button surface only.
 * Keep Blocks fields, payment controls and their internal layout native.
 */
.woocommerce :is(a.button, button.button, input.button, a.button.alt, button.button.alt, input.button.alt),
.wc-block-components-button {
	min-block-size: var(--wp--custom--control--min-height);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-6);
	border: var(--wp--custom--border--width) solid var(--wp--preset--color--accent);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--surface);
	font-family: var(--wp--preset--font-family--system);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--body);
	text-decoration: none;
	white-space: normal;
	transition: color 120ms ease-out, background-color 120ms ease-out, border-color 120ms ease-out;
}

.woocommerce :is(a.button, button.button, input.button, a.button.alt, button.button.alt, input.button.alt):hover,
.wc-block-components-button:hover {
	background: var(--wp--custom--color--accent-hover);
	border-color: var(--wp--custom--color--accent-hover);
	color: var(--wp--preset--color--surface);
}

.woocommerce :is(a.button, button.button, input.button, a.button.alt, button.button.alt, input.button.alt):active,
.wc-block-components-button:active {
	background: var(--wp--custom--color--accent-pressed);
	border-color: var(--wp--custom--color--accent-pressed);
	color: var(--wp--preset--color--surface);
}

.woocommerce :is(a.button, button.button, input.button, a.button.alt, button.button.alt, input.button.alt):is(:disabled, [aria-disabled="true"], .disabled),
.woocommerce :is(button.button, input.button, button.button.alt, input.button.alt):disabled[disabled],
.woocommerce :is(button.button, input.button, button.button.alt, input.button.alt):disabled[disabled]:hover,
.wc-block-components-button:is(:disabled, [aria-disabled="true"], .disabled) {
	/* Match Woo's public disabled selectors, including its padding override. */
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-6);
	background: var(--wp--custom--color--disabled-surface);
	border-color: var(--wp--custom--color--border-control);
	color: var(--wp--preset--color--text-secondary);
	opacity: 1;
	cursor: not-allowed;
}

.woocommerce :is(input.input-text, textarea, select) {
	min-block-size: var(--wp--custom--control--min-height);
	padding: var(--wp--preset--spacing--space-2) var(--wp--preset--spacing--space-3);
	border: var(--wp--custom--border--width) solid var(--wp--custom--color--border-control);
	border-radius: var(--wp--preset--border-radius--control);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	font-family: var(--wp--preset--font-family--system);
	font-size: var(--wp--preset--font-size--body);
	font-weight: var(--wp--custom--font-weight--regular);
	line-height: var(--wp--custom--line-height--body);
}

.woocommerce select {
	padding-inline-end: var(--wp--preset--spacing--space-8);
}

.woocommerce textarea {
	min-block-size: 8rem;
	padding: var(--wp--preset--spacing--space-3);
	resize: vertical;
}

.woocommerce form .form-row label {
	font-size: var(--wp--preset--font-size--small);
	font-weight: var(--wp--custom--font-weight--strong);
	line-height: var(--wp--custom--line-height--body);
	margin-block-end: var(--wp--preset--spacing--space-2);
}

.woocommerce form .form-row :is(label:has(input[type="checkbox"], input[type="radio"]), .woocommerce-form__label-for-checkbox) {
	display: inline-flex;
	align-items: center;
	gap: var(--wp--preset--spacing--space-2);
	min-block-size: var(--wp--custom--control--target-min);
	font-weight: var(--wp--custom--font-weight--regular);
}

.woocommerce form .form-row {
	margin-block-end: var(--wp--preset--spacing--space-4);
}

.woocommerce form .form-row .description {
	margin-block-start: var(--wp--preset--spacing--space-1);
	color: var(--wp--preset--color--text-secondary);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce form .form-row.woocommerce-invalid :is(input.input-text, select, textarea),
.woocommerce :is(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--wp--custom--color--error);
}

.woocommerce :is(input.input-text, select, textarea):disabled {
	background: var(--wp--custom--color--disabled-surface);
	border-color: var(--wp--custom--color--border-control);
	color: var(--wp--preset--color--text-secondary);
	opacity: 1;
}

.woocommerce :is(a, button, input, select, textarea):focus-visible,
.wc-block-components-button:focus-visible {
	outline: 2px solid var(--wp--custom--color--focus);
	outline-offset: 2px;
	box-shadow: 0 0 0 2px var(--wp--preset--color--surface);
}

/* Native notices retain their messages, icons and live-region behavior. */
.woocommerce-message {
	background: var(--wp--custom--color--success-surface);
	color: var(--wp--custom--color--success);
	border-top-color: var(--wp--custom--color--success);
}

.woocommerce-message::before {
	color: var(--wp--custom--color--success);
}

.woocommerce-info {
	background: var(--wp--preset--color--canvas);
	color: var(--wp--preset--color--text-secondary);
	border-top-color: var(--wp--preset--color--accent);
}

.woocommerce-info::before {
	color: var(--wp--preset--color--accent);
}

.woocommerce-error {
	background: var(--wp--custom--color--error-surface);
	color: var(--wp--custom--color--error);
	border-top-color: var(--wp--custom--color--error);
}

.woocommerce-error::before {
	color: var(--wp--custom--color--error);
}

.woocommerce .woocommerce-breadcrumb {
	margin-block-end: var(--wp--preset--spacing--space-6);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--wp--preset--color--text);
}

.woocommerce .amount {
	font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
	.woocommerce :is(a.button, button.button, input.button, a.button.alt, button.button.alt, input.button.alt),
	.wc-block-components-button {
		transition-duration: 0ms;
	}
}
