/**
 * WooCommerce cart, checkout, order received and My Account pages.
 *
 * Styles the WooCommerce Cart and Checkout blocks and the classic shortcode pages so that they follow
 * Theme Options: colors, fonts, button style and radius, form field style, shadows and spacing all come
 * from the CSS variables the theme prints from its settings. Nothing here has a fixed color.
 */

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-account,
body.woocommerce-order-received {
	--cp-radius: var(--cc-radius, var(--cl-pc-radius, var(--bs-border-radius, 6px)));
	--cp-field-radius: var(--form-border-radius, var(--bs-border-radius, 4px));
	--cp-btn-radius: var(--btn-border-radius, var(--bs-border-radius, 4px));
	--cp-line: var(--cc-line, var(--color-line, #e5e7eb));
	--cp-field-line: rgba(var(--color-border, 0, 0, 0), .15);
	--cp-surface: var(--cc-head-bg, var(--color-surface, #f8f9fa));
	--cp-text: rgb(var(--color-foreground, 33, 37, 41));
	--cp-bg: var(--cc-card-bg, rgb(var(--color-background, 255, 255, 255)));
	--cp-muted: var(--color-muted, #6b7280);
	--cp-accent: var(--cc-accent, var(--color-accent, #0d6efd));
	--cp-gap: var(--sp-24, 1.5rem);
	--cp-shadow: var(--cc-shadow, var(--shadow-card, none));
	--cp-field-h: var(--cc-field-h, var(--btn-min-height, 46px));
	--cp-focus: var(--cc-accent, var(--color-accent, #0d6efd));
}

/* ------------------------------------------------------------------ Page layout */
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
	margin-block: var(--sp-32, 2rem);
	font-family: var(--font-family-body, inherit);
	color: var(--cp-text);
}
body.woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-components-sidebar-layout {
	gap: var(--cc-gap, var(--sp-40, 2.5rem));
	align-items: flex-start;
	max-width: 100%;
}
body.woocommerce-cart .wc-block-components-sidebar-layout > *,
body.woocommerce-checkout .wc-block-components-sidebar-layout > * {
	min-width: 0;
}
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main,
body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-main {
	padding-right: 0;
}

/* ------------------------------------------------------------------ Headings */
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-checkout .wc-block-components-checkout-step__title,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkout-order-summary__title-text,
body.woocommerce-checkout h3,
body.woocommerce-cart .cart_totals h2 {
	font-family: var(--font-family-heading, inherit);
	color: var(--cp-text);
	font-weight: 600;
	letter-spacing: normal;
	text-transform: none;
}
body.woocommerce-cart .wc-block-cart__totals-title {
	font-size: 1rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: 0 0 var(--sp-12, .75rem);
}
body.woocommerce-checkout .wc-block-components-checkout-step__title {
	font-size: 1.25rem;
}
body.woocommerce-checkout .wc-block-components-checkout-step__description {
	color: var(--cp-muted);
}

/* ------------------------------------------------------------------ Cards: cart items, totals, order summary */
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background: var(--cp-bg);
}
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-sidebar-layout .wc-block-components-sidebar {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	padding: var(--cp-gap);
	box-shadow: var(--cp-shadow);
}
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-components-sidebar .wc-block-components-totals-item,
body.woocommerce-cart .wc-block-components-sidebar .wc-block-components-totals-item {
	padding-left: 0;
	padding-right: 0;
}
body.woocommerce-checkout .wc-block-checkout__sidebar .wc-block-components-order-summary,
body.woocommerce-checkout .wc-block-checkout__sidebar .wp-block-woocommerce-checkout-order-summary-block {
	border: 0;
	padding: 0;
}
body.woocommerce-cart table.wc-block-cart-items {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	box-shadow: var(--cp-shadow);
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__header {
	background: var(--cp-surface);
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__header th {
	font-size: .8125rem;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--cp-muted);
	display: block;
	padding: 0;
	border: 0;
}
body.woocommerce-cart table.wc-block-cart-items,
body.woocommerce-cart table.wc-block-cart-items thead,
body.woocommerce-cart table.wc-block-cart-items tbody {
	display: block;
	width: 100% !important;
	max-width: 100%;
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__header,
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row {
	display: grid;
	grid-template-columns: var(--cc-img, 96px) minmax(0, 1fr) auto;
	column-gap: var(--sp-16, 1rem);
	align-items: start;
	padding: var(--sp-16, 1rem);
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row {
	border-bottom: 1px solid var(--cp-line);
}
body.woocommerce-cart table.wc-block-cart-items tbody .wc-block-cart-items__row:last-child {
	border-bottom: 0;
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__header {
	border-bottom: 1px solid var(--cp-line);
	padding-block: var(--sp-12, .75rem);
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row td {
	display: block;
	padding: 0;
	border: 0;
	vertical-align: top;
}

/* ------------------------------------------------------------------ Cart items */
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__image {
	width: auto;
}
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__image a,
body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__image img {
	display: block;
	width: var(--cc-img, 96px);
	max-width: 100%;
	height: auto;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--cp-radius);
	background: var(--cp-surface);
}
body.woocommerce-cart .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-product-name {
	font-family: var(--font-family-heading, inherit);
	font-size: 1rem;
	font-weight: 600;
	color: var(--cp-text);
	text-decoration: none;
}
body.woocommerce-cart a.wc-block-components-product-name:hover {
	color: var(--cp-accent);
}
body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-checkout .wc-block-components-product-price {
	color: var(--cp-text);
	font-size: .9375rem;
}
body.woocommerce-cart .wc-block-components-product-price__regular,
body.woocommerce-checkout .wc-block-components-product-price__regular {
	color: var(--cp-muted);
}
body.woocommerce-cart .wc-block-components-product-badge,
body.woocommerce-checkout .wc-block-components-product-badge {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-field-radius);
	color: var(--cp-text);
}
body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-components-product-metadata *,
body.woocommerce-checkout .wc-block-components-product-metadata * {
	color: var(--cp-muted);
}
body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-checkout .wc-block-components-product-metadata {
	font-size: .875rem !important;
}
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price {
	font-weight: 600;
	font-size: 1rem;
}
body.woocommerce-cart .wc-block-cart-item__remove-link {
	color: var(--cp-muted);
	font-size: .875rem;
	text-decoration: underline;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
	color: var(--color-danger, #dc3545);
}

/* ------------------------------------------------------------------ Quantity selector */
body.woocommerce-cart .wc-block-components-quantity-selector,
body.woocommerce-checkout .wc-block-components-quantity-selector {
	border: 1px solid var(--cp-field-line);
	border-radius: var(--cp-field-radius);
	background: var(--cp-bg);
	height: auto;
	min-height: 40px;
	width: 112px;
	box-shadow: none;
}
body.woocommerce-cart .wc-block-components-quantity-selector::after,
body.woocommerce-checkout .wc-block-components-quantity-selector::after {
	border: 0;
}
body.woocommerce-cart .wc-block-components-quantity-selector__input,
body.woocommerce-cart input.wc-block-components-quantity-selector__input {
	color: var(--cp-text) !important;
	font-size: .9375rem;
	background: transparent;
	border: 0;
	box-shadow: none;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button {
	color: var(--cp-text);
	opacity: .7;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
	opacity: 1;
	color: var(--cp-accent);
}

/* ------------------------------------------------------------------ Totals */
body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-item {
	color: var(--cp-text);
	padding-block: var(--sp-8, .5rem);
}
body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label {
	color: var(--cp-muted);
}
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-checkout .wc-block-components-totals-wrapper {
	border-color: var(--cp-line);
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	color: var(--cp-text);
	font-weight: 600;
}
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	color: var(--cp-text);
	font-family: var(--font-family-heading, inherit);
	font-size: 1.375rem;
	font-weight: 700;
}
body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-checkout .wc-block-components-panel__button {
	color: var(--cp-text);
	font-weight: 500;
}
body.woocommerce-cart .wc-block-components-totals-discount .wc-block-components-totals-item__value {
	color: var(--color-success, #198754);
}
body.woocommerce-cart .wc-block-components-chip,
body.woocommerce-checkout .wc-block-components-chip {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-field-radius);
	color: var(--cp-text);
}

/* ------------------------------------------------------------------ Buttons: same look as the theme buttons */
body.woocommerce-cart .wc-block-components-button:not(.is-link),
body.woocommerce-checkout .wc-block-components-button:not(.is-link),
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background: var(--bs-btn-bg);
	color: var(--bs-btn-color);
	border: 1px solid var(--bs-btn-border-color, var(--bs-btn-bg));
	border-radius: var(--cp-btn-radius);
	min-height: var(--cp-field-h);
	box-shadow: var(--shadow-button, none);
	font-family: var(--font-family-body, inherit);
	font-weight: 500;
	text-transform: none;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
body.woocommerce-cart .wc-block-components-button:not(.is-link):hover,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):hover,
body.woocommerce-cart .wc-block-components-button:not(.is-link):focus-visible,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):focus-visible {
	background: var(--bs-btn-hover-bg, var(--bs-btn-bg));
	color: var(--bs-btn-hover-color, var(--bs-btn-color));
	border-color: var(--bs-btn-hover-border-color, var(--bs-btn-border-color));
	box-shadow: var(--shadow-button-hover, none);
}
body.woocommerce-cart .wc-block-components-button:not(.is-link):disabled,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):disabled {
	background: var(--bs-btn-disabled-bg, var(--bs-btn-bg));
	color: var(--bs-btn-disabled-color, var(--bs-btn-color));
	opacity: .65;
}
body.woocommerce-cart .wc-block-components-button.outlined:not(.is-link),
body.woocommerce-checkout .wc-block-components-button.outlined:not(.is-link),
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
	background: transparent;
	color: var(--cp-text);
	border: 1px solid var(--cp-field-line);
}
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
	box-shadow: none;
}
body.woocommerce-cart .wc-block-components-button.is-link,
body.woocommerce-checkout .wc-block-components-button.is-link,
body.woocommerce-checkout .wc-block-components-checkout-return-to-cart-button {
	color: var(--cp-accent);
}
body.woocommerce-cart .wc-block-cart__submit-container,
body.woocommerce-checkout .wc-block-checkout__actions_row {
	padding-top: var(--sp-16, 1rem);
}

/* ------------------------------------------------------------------ Form fields: same look as the theme form fields */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input[type="text"],
body.woocommerce-checkout .wc-block-components-text-input input[type="email"],
body.woocommerce-checkout .wc-block-components-text-input input[type="tel"],
body.woocommerce-checkout .wc-block-components-text-input input[type="number"],
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input,
body.woocommerce-cart .wc-block-components-text-input input {
	background: var(--cp-bg);
	color: var(--cp-text);
	border: var(--border);
	border-radius: var(--cp-field-radius) !important;
	min-height: var(--cp-field-h);
	box-shadow: none;
	font-family: var(--font-family-body, inherit);
	font-size: 1rem;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-textarea:focus,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus,
body.woocommerce-checkout .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input:focus,
body.woocommerce-cart .wc-block-components-text-input input:focus {
	border-color: var(--cp-focus);
	box-shadow: 0 0 0 1px var(--cp-focus);
	outline: 0;
}
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-blocks-components-select .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-components-combobox .components-base-control__label,
body.woocommerce-cart .wc-block-components-text-input label {
	color: var(--cp-muted);
	font-family: var(--font-family-body, inherit);
}
body.woocommerce-checkout .wc-block-components-text-input.is-active label,
body.woocommerce-checkout .wc-block-components-text-input input:focus + label {
	color: var(--cp-text);
}
body.woocommerce-checkout .wc-block-components-text-input.has-error input,
body.woocommerce-checkout .wc-blocks-components-select.has-error .wc-blocks-components-select__select {
	border-color: var(--color-danger, #dc3545);
}
body.woocommerce-checkout .wc-block-components-validation-error {
	color: var(--color-danger, #dc3545);
}
body.woocommerce-checkout .wc-block-components-address-form {
	gap: var(--sp-12, .75rem) var(--sp-16, 1rem);
}

/* Check boxes and radio options (shipping, payment) */
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__mark {
	fill: var(--bs-btn-color, #fff);
}
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	border: 1px solid var(--cp-field-line);
	border-radius: min(var(--cp-field-radius), 6px);
	background: var(--cp-bg);
}
body.woocommerce-checkout .wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--bs-btn-bg, var(--cp-accent));
	border-color: var(--bs-btn-bg, var(--cp-accent));
}
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout .wc-block-components-radio-control__label {
	color: var(--cp-text);
}
body.woocommerce-checkout .wc-block-components-radio-control__description,
body.woocommerce-checkout .wc-block-components-radio-control__secondary-label {
	color: var(--cp-muted);
}
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option,
body.woocommerce-checkout .wc-block-components-radio-control__option {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-field-radius);
	background: var(--cp-bg);
}
body.woocommerce-checkout .wc-block-components-radio-control .wc-block-components-radio-control__option-checked,
body.woocommerce-checkout .wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control__option-checked {
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 1px var(--cp-accent);
}
body.woocommerce-checkout .wc-block-components-radio-control__input:checked::before {
	background: var(--cp-accent);
}
body.woocommerce-checkout .wc-block-components-radio-control__input:checked {
	border-color: var(--cp-accent);
}
body.woocommerce-checkout .wc-block-components-radio-control__input {
	border: 1px solid var(--cp-field-line);
	background: var(--cp-bg);
}

/* Order summary in the checkout sidebar */
body.woocommerce-checkout .wc-block-components-order-summary-item {
	padding-block: var(--sp-12, .75rem);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__image > img {
	border-radius: var(--cp-radius);
	border: 1px solid var(--cp-line);
	background: var(--cp-surface);
}
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity {
	background: var(--bs-btn-bg, var(--cp-text));
	color: var(--bs-btn-color, #fff);
	border: 2px solid var(--cp-bg);
	box-shadow: none;
}
body.woocommerce-checkout .wc-block-components-order-summary-item__total-price {
	font-weight: 600;
}
body.woocommerce-checkout .wc-block-checkout__terms,
body.woocommerce-checkout .wc-block-checkout__add-note {
	color: var(--cp-muted);
	font-size: .875rem;
}
body.woocommerce-checkout .wc-block-checkout__terms a {
	color: var(--cp-accent);
}

/* ------------------------------------------------------------------ Notices (blocks and classic) */
body.woocommerce-cart .wc-block-components-notice-banner,
body.woocommerce-checkout .wc-block-components-notice-banner,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-error {
	border: 1px solid var(--cp-line);
	border-left-width: 4px;
	border-radius: var(--cp-field-radius);
	background: var(--cp-surface);
	color: var(--cp-text);
	font-family: var(--font-family-body, inherit);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-error,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-account .woocommerce-error {
	border-color: var(--color-danger, #dc3545);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-success,
body.woocommerce-checkout .wc-block-components-notice-banner.is-success,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-account .woocommerce-message {
	border-color: var(--color-success, #198754);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-info,
body.woocommerce-checkout .wc-block-components-notice-banner.is-info,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-account .woocommerce-info {
	border-color: var(--color-info, var(--cp-accent));
}
body.woocommerce-cart .wc-block-components-notice-banner > svg,
body.woocommerce-checkout .wc-block-components-notice-banner > svg {
	background: var(--cp-text);
	fill: var(--cp-bg);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-error > svg,
body.woocommerce-checkout .wc-block-components-notice-banner.is-error > svg {
	background: var(--color-danger, #dc3545);
}
body.woocommerce-cart .wc-block-components-notice-banner.is-success > svg,
body.woocommerce-checkout .wc-block-components-notice-banner.is-success > svg {
	background: var(--color-success, #198754);
}

/* ------------------------------------------------------------------ Classic cart, checkout and account pages */
body.woocommerce-cart table.shop_table,
body.woocommerce-checkout table.shop_table,
body.woocommerce-account table.shop_table {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	background: var(--cp-bg);
	color: var(--cp-text);
}
body.woocommerce-cart table.shop_table th,
body.woocommerce-checkout table.shop_table th,
body.woocommerce-account table.shop_table th {
	background: var(--cp-surface);
	color: var(--cp-text);
	font-weight: 600;
	border: 0;
	border-bottom: 1px solid var(--cp-line);
}
body.woocommerce-cart table.shop_table td,
body.woocommerce-checkout table.shop_table td,
body.woocommerce-account table.shop_table td {
	border: 0;
	border-bottom: 1px solid var(--cp-line);
}
body.woocommerce-cart table.shop_table tr:last-child td,
body.woocommerce-checkout table.shop_table tr:last-child td,
body.woocommerce-account table.shop_table tr:last-child td {
	border-bottom: 0;
}
body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	padding: var(--cp-gap);
	box-shadow: var(--cp-shadow);
	background: var(--cp-bg);
}
body.woocommerce-checkout #order_review table.shop_table,
body.woocommerce-cart .cart_totals table.shop_table {
	border: 0;
	border-radius: 0;
}
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table th {
	background: transparent;
}
body.woocommerce-cart table.cart img {
	width: 80px;
	border-radius: var(--cp-radius);
}
body.woocommerce-checkout .woocommerce form .form-row label,
body.woocommerce-account .woocommerce form .form-row label {
	color: var(--cp-text);
	font-weight: 500;
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text,
body.woocommerce-checkout .woocommerce form .form-row textarea,
body.woocommerce-checkout .woocommerce form .form-row select,
body.woocommerce-checkout .select2-container--default .select2-selection--single,
body.woocommerce-account .woocommerce form .form-row input.input-text,
body.woocommerce-account .woocommerce form .form-row select,
body.woocommerce-cart .woocommerce input.input-text {
	background: var(--cp-bg);
	color: var(--cp-text);
	border: var(--border);
	border-radius: var(--cp-field-radius) !important;
	min-height: var(--cp-field-h);
	box-shadow: none;
}
body.woocommerce-checkout .woocommerce form .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce form .form-row textarea:focus,
body.woocommerce-account .woocommerce form .form-row input.input-text:focus {
	border-color: var(--cp-focus);
	box-shadow: 0 0 0 1px var(--cp-focus);
	outline: 0;
}
body.woocommerce-checkout #payment {
	background: var(--cp-surface);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
}
body.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--cp-line);
}
body.woocommerce-checkout #payment div.payment_box {
	background: var(--cp-bg);
	color: var(--cp-text);
	border-radius: var(--cp-field-radius);
}
body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--cp-bg);
}
body.woocommerce-cart .woocommerce a.button,
body.woocommerce-cart .woocommerce button.button,
body.woocommerce-checkout .woocommerce a.button,
body.woocommerce-checkout .woocommerce button.button,
body.woocommerce-checkout #place_order,
body.woocommerce-account .woocommerce a.button,
body.woocommerce-account .woocommerce button.button {
	background: var(--bs-btn-bg);
	color: var(--bs-btn-color);
	border: 1px solid var(--bs-btn-border-color, var(--bs-btn-bg));
	border-radius: var(--cp-btn-radius);
	min-height: var(--cp-field-h);
	box-shadow: var(--shadow-button, none);
	font-weight: 500;
}
body.woocommerce-cart .woocommerce a.button:hover,
body.woocommerce-cart .woocommerce button.button:hover,
body.woocommerce-checkout .woocommerce a.button:hover,
body.woocommerce-checkout .woocommerce button.button:hover,
body.woocommerce-checkout #place_order:hover,
body.woocommerce-account .woocommerce a.button:hover,
body.woocommerce-account .woocommerce button.button:hover {
	background: var(--bs-btn-hover-bg, var(--bs-btn-bg));
	color: var(--bs-btn-hover-color, var(--bs-btn-color));
	border-color: var(--bs-btn-hover-border-color, var(--bs-btn-border-color));
	box-shadow: var(--shadow-button-hover, none);
}
body.woocommerce-checkout #place_order {
	width: 100%;
	padding-block: var(--sp-12, .75rem);
}

/* ------------------------------------------------------------------ My Account */
body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	overflow: hidden;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: var(--sp-12, .75rem) var(--sp-16, 1rem);
	color: var(--cp-text);
	text-decoration: none;
	border-bottom: 1px solid var(--cp-line);
}
body.woocommerce-account .woocommerce-MyAccount-navigation li:last-child a {
	border-bottom: 0;
}
body.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: var(--cp-surface);
	color: var(--cp-accent);
	font-weight: 600;
}
body.woocommerce-account .woocommerce-form-login,
body.woocommerce-account .woocommerce-form-register {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	padding: var(--cp-gap);
	background: var(--cp-bg);
}

/* ------------------------------------------------------------------ Order received */
body.woocommerce-order-received .woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-16, 1rem) var(--sp-32, 2rem);
	list-style: none;
	margin: 0 0 var(--cp-gap);
	padding: var(--cp-gap);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	background: var(--cp-surface);
}
body.woocommerce-order-received .woocommerce-order-overview li {
	border: 0;
	margin: 0;
	padding: 0;
	color: var(--cp-muted);
	text-transform: none;
	font-size: .875rem;
}
body.woocommerce-order-received .woocommerce-order-overview li strong {
	display: block;
	color: var(--cp-text);
	font-size: 1rem;
}
body.woocommerce-order-received .woocommerce-thankyou-order-received {
	color: var(--color-success, #198754);
	font-weight: 600;
}

/* ------------------------------------------------------------------ Cart block: details the default cart styles leave plain */

/* Empty cart */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
	padding-block: var(--sp-40, 2.5rem);
	text-align: center;
}
body.woocommerce-cart .wc-block-cart__empty-cart__title {
	font-family: var(--font-family-heading, inherit);
	font-size: 1.5rem;
	font-weight: 600;
	color: var(--cp-text);
}
body.woocommerce-cart .wc-block-cart__empty-cart__title.with-empty-cart-icon::before {
	background-color: var(--cp-accent);
	opacity: .85;
}

/* Cart line: price, discount and sale badge */
body.woocommerce-cart .wc-block-cart-item__prices .price,
body.woocommerce-cart .wc-block-cart-item__prices .wc-block-components-product-price {
	color: var(--cp-muted);
}
body.woocommerce-cart .wc-block-components-sale-badge,
body.woocommerce-cart .wc-block-components-product-sale-badge,
body.woocommerce-checkout .wc-block-components-product-sale-badge {
	background: var(--cp-accent);
	border: 0;
	border-radius: var(--cp-field-radius);
	color: var(--bs-btn-color, #fff);
	font-size: .75rem;
	font-weight: 600;
	letter-spacing: .03em;
	padding: .2em .6em;
}
body.woocommerce-cart .wc-block-cart-item__remove-link {
	height: auto;
	width: auto;
	transition: color .18s ease;
}
body.woocommerce-cart .wc-block-components-quantity-selector:focus-within {
	border-color: var(--cp-focus);
	box-shadow: 0 0 0 1px var(--cp-focus);
}
body.woocommerce-cart .wc-block-components-quantity-selector__input:focus,
body.woocommerce-cart .wc-block-components-quantity-selector__button:focus {
	box-shadow: none;
	outline: 0;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button:focus-visible {
	outline: 2px solid var(--cp-focus);
	outline-offset: -2px;
}
body.woocommerce-cart .wc-block-components-product-details__name {
	color: var(--cp-muted);
}

/* Order summary panel */
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block {
	border-bottom-color: var(--cp-line);
}
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-totals-block {
	border-top-color: var(--cp-line);
}
body.woocommerce-cart .wc-block-components-totals-footer-item {
	padding-top: var(--sp-12, .75rem);
}

/* Coupon */
body.woocommerce-cart .wc-block-components-totals-coupon__form {
	gap: var(--sp-8, .5rem);
	align-items: stretch;
}
body.woocommerce-cart .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button {
	min-width: 96px;
}
body.woocommerce-cart .wc-block-components-totals-discount__coupon-list .wc-block-components-chip {
	font-size: .8125rem;
}

/* Shipping */
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-item strong {
	color: var(--cp-text);
	font-weight: 600;
}
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-shipping__change-address__link,
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-shipping__change-address-button {
	color: var(--cp-accent);
}
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-shipping-address,
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-shipping__via,
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-shipping-placeholder__value {
	color: var(--cp-muted);
}
body.woocommerce-cart .wc-block-components-radio-control__option {
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-field-radius);
	background: var(--cp-bg);
}
body.woocommerce-cart .wc-block-components-radio-control__option-checked {
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 1px var(--cp-accent);
}
body.woocommerce-cart .wc-block-components-radio-control__input {
	border: 1px solid var(--cp-field-line);
	background: var(--cp-bg);
}
body.woocommerce-cart .wc-block-components-radio-control__input:checked,
body.woocommerce-cart .wc-block-components-radio-control__input:focus {
	border-color: var(--cp-accent);
}
body.woocommerce-cart .wc-block-components-radio-control__input:checked::before {
	background: var(--cp-accent);
}

/* Express payment (Apple Pay, Google Pay, PayPal) */
body.woocommerce-cart .wc-block-components-express-payment--cart .wc-block-components-express-payment__event-buttons {
	gap: var(--sp-8, .5rem);
}
body.woocommerce-cart .wc-block-components-express-payment__event-buttons > div,
body.woocommerce-cart .wc-block-components-express-payment__event-buttons > li,
body.woocommerce-checkout .wc-block-components-express-payment__event-buttons > div,
body.woocommerce-checkout .wc-block-components-express-payment__event-buttons > li {
	border-radius: var(--cp-btn-radius);
}
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__content {
	border-color: var(--cp-line);
	border-radius: 0 0 var(--cp-radius) var(--cp-radius);
}
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::before,
body.woocommerce-checkout .wc-block-components-express-payment--checkout .wc-block-components-express-payment__title-container::after {
	border-color: var(--cp-line);
}
body.woocommerce-cart .wc-block-components-express-payment-continue-rule,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule {
	color: var(--cp-muted);
	font-family: var(--font-family-body, inherit);
}
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-cart .wc-block-components-express-payment-continue-rule::after,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::before,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule::after {
	border-bottom-color: var(--cp-line);
}
body.woocommerce-cart .wc-block-components-express-payment--disabled .wc-block-components-express-payment__content {
	opacity: .55;
}

/* Keyboard focus ring on every cart button, in the theme accent */
body.woocommerce-cart .wc-block-components-button:not(.is-link):focus,
body.woocommerce-checkout .wc-block-components-button:not(.is-link):focus {
	box-shadow: 0 0 0 2px var(--cp-bg), 0 0 0 4px var(--cp-focus);
	outline: 0;
}
body.woocommerce-cart .wc-block-components-button.outlined:not(.is-link):not(:focus),
body.woocommerce-cart .wc-block-components-button.is-style-outline:not(.is-link):not(:focus) {
	box-shadow: none;
}
body.woocommerce-cart .wc-block-components-button.outlined:not(.is-link):not(:disabled):hover,
body.woocommerce-cart .wc-block-components-button.is-style-outline:not(.is-link):not(:disabled):hover {
	background: var(--bs-btn-bg);
	color: var(--bs-btn-color);
	border-color: var(--bs-btn-bg);
}
body.woocommerce-cart .wc-block-cart__submit-button {
	width: 100%;
	padding-inline: var(--sp-24, 1.5rem);
}
body.woocommerce-cart .wc-block-components-spinner {
	color: currentColor;
}

/* Cross-sells ("You may be interested in") */
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block {
	margin-top: var(--sp-40, 2.5rem);
	padding-top: var(--sp-24, 1.5rem);
	border-top: 1px solid var(--cp-line);
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wp-block-heading {
	font-family: var(--font-family-heading, inherit);
	font-size: 1.25rem;
	font-weight: 600;
	color: var(--cp-text);
	margin-bottom: var(--sp-24, 1.5rem);
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product {
	background: var(--cp-bg);
	border: 1px solid var(--cp-line);
	border-radius: var(--cp-radius);
	box-shadow: var(--cp-shadow);
	box-sizing: border-box;
	padding: var(--sp-16, 1rem);
	margin-right: 3%;
	width: 31%;
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product:nth-child(3n+3) {
	margin-right: 0;
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-image img {
	border-radius: var(--cp-radius);
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-name {
	font-weight: 600;
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-price {
	color: var(--cp-text);
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button {
	background: var(--bs-btn-bg);
	color: var(--bs-btn-color);
	border: 1px solid var(--bs-btn-border-color, var(--bs-btn-bg));
	border-radius: var(--cp-btn-radius);
	min-height: var(--cp-field-h);
	box-shadow: var(--shadow-button, none);
	font-weight: 500;
	transition: background-color .18s ease, color .18s ease, border-color .18s ease;
}
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button:hover {
	background: var(--bs-btn-hover-bg, var(--bs-btn-bg));
	color: var(--bs-btn-hover-color, var(--bs-btn-color));
	border-color: var(--bs-btn-hover-border-color, var(--bs-btn-border-color));
}
body.woocommerce-cart .wc-block-components-product-rating-stars__stars::before,
body.woocommerce-cart .wc-block-components-product-rating-stars__stars span::before {
	color: var(--cp-accent);
}

/* Loading skeleton: soft theme tones instead of grey blocks */
body.woocommerce-cart .wc-block-cart--is-loading h2 span,
body.woocommerce-cart .wc-block-cart--is-loading th span,
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-components-product-price,
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-components-quantity-selector,
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-components-product-name,
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-cart-item__image > a,
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-line-items-block,
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-order-summary-block,
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-express-payment-block,
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-proceed-to-checkout-block,
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-accepted-payment-methods-block {
	background: var(--cp-surface);
	border-radius: var(--cp-field-radius);
}
body.woocommerce-cart .wc-block-cart--is-loading .wc-block-cart__sidebar .components-card {
	background: var(--cp-surface);
	border-radius: var(--cp-radius);
}
body.woocommerce-cart .wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-line-items-block {
	border-radius: var(--cp-radius);
}

/* Payment method icons under the checkout button */
body.woocommerce-cart .wc-block-components-payment-method-icons .wc-block-components-payment-method-icon {
	border-radius: 3px;
}

/* Cart error page */
.wc-block-components-error {
	color: var(--cp-muted, var(--color-muted, #6b7280));
}
.wc-block-components-error__header {
	font-family: var(--font-family-heading, inherit);
	color: var(--cp-text, rgb(var(--color-foreground, 33, 37, 41)));
	font-weight: 600;
}
.wc-block-components-error__text,
.wc-block-components-error__message {
	color: var(--cp-muted, var(--color-muted, #6b7280));
}

/* Sticky "Proceed to checkout" bar on phones: theme background and line instead of fixed white and grey */
@media (max-width: 782px) {
	body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-container--sticky {
		background: var(--cp-bg);
		border-top: 1px solid var(--cp-line);
		padding: var(--sp-12, .75rem) var(--sp-16, 1rem);
	}
	body.woocommerce-cart .wc-block-cart .wc-block-cart__submit-container--sticky::before {
		box-shadow: none;
	}
	body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .cross-sells-product {
		margin-right: 0;
		margin-bottom: var(--sp-16, 1rem);
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-cart .wc-block-cart-item__remove-link,
	body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block .wc-block-components-product-button__button {
		transition: none;
	}
}

/* ------------------------------------------------------------------ Small screens */
@media (max-width: 781px) {
	body.woocommerce-cart .wc-block-components-sidebar-layout,
	body.woocommerce-checkout .wc-block-components-sidebar-layout {
		gap: var(--sp-24, 1.5rem);
	}
	body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__image {
		width: 84px;
	}
	body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__image img {
		width: 72px;
	}
	body.woocommerce-cart .wc-block-cart__sidebar,
	body.woocommerce-checkout .wc-block-checkout__sidebar {
		padding: var(--sp-16, 1rem);
	}
}
