/**
 * Mini cart.
 *
 * Inline: the order as a ruled box beside the menu, items as rows with a
 * quantity stepper and the line total in the ink column, totals ruled off,
 * one ink action. Sticky: a black bottom bar carrying count and total with
 * an ink checkout button; it expands into the same box. The legacy style
 * variants (modern, classic, minimal) share this one grammar.
 * Depends on css/foodmaster-tokens.css.
 */

.foodmaster-mini-cart-wrapper {
	position: relative;
	width: 100%;
	background: var(--fm-paper);
	color: var(--fm-black);
	border: var(--fm-rule-strong);
	border-radius: var(--fm-radius);
	font-family: var(--fm-font-body);
	font-size: 15px;
	line-height: 1.35;
}

.foodmaster-mini-cart-wrapper.classic,
.foodmaster-mini-cart-wrapper.minimal,
.foodmaster-mini-cart-wrapper.modern {
	box-shadow: none;
}

/* Header */
.foodmaster-mini-cart-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--fm-m);
	min-height: calc(var(--fm-m) * 6);
	padding: var(--fm-m) calc(var(--fm-m) * 2);
	border-bottom: var(--fm-rule-strong);
}

.foodmaster-mini-cart-title {
	display: flex;
	align-items: baseline;
	gap: var(--fm-m);
	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);
}

.foodmaster-cart-count {
	font-family: var(--fm-font-body);
	font-weight: 500;
	font-size: 13px;
	letter-spacing: 0;
	text-transform: none;
	color: var(--fm-n6);
}

.foodmaster-cart-toggle {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--fm-m) * 4);
	height: calc(var(--fm-m) * 4);
	padding: 0;
	background: transparent;
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	color: var(--fm-black);
	cursor: pointer;
}

.foodmaster-cart-toggle .toggle-icon {
	display: inline-flex;
	transition: transform var(--fm-fast) var(--fm-ease);
}

.foodmaster-cart-toggle[aria-expanded="true"] .toggle-icon {
	transform: rotate(180deg);
}

.foodmaster-cart-toggle:hover {
	background: var(--fm-black);
	color: var(--fm-paper);
}

.foodmaster-cart-toggle:focus-visible {
	box-shadow: var(--fm-focus);
	outline: none;
}

/* Content */
.foodmaster-mini-cart-content {
	padding: 0 calc(var(--fm-m) * 2) calc(var(--fm-m) * 2);
}

.foodmaster-mini-cart-wrapper.collapsible .foodmaster-mini-cart-content.collapsed {
	display: none;
}

.foodmaster-mini-cart-items {
	position: relative;
	margin: 0;
	padding: 0;
}

/* Item row: [thumb] name + meta + stepper | line total | remove */
.foodmaster-mini-cart-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto auto;
	grid-template-areas:
		"details price remove";
	column-gap: var(--fm-m);
	align-items: start;
	padding: calc(var(--fm-m) * 1.5) 0;
	border-bottom: var(--fm-rule);
}

.foodmaster-mini-cart-item:has(.item-thumbnail) {
	grid-template-columns: auto minmax(0, 1fr) auto auto;
	grid-template-areas: "thumb details price remove";
}

.foodmaster-mini-cart-item .item-thumbnail {
	grid-area: thumb;
	width: calc(var(--fm-m) * 6);
	height: calc(var(--fm-m) * 6);
}

.foodmaster-mini-cart-item .item-thumbnail img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: var(--fm-radius);
	outline: 1px solid var(--fm-n2);
	outline-offset: -1px;
}

.foodmaster-mini-cart-item .item-details {
	grid-area: details;
	min-width: 0;
}

.foodmaster-mini-cart-item .item-name {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 18px;
	line-height: 1;
	overflow-wrap: anywhere;
}

.foodmaster-mini-cart-item .item-name a {
	color: inherit;
	text-decoration: none;
}

.foodmaster-mini-cart-item .item-name a:hover {
	color: var(--fm-ink);
}

