/**
 * WooCommerce block checkout and cart.
 *
 * The block components get the world's form grammar: outlined fields,
 * condensed step heads, the order summary as a ruled box with the total
 * in ink, Place Order in ink. Reads the plugin's tokens.
 */

.wc-block-checkout,
.wc-block-cart,
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart {
	font-family: var(--fm-font-body);
	color: var(--fm-black);
}

/* Steps */
.wc-block-components-checkout-step {
	padding: 0 0 calc(var(--fm-m) * 3);
	margin: 0;
}

.wc-block-components-checkout-step__heading {
	margin: 0 0 var(--fm-m);
	padding: 0 0 var(--fm-m);
	border-bottom: var(--fm-rule-strong);
}

.wc-block-components-checkout-step__title,
.wc-block-components-title {
	margin: 0;
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 22px;
	line-height: 1;
	letter-spacing: calc(0.02em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	color: var(--fm-black);
}

.wc-block-components-checkout-step__description {
	margin: 4px 0 0;
	font-size: 14px;
	color: var(--fm-n6);
}

.wc-block-components-checkout-step__container::after {
	display: none;
}

/* Fields */
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="url"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea textarea,
.wc-block-components-combobox .components-combobox-control__input,
.wc-block-components-select .components-custom-select-control__button,
.wc-blocks-components-select__select {
	min-height: calc(var(--fm-m) * 7);
	padding: calc(var(--fm-m) * 2.25) calc(var(--fm-m) * 1.5) calc(var(--fm-m) * 0.75);
	background: var(--fm-paper);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	box-shadow: none;
	color: var(--fm-black);
	font-family: var(--fm-font-body);
	font-size: 16px;
	font-weight: 500;
}

.wc-block-components-text-input input:focus,
.wc-block-components-textarea textarea:focus,
.wc-block-components-combobox .components-combobox-control__input:focus,
.wc-blocks-components-select__select:focus {
	outline: none;
	border-color: var(--fm-black);
	box-shadow: var(--fm-focus);
}

.wc-block-components-text-input label,
.wc-block-components-combobox label,
.wc-block-components-textarea label,
.wc-blocks-components-select__label {
	color: var(--fm-n6);
	font-weight: 600;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-combobox.is-active label {
	color: var(--fm-n7);
}

.wc-block-components-text-input.has-error input,
.wc-block-components-validation-error {
	border-color: var(--fm-error);
	color: var(--fm-error);
}

.wc-block-components-validation-error p {
	font-weight: 600;
	font-size: 13px;
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"] {
	width: calc(var(--fm-m) * 2.5);
	height: calc(var(--fm-m) * 2.5);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	accent-color: var(--fm-ink);
}

.wc-block-components-checkbox .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--fm-ink);
	border-color: var(--fm-ink);
}

.wc-block-components-checkbox .wc-block-components-checkbox__mark {
	color: var(--fm-on-ink);
}

.wc-block-components-checkbox .wc-block-components-checkbox__label {
	font-size: 15px;
}

.wc-block-components-address-card {
	padding: calc(var(--fm-m) * 1.5);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
}

.wc-block-components-address-card.is-selected {
	border-width: 2px;
}

/* Radio controls: shipping and payment */
.wc-block-components-radio-control .wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option,
.wc-block-checkout .wc-block-components-radio-control__option,
.wc-block-checkout .wc-block-components-radio-control-accordion-option {
	position: relative;
	padding: var(--fm-m) 0 var(--fm-m) calc(var(--fm-m) * 4.5);
	border-bottom: var(--fm-rule);
}

.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option,
.wc-block-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
	padding: 0 0 0 calc(var(--fm-m) * 4.5);
	border-bottom: 0;
}

.wc-block-components-radio-control .wc-block-components-radio-control__input,
.wc-block-checkout .wc-block-components-radio-control__input,
.wc-block-components-radio-control__input {
	position: absolute;
	left: 0;
	top: calc(var(--fm-m) * 1.25);
	width: calc(var(--fm-m) * 2.5);
	height: calc(var(--fm-m) * 2.5);
	margin: 0;
	transform: none;
	border: 1.5px solid var(--fm-black);
	accent-color: var(--fm-ink);
}

.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input,
.wc-block-checkout .wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__input {
	top: calc(var(--fm-m) * 1.25);
	transform: none;
}

.wc-block-components-radio-control__label,
.wc-block-components-radio-control__label-group {
	display: block;
	min-height: calc(var(--fm-m) * 2.5);
	line-height: calc(var(--fm-m) * 2.5);
}

.wc-block-components-radio-control__input:checked {
	border-color: var(--fm-ink);
}

.wc-block-components-radio-control__input:checked::before {
	background: var(--fm-ink);
}

.wc-block-components-radio-control__label,
.wc-block-components-radio-control__label-group {
	font-size: 15px;
	font-weight: 600;
}

