/**
 * RF cart drawer (<dialog id="rf-cart">): slides in from the right. Rows are
 * built from the WooCommerce Store API by modules/cart-drawer.js.
 */

.rf-cart {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(100%, var(--drawer-width));
	height: 100%;
	max-width: none;
	max-height: none;
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	background: var(--color-background);
	color: var(--color-text);
	translate: 100% 0;
	transition: translate var(--duration-drawer) var(--ease-drawer);
}

.rf-cart[open] {
	display: flex;
	flex-direction: column;
}

.rf-cart.is-open {
	translate: 0 0;
}

.rf-cart::backdrop {
	background: var(--color-overlay);
}

.rf-cart__inner {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
}

.rf-cart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: var(--header-height);
	padding-inline: var(--gutter);
	border-bottom: 1px solid var(--color-hairline);
}

.rf-cart__title {
	font-size: var(--type-heading-size-sm);
	font-weight: var(--weight-regular);
}

.rf-cart__close {
	display: inline-flex;
	align-items: center;
	justify-content: flex-end;
	min-width: 2.75rem;
	min-height: 2.75rem;
	font-size: var(--type-nav-size);
	letter-spacing: var(--type-nav-tracking);
}

.rf-cart__close:hover {
	text-decoration-line: underline;
	text-underline-offset: 0.45em;
}

.rf-cart__body {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-inline: var(--gutter);
}

.rf-cart__loading,
.rf-cart__error {
	padding-block: var(--space-l);
	color: var(--color-text-secondary);
	font-size: var(--type-caption-size);
}

.rf-cart__items {
	margin: 0;
	padding: 0;
	list-style: none;
}

.rf-cart__item {
	display: grid;
	grid-template-columns: 5rem minmax(0, 1fr);
	gap: var(--space-s);
	padding-block: var(--space-s);
	border-bottom: 1px solid var(--color-hairline);
	transition: opacity var(--duration-fast) var(--ease-standard);
}

.rf-cart__item.is-busy {
	opacity: 0.4;
	pointer-events: none;
}

.rf-cart__thumb {
	display: block;
	aspect-ratio: var(--ratio-product);
	overflow: hidden;
	background: var(--color-placeholder);
}

.rf-cart__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.rf-cart__info {
	display: grid;
	align-content: start;
	gap: var(--space-3xs);
	font-size: var(--type-price-size);
	line-height: var(--type-price-leading);
	letter-spacing: var(--type-price-tracking);
}

.rf-cart__name {
	color: inherit;
}

.rf-cart__meta {
	color: var(--color-text-secondary);
}

.rf-cart__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-s);
	margin-top: var(--space-2xs);
}

.rf-cart__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--color-hairline);
}

.rf-cart__qty button {
	width: 2.75rem;
	height: 2.75rem;
	font-size: var(--type-body-size-lg);
}

.rf-cart__qty button:disabled {
	opacity: 0.3;
	cursor: default;
}

.rf-cart__qty output {
	min-width: 1.5rem;
	text-align: center;
	font-variant-numeric: tabular-nums;
}

.rf-cart__price {
	font-variant-numeric: var(--type-price-numerals);
}

.rf-cart__remove {
	min-height: 2.75rem;
	color: var(--color-text-secondary);
	font-size: var(--type-caption-size);
	text-decoration-line: underline;
	text-underline-offset: 0.3em;
}

.rf-cart__empty {
	display: grid;
	justify-items: center;
	gap: var(--space-2xs);
	padding-block: var(--space-2xl);
	text-align: center;
}

.rf-cart__foot {
	display: grid;
	gap: var(--space-xs);
	padding: var(--space-s) var(--gutter) calc(var(--space-s) + env(safe-area-inset-bottom, 0px));
	border-top: 1px solid var(--color-hairline);
}

.rf-cart__subtotal {
	display: flex;
	justify-content: space-between;
	font-size: var(--type-body-size);
}

.rf-cart__note {
	color: var(--color-text-secondary);
	font-size: var(--type-caption-size);
}

.rf-cart__foot .rf-button {
	width: 100%;
}

.rf-cart__continue {
	justify-self: center;
}