.foodmaster-mini-cart-item .item-meta {
	margin-top: 4px;
	font-size: 13px;
	line-height: 1.35;
	color: var(--fm-n6);
}

.foodmaster-mini-cart-item .item-meta p,
.foodmaster-mini-cart-item .item-meta dl,
.foodmaster-mini-cart-item .item-meta dd {
	margin: 0;
}

.foodmaster-mini-cart-item .item-meta dt {
	display: inline;
	font-weight: 600;
	color: var(--fm-n7);
}

.foodmaster-mini-cart-item .item-meta dt::after {
	content: " ";
}

.foodmaster-mini-cart-item .item-price-quantity {
	display: flex;
	align-items: center;
	gap: calc(var(--fm-m) * 2);
	margin-top: var(--fm-m);
}

/* Stepper: three cells in one outlined bar */
.foodmaster-mini-cart-item .item-quantity {
	display: inline-grid;
	flex: 0 0 auto;
	grid-template-columns: calc(var(--fm-m) * 4) minmax(calc(var(--fm-m) * 4), auto) calc(var(--fm-m) * 4);
	align-items: center;
	height: calc(var(--fm-m) * 4);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	overflow: hidden;
}

.foodmaster-mini-cart-item .quantity-btn {
	appearance: none;
	-webkit-appearance: none;
	position: relative;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--fm-black);
	cursor: pointer;
	transition: background var(--fm-fast) var(--fm-ease), color var(--fm-fast) var(--fm-ease);
}

.foodmaster-mini-cart-item .quantity-btn::before,
.foodmaster-mini-cart-item .quantity-btn.plus::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 10px;
	height: 2px;
	background: currentColor;
	transform: translate(-50%, -50%);
}

.foodmaster-mini-cart-item .quantity-btn.plus::after {
	transform: translate(-50%, -50%) rotate(90deg);
}

.foodmaster-mini-cart-item .quantity-btn:hover {
	background: var(--fm-black);
	color: var(--fm-paper);
}

.foodmaster-mini-cart-item .quantity-btn:focus-visible {
	box-shadow: inset var(--fm-focus);
	outline: none;
}

.foodmaster-mini-cart-item .quantity-btn:disabled {
	color: var(--fm-n6);
	cursor: not-allowed;
}

.foodmaster-mini-cart-item .quantity-number {
	min-width: calc(var(--fm-m) * 4);
	padding: 0 4px;
	text-align: center;
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 16px;
	font-variant-numeric: tabular-nums;
	border-left: 1.5px solid var(--fm-black);
	border-right: 1.5px solid var(--fm-black);
	line-height: calc(var(--fm-m) * 4 - 3px);
}

/* Line total in the ink column */
.foodmaster-mini-cart-item .item-price-quantity .item-price {
	display: none;
}

.foodmaster-mini-cart-item .item-details .item-price {
	grid-area: price;
}

.foodmaster-mini-cart-item .item-price,
.foodmaster-mini-cart-item .item-price .woocommerce-Price-amount {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 18px;
	line-height: 1;
	color: var(--fm-price-ink);
	font-variant-numeric: tabular-nums lining-nums;
	white-space: nowrap;
	text-align: end;
}

.foodmaster-mini-cart-item > .item-price-quantity .item-price,
.foodmaster-mini-cart-item .item-details .item-price-quantity .item-price {
	display: block;
	margin-inline-start: auto;
}

/* Remove */
.foodmaster-mini-cart-item .item-remove {
	grid-area: remove;
}

.foodmaster-mini-cart-item .remove-item {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--fm-m) * 4);
	height: calc(var(--fm-m) * 4);
	margin: 0;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: var(--fm-radius);
	color: var(--fm-n6);
	cursor: pointer;
	transition: color var(--fm-fast) var(--fm-ease), background var(--fm-fast) var(--fm-ease);
}

.foodmaster-mini-cart-item .remove-item:hover {
	color: var(--fm-paper);
	background: var(--fm-black);
}