.wc-block-components-radio-control__description {
	font-size: 13px;
	color: var(--fm-n6);
}

.wc-block-checkout__payment-method .wc-block-components-radio-control-accordion-option {
	border: 0;
	border-bottom: var(--fm-rule);
}

.wc-block-components-radio-control-accordion-content {
	padding: var(--fm-m) 0 0 calc(var(--fm-m) * 4);
	font-size: 14px;
	color: var(--fm-n7);
}

.wc-block-components-radio-control .wc-block-components-radio-control__option-checked,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	outline: none;
	box-shadow: none;
}

/* Order summary: the ruled box */
.wc-block-checkout__sidebar .wc-block-components-sidebar,
.wc-block-cart__sidebar .wc-block-components-sidebar {
	padding: 0;
}

.wc-block-components-checkout-order-summary,
.wc-block-cart__totals,
.wc-block-cart .wc-block-cart__sidebar .wc-block-components-sidebar {
	border: var(--fm-rule-strong);
	border-radius: var(--fm-radius);
	background: var(--fm-paper);
}

.wc-block-components-checkout-order-summary__title {
	padding: calc(var(--fm-m) * 1.5) 16px;
	border-bottom: var(--fm-rule-strong);
	background: transparent;
}

.wc-block-components-checkout-order-summary__title-text,
.wc-block-cart__totals-title {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 22px;
	letter-spacing: calc(0.02em * var(--fm-tracking));
	text-transform: var(--fm-caps);
}

.wc-block-components-checkout-order-summary__title-price {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 20px;
	color: var(--fm-price-ink);
}

.wc-block-components-order-summary .wc-block-components-order-summary-item {
	padding: calc(var(--fm-m) * 1.5) 0;
	border-bottom: var(--fm-rule);
}

.wc-block-components-order-summary-item__image img {
	border-radius: var(--fm-radius);
	outline: 1px solid var(--fm-n2);
	outline-offset: -1px;
}

.wc-block-components-order-summary-item__quantity,
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
	background: var(--fm-black);
	border: 2px solid var(--fm-paper);
	color: var(--fm-black);
	box-shadow: none;
	font-weight: var(--fm-display-weight);
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity span {
	color: var(--fm-paper);
}

.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-name,
.wc-block-components-order-summary .wc-block-components-product-name,
.wc-block-components-product-name {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 18px;
	line-height: 1;
	color: var(--fm-black);
	text-decoration: none;
}

.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name,
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-name {
	font-size: 20px;
	font-weight: var(--fm-display-weight);
	color: var(--fm-black);
}

.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row .wc-block-components-product-name:hover,
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-name:hover {
	color: var(--fm-ink);
}

.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-metadata,
.wc-block-cart .wc-block-cart-item__product .wc-block-components-product-metadata__description {
	font-size: 14px;
	color: var(--fm-n6);
}

.wc-block-components-order-summary .wc-block-components-order-summary-item__description {
	font-size: 13px;
	color: var(--fm-n6);
}

.wc-block-components-order-summary-item__total-price,
.wc-block-components-order-summary-item__individual-prices,
.wc-block-components-product-price__value,
.wc-block-components-totals-item__value,
.wc-block-cart-item__total .wc-block-components-product-price__value {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-variant-numeric: tabular-nums lining-nums;
}

.wc-block-components-order-summary-item__total-price,
.wc-block-cart-item__total .wc-block-components-product-price__value {
	color: var(--fm-price-ink);
	font-size: 17px;
}