.foodmaster-mini-cart-item .remove-item:focus-visible {
	box-shadow: var(--fm-focus);
	outline: none;
}

/* Totals */
.foodmaster-mini-cart-subtotal {
	padding: calc(var(--fm-m) * 1.5) 0 0;
	border-top: var(--fm-rule-strong);
	margin-top: -1px;
}

.foodmaster-mini-cart-subtotal .subtotal-row,
.foodmaster-mini-cart-subtotal .tax-row,
.foodmaster-mini-cart-subtotal .total-row {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: var(--fm-m);
	padding: 2px 0;
	font-size: 14px;
	color: var(--fm-n6);
	font-variant-numeric: tabular-nums;
}

.foodmaster-mini-cart-subtotal .total-row {
	margin-top: 4px;
	color: var(--fm-black);
}

.foodmaster-mini-cart-subtotal .total-label {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 18px;
	text-transform: var(--fm-caps);
	letter-spacing: calc(0.02em * var(--fm-tracking));
}

.foodmaster-mini-cart-subtotal .total-amount,
.foodmaster-mini-cart-subtotal .total-amount .woocommerce-Price-amount {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 24px;
	line-height: 1;
	color: var(--fm-price-ink);
}

/* Actions */
.foodmaster-mini-cart-actions {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--fm-m);
	margin-top: calc(var(--fm-m) * 2);
}

.foodmaster-mini-cart-wrapper .foodmaster-cart-button,
.foodmaster-cart-button {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: calc(var(--fm-m) * 6);
	padding: 0 calc(var(--fm-m) * 2);
	background: var(--fm-paper);
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	color: var(--fm-black);
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 17px;
	line-height: 1;
	letter-spacing: calc(0.03em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--fm-fast) var(--fm-ease), color var(--fm-fast) var(--fm-ease), border-color var(--fm-fast) var(--fm-ease);
}

.foodmaster-mini-cart-wrapper .foodmaster-cart-button:hover,
.foodmaster-cart-button:hover {
	background: var(--fm-black);
	color: var(--fm-paper);
	text-decoration: none;
}

.foodmaster-mini-cart-wrapper .foodmaster-cart-button.checkout,
.foodmaster-cart-button.checkout {
	background: var(--fm-ink);
	border-color: var(--fm-ink);
	color: var(--fm-on-ink);
}

.foodmaster-mini-cart-wrapper .foodmaster-cart-button.checkout:hover,
.foodmaster-cart-button.checkout:hover {
	background: var(--fm-ink-hover);
	border-color: var(--fm-ink-hover);
	color: var(--fm-on-ink);
}

.foodmaster-cart-button:focus-visible {
	box-shadow: var(--fm-focus);
	outline: none;
}

/* Empty */
.foodmaster-mini-cart-empty {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: calc(var(--fm-m) * 1.5);
	padding: calc(var(--fm-m) * 3) 0 var(--fm-m);
}

.empty-cart-icon {
	color: var(--fm-n6);
}

.empty-cart-icon svg {
	display: block;
}

.empty-message {
	margin: 0;
	font-size: 15px;
	color: var(--fm-n6);
}

/* Loading and error */
.foodmaster-mini-cart-loading .foodmaster-mini-cart-items {
	opacity: 0.5;
	pointer-events: none;
}

.foodmaster-mini-cart-loading .foodmaster-mini-cart-items::after {
	content: "";
	position: absolute;
	inset: 0;
	margin: auto;
	width: 20px;
	height: 20px;
	border: 2px solid var(--fm-n2);
	border-top-color: var(--fm-ink);
	border-radius: 50%;
	animation: foodmaster-spin 0.8s linear infinite;
}

@keyframes foodmaster-spin {
	to { transform: rotate(360deg); }
}

.foodmaster-mini-cart-error {
	margin: var(--fm-m) 0 0;
	padding: var(--fm-m) calc(var(--fm-m) * 1.5);
	border: 1.5px solid var(--fm-error);
	border-radius: var(--fm-radius);
	color: var(--fm-error);
	font-size: 14px;
}