.wc-block-components-product-badge,
.wc-block-components-sale-badge {
	background: var(--fm-ink-2);
	border: 1px solid var(--fm-black);
	border-radius: var(--fm-radius);
	color: var(--fm-on-ink-2);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: calc(0.06em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	box-shadow: none;
}

.wc-block-components-totals-wrapper {
	border-top: var(--fm-rule);
}

.wc-block-components-totals-item,
.wc-block-components-totals-coupon,
.wc-block-components-totals-shipping {
	padding-inline: 16px;
}

.wc-block-components-totals-item__label {
	font-size: 15px;
	font-weight: 600;
	color: var(--fm-n7);
}

.wc-block-components-totals-item__value {
	font-size: 16px;
	color: var(--fm-black);
}

.wc-block-components-totals-footer-item {
	border-top: var(--fm-rule-strong);
}

.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 18px;
	letter-spacing: calc(0.02em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	color: var(--fm-black);
}

.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value .wc-block-formatted-money-amount,
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-wrapper .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value .wc-block-formatted-money-amount {
	font-size: 26px;
	color: var(--fm-price-ink);
}

.wc-block-components-totals-footer-item-tax {
	font-size: 12px;
	color: var(--fm-n6);
}

.wc-block-components-totals-coupon-link,
.wc-block-components-panel__button {
	color: var(--fm-black);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wc-block-components-totals-coupon__form {
	gap: var(--fm-m);
}

/* Cart items table (block cart) */
.wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header th,
.wc-block-cart .wc-block-cart-items__header th,
.wc-block-cart-items__header th {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 15px;
	letter-spacing: calc(0.04em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	color: var(--fm-n6);
	border-bottom: var(--fm-rule-strong);
}

.wc-block-cart-items__row {
	border-bottom: var(--fm-rule);
}

.wc-block-cart-item__image img {
	border-radius: var(--fm-radius);
	outline: 1px solid var(--fm-n2);
	outline-offset: -1px;
}

.wc-block-cart-item__remove-link {
	color: var(--fm-n6);
	font-size: 13px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.wc-block-components-quantity-selector {
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	box-shadow: none;
}

.wc-block-components-quantity-selector::after {
	display: none;
}

.wc-block-components-quantity-selector input.wc-block-components-quantity-selector__input {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 16px;
}

.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button,
.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	min-width: calc(var(--fm-m) * 5);
	color: var(--fm-black);
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 20px;
	line-height: 1;
	opacity: 1;
}

.wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	background: var(--fm-black);
	color: var(--fm-paper);
	box-shadow: none;
}

/* Buttons */
.wc-block-components-button,
.wc-block-components-checkout-place-order-button,
.wc-block-cart__submit-button {
	min-height: calc(var(--fm-m) * 7);
	background: var(--fm-ink);
	border: 1.5px solid var(--fm-ink);
	border-radius: var(--fm-radius);
	box-shadow: none;
	color: var(--fm-on-ink);
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 19px;
	letter-spacing: calc(0.03em * var(--fm-tracking));
	text-transform: var(--fm-caps);
}

.wc-block-components-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-cart__submit-button:hover {
	background: var(--fm-ink-hover);
	border-color: var(--fm-ink-hover);
	color: var(--fm-on-ink);
	box-shadow: none;
}

.wc-block-components-checkout-place-order-button .wc-block-components-button__text {
	font-family: inherit;
}

.wc-block-components-button.outlined,
.wc-block-components-button--outline,
.wc-block-components-button.contained.is-secondary {
	background: var(--fm-paper);
	border-color: var(--fm-black);
	color: var(--fm-black);
}

.wc-block-components-button:disabled,
.wc-block-components-checkout-place-order-button:disabled {
	background: var(--fm-n2);
	border-color: var(--fm-n2);
	color: var(--fm-n6);
	opacity: 1;
}

.wc-block-checkout__actions_row {
	padding-top: calc(var(--fm-m) * 2);
	border-top: var(--fm-rule-strong);
}

.wc-block-components-checkout-return-to-cart-button {
	color: var(--fm-black);
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Notices */
.wc-block-components-notice-banner {
	padding: var(--fm-m) calc(var(--fm-m) * 1.5);
	background: var(--fm-paper);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	color: var(--fm-black);
	box-shadow: none;
}

.wc-block-components-notice-banner.is-error {
	border-color: var(--fm-error);
	color: var(--fm-error);
}

.wc-block-components-notice-banner.is-success {
	border-color: var(--fm-success);
}

.wc-block-components-notice-banner.is-info {
	border-color: var(--fm-black);
}

.wc-block-components-notice-banner > svg {
	fill: currentColor;
	background: transparent;
}

/* Express payments and misc */
.wc-block-components-express-payment__title-container {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	text-transform: var(--fm-caps);
}

.wc-block-checkout__terms {
	font-size: 14px;
	color: var(--fm-n7);
}

.wc-block-components-checkout-order-summary__content .wp-block-paragraph {
	padding: var(--fm-m) 16px 0;
	font-size: 13px;
	color: var(--fm-n6);
}

@media (min-width: 1025px) {
	.wc-block-checkout__sidebar {
		position: sticky;
		top: calc(var(--fm-m) * 2);
	}
}

/* Order type and time come before the totals they change */
.wc-block-cart .wc-block-cart__sidebar {
	display: flex;
	flex-direction: column;
}

.wc-block-cart .wc-block-cart__sidebar > .wp-block-woocommerce-cart-order-summary-block {
	order: 1;
}

.wc-block-cart .wc-block-cart__sidebar > .wc-block-cart__payment-options,
.wc-block-cart .wc-block-cart__sidebar > .wc-block-cart__submit {
	order: 2;
}

.wc-block-components-checkout-order-summary__content {
	display: flex;
	flex-direction: column;
}

.wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-foodmaster-order-type-block,
.wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-foodmaster-time-to-deliver-block,
.wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-foodmaster-store-selection-block {
	order: 1;
}

.wc-block-components-checkout-order-summary__content > .wp-block-woocommerce-checkout-order-summary-totals-block,
.wc-block-components-checkout-order-summary__content > .wc-block-components-totals-wrapper:last-child {
	order: 2;
}