/* ---------- Sticky bottom cart ---------- */
.foodmaster-mini-cart-wrapper.sticky-cart {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1000;
	width: auto;
	border: 0;
	border-radius: 0;
	background: var(--fm-bar-bg);
	box-shadow: var(--fm-bar-shadow, none);
	transition: transform var(--fm-base) var(--fm-ease);
}

/* Out of the way while the inline cart is on screen */
.foodmaster-mini-cart-wrapper.sticky-cart.is-parked {
	transform: translateY(calc(100% + 24px));
}

/* Sticky on phones only: wider screens get the inline cart, phones the bar */
.foodmaster-mini-cart-wrapper.sticky-cart.sticky-cart--mobile {
	display: none;
}

@media screen and (max-width: 768px) {
	.foodmaster-mini-cart-wrapper.sticky-cart.sticky-cart--mobile {
		display: block;
	}

	.foodmaster-mini-cart-root .foodmaster-mini-cart-wrapper--desktop {
		display: none;
	}
}

.foodmaster-sticky-cart-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: calc(var(--fm-m) * 2);
	min-height: calc(var(--fm-m) * 8);
	padding: var(--fm-m) calc(var(--fm-m) * 2);
	padding-bottom: calc(var(--fm-m) + env(safe-area-inset-bottom, 0px));
	max-width: var(--fm-container);
	margin: 0 auto;
	background: transparent;
	color: var(--fm-bar-text);
}

/* Empty: the bar states the truth and offers nothing to press */
.foodmaster-sticky-cart-bar.is-empty .foodmaster-cart-button.checkout-sticky {
	opacity: 0.45;
	pointer-events: none;
}

.foodmaster-sticky-cart-bar .cart-info {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	min-width: 0;
	text-align: start;
}

/* The left block is the expand control; the chevron rides beside the total */
.foodmaster-sticky-cart-bar .foodmaster-sticky-toggle {
	display: inline-flex;
	align-items: center;
	gap: calc(var(--fm-m) * 1.5);
	min-height: calc(var(--fm-m) * 6);
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: var(--fm-radius);
	color: var(--fm-paper);
	font: inherit;
	letter-spacing: 0;
	text-transform: none;
	cursor: pointer;
}

.foodmaster-sticky-cart-bar .foodmaster-sticky-toggle:hover {
	background: transparent;
}

.foodmaster-sticky-cart-bar .foodmaster-sticky-toggle:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--fm-black), 0 0 0 4px var(--fm-paper);
}

.foodmaster-sticky-cart-bar .foodmaster-sticky-toggle .toggle-icon {
	display: inline-flex;
	color: var(--fm-n3);
	transform: rotate(180deg);
	transition: transform var(--fm-fast) var(--fm-ease);
}

.foodmaster-sticky-cart-bar .foodmaster-sticky-toggle[aria-expanded="true"] .toggle-icon {
	transform: rotate(0deg);
}

/* The total stamps in when the bar is (re)rendered */
.foodmaster-sticky-cart-bar .cart-total {
	animation: fm-stamp var(--fm-base) var(--fm-ease) both;
}

@keyframes fm-stamp {
	from { transform: translateY(8px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* Checkout carries the total */
.foodmaster-mini-cart-wrapper .foodmaster-cart-button.checkout-sticky,
.foodmaster-cart-button.checkout-sticky {
	display: inline-flex;
	align-items: center;
	gap: calc(var(--fm-m) * 2);
	min-height: calc(var(--fm-m) * 6);
	padding: 0 calc(var(--fm-m) * 2.5);
	background: var(--fm-ink);
	border: 0;
	color: var(--fm-on-ink);
	font-size: 17px;
}

.foodmaster-mini-cart-wrapper .foodmaster-cart-button.checkout-sticky:hover,
.foodmaster-cart-button.checkout-sticky:hover {
	background: var(--fm-ink-hover);
	color: var(--fm-on-ink);
}

.foodmaster-cart-button.checkout-sticky:focus-visible {
	outline: none;
	box-shadow: 0 0 0 2px var(--fm-black), 0 0 0 4px var(--fm-paper);
}

.foodmaster-cart-button.checkout-sticky .checkout-total,
.foodmaster-cart-button.checkout-sticky .checkout-total .woocommerce-Price-amount {
	font-variant-numeric: tabular-nums lining-nums;
	color: inherit;
}

.foodmaster-sticky-cart-bar.is-empty .cart-count,
.foodmaster-sticky-cart-bar.is-empty .cart-total {
	color: var(--fm-n3);
}

/* The expanded ticket rises; no jQuery slide */
.foodmaster-sticky-cart-content.is-open {
	animation: fm-rise-up var(--fm-base) var(--fm-ease) both;
}

@keyframes fm-rise-up {
	from { transform: translateY(12px); opacity: 0; }
	to { transform: none; opacity: 1; }
}

/* The theme styles a header badge with the same class name; pin this one down. */
.foodmaster-sticky-cart-bar .cart-count {
	position: static;
	display: inline;
	width: auto;
	height: auto;
	min-width: 0;
	padding: 0;
	margin: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	font-family: var(--fm-font-body);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--fm-bar-muted);
	transform: none;
}

.foodmaster-sticky-cart-bar .cart-total,
.foodmaster-sticky-cart-bar .cart-total .woocommerce-Price-amount {
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 22px;
	line-height: 1;
	color: var(--fm-bar-total);
	font-variant-numeric: tabular-nums lining-nums;
	transition: transform var(--fm-base) var(--fm-ease);
}

.foodmaster-mini-cart-wrapper.sticky-cart.updating .cart-total {
	transform: translateY(4px);
	opacity: 0.6;
}

/* Legacy ink toggle kept for third-party markup only */
.foodmaster-cart-button.continue-shopping-sticky {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	gap: var(--fm-m);
	min-height: calc(var(--fm-m) * 6);
	padding: 0 calc(var(--fm-m) * 2.5);
	background: var(--fm-ink);
	border: 0;
	border-radius: var(--fm-radius);
	color: var(--fm-on-ink);
	font-family: var(--fm-font-display);
	font-weight: var(--fm-display-weight);
	font-size: 17px;
	line-height: 1;
	letter-spacing: calc(0.03em * var(--fm-tracking));
	text-transform: var(--fm-caps);
	text-decoration: none;
	cursor: pointer;
	transition: background var(--fm-fast) var(--fm-ease);
}

.foodmaster-cart-button.continue-shopping-sticky:hover {
	background: var(--fm-ink-hover);
	color: var(--fm-on-ink);
}

.foodmaster-cart-button.continue-shopping-sticky:focus-visible {
	box-shadow: 0 0 0 2px var(--fm-black), 0 0 0 4px var(--fm-paper);
	outline: none;
}

.foodmaster-sticky-cart-content {
	max-height: min(70vh, 640px);
	overflow: auto;
	padding: 0 calc(var(--fm-m) * 2) calc(var(--fm-m) * 2);
	background: var(--fm-paper);
	color: var(--fm-black);
	border-top: var(--fm-rule-strong);
}

.foodmaster-sticky-cart-content .sticky-cart-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: calc(var(--fm-m) * 6);
	padding: var(--fm-m) 0;
	border-bottom: var(--fm-rule-strong);
}

.sticky-cart-close {
	appearance: none;
	-webkit-appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: calc(var(--fm-m) * 4);
	height: calc(var(--fm-m) * 4);
	padding: 0;
	background: transparent;
	border: 1.5px solid var(--fm-black);
	border-radius: var(--fm-radius);
	color: var(--fm-black);
	cursor: pointer;
}

.sticky-cart-close:hover {
	background: var(--fm-black);
	color: var(--fm-paper);
}

.sticky-cart-close:focus-visible {
	box-shadow: var(--fm-focus);
	outline: none;
}

.foodmaster-mini-cart-actions.sticky-actions {
	grid-template-columns: 1fr 1fr;
}

/* Wide screens: the sticky bar hugs the container */
@media (min-width: 1025px) {
	.foodmaster-sticky-cart-bar,
	.foodmaster-sticky-cart-content {
		max-width: var(--fm-container);
		margin: 0 auto;
	}
}

@media (prefers-reduced-motion: reduce) {
	.foodmaster-cart-toggle .toggle-icon,
	.foodmaster-sticky-toggle .toggle-icon,
	.foodmaster-sticky-cart-bar .cart-total,
	.foodmaster-cart-button,
	.foodmaster-mini-cart-item .quantity-btn,
	.foodmaster-mini-cart-item .remove-item {
		transition: none;
	}

	.foodmaster-mini-cart-loading .foodmaster-mini-cart-items::after {
		animation: none;
	}
}

@media print {
	.foodmaster-mini-cart-wrapper.sticky-cart,
	.foodmaster-mini-cart-actions,
	.foodmaster-mini-cart-item .item-remove,
	.foodmaster-mini-cart-item .item-quantity .quantity-btn {
		display: none;
	}
}

/* Totals note for tax-inclusive stores */
.foodmaster-mini-cart-wrapper .tax-note {
	margin-top: 2px;
	font-size: 13px;
	color: var(--fm-n6);
	text-align: end;
}

/* Comments field label (modal and single product) */
.foodmaster-comments-label {
	display: block;
	margin: 0 0 4px;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: calc(0.02em * var(--fm-tracking));
	color: var(--fm-n7);
}

/* Long item names hyphenate */
.foodmaster-mini-cart-item .item-name {
	hyphens: auto;
	overflow-wrap: anywhere;
}

/* ---------- Toast: one line, bottom centre, above the phone bar ---------- */
.foodmaster-notification {
	position: fixed;
	left: 50%;
	bottom: calc(var(--fm-m) * 3 + env(safe-area-inset-bottom, 0px));
	z-index: 100001;
	display: flex;
	align-items: center;
	gap: calc(var(--fm-m) * 2);
	max-width: min(92vw, 480px);
	padding: calc(var(--fm-m) * 1.5) calc(var(--fm-m) * 1.5) calc(var(--fm-m) * 1.5) calc(var(--fm-m) * 2);
	background: var(--fm-black);
	color: var(--fm-paper);
	border-radius: var(--fm-radius);
	/* a light hairline so the toast reads on the dark footer and the dark style alike */
	box-shadow: 0 0 0 1.5px color-mix(in srgb, var(--fm-paper) 45%, transparent), 0 8px 24px rgba(0, 0, 0, 0.25);
	font-family: var(--fm-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	opacity: 0;
	transform: translate(-50%, 12px);
	transition: opacity var(--fm-fast) var(--fm-ease), transform var(--fm-base) var(--fm-ease);
}

.foodmaster-notification.show {
	opacity: 1;
	transform: translate(-50%, 0);
}

.foodmaster-notification.is-error {
	background: var(--fm-error);
	color: var(--fm-on-ink);
}

.foodmaster-notification__text {
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.foodmaster-notification__close {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: inherit;
	cursor: pointer;
	flex: 0 0 auto;
}

.foodmaster-notification__close:hover {
	background: rgba(255, 255, 255, 0.14);
}

.foodmaster-notification__close:focus-visible {
	outline: none;
	box-shadow: var(--fm-focus);
}

@media (max-width: 768px) {
	body:has(.foodmaster-mini-cart-wrapper.sticky-cart:not(.is-parked)) .foodmaster-notification {
		bottom: calc(var(--fm-m) * 11 + env(safe-area-inset-bottom, 0px));
	}
}

@media (prefers-reduced-motion: reduce) {
	.foodmaster-notification {
		transition: opacity var(--fm-fast) var(--fm-ease);
		transform: translate(-50%, 0);
	}
}
