.rmbfe-menu {
	--rmbfe-row-gap: 12px;
	--rmbfe-leader-gap: 8px;
	--rmbfe-dot-color: #999;
	--rmbfe-dot-size: 2px;
	--rmbfe-dot-spacing: 6px;
	--rmbfe-multi-indent: 24px;

	width: 100%;
	max-width: 100%;
	overflow-wrap: anywhere;
}

.rmbfe-section-heading {
	margin: 0 0 16px;
}

.rmbfe-menu-item {
	max-width: 100%;
	margin-block-end: var(--rmbfe-row-gap);
}

.rmbfe-line {
	display: grid;
	grid-template-columns: minmax(0, auto) minmax(18px, 1fr) max-content;
	align-items: baseline;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

.rmbfe-line-no-price {
	grid-template-columns: minmax(0, 1fr);
}

.rmbfe-line-no-price .rmbfe-leader,
.rmbfe-line-no-price .rmbfe-price {
	display: none;
}

.rmbfe-name,
.rmbfe-option-name {
	min-width: 0;
	max-width: 100%;
}

.rmbfe-price,
.rmbfe-option-price {
	white-space: nowrap;
	text-align: end;
}

.rmbfe-leader {
	height: var(--rmbfe-dot-size);
	min-width: 18px;
	margin-inline: var(--rmbfe-leader-gap);
	transform: translateY(-0.15em);
	background-image: radial-gradient(
		circle,
		var(--rmbfe-dot-color) 0 calc(var(--rmbfe-dot-size) / 2),
		transparent calc((var(--rmbfe-dot-size) / 2) + 0.5px)
	);
	background-repeat: repeat-x;
	background-position: left center;
	background-size: var(--rmbfe-dot-spacing) var(--rmbfe-dot-spacing);
}

.rmbfe-no-dots .rmbfe-leader,
.rmbfe-leader-hidden {
	background-image: none;
}

.rmbfe-description {
	margin-block-start: 4px;
}

.rmbfe-main-name {
	margin-block-end: 4px;
	font-weight: 700;
	color: inherit;
}

.rmbfe-price-options {
	margin-block-start: 4px;
	margin-inline-start: var(--rmbfe-multi-indent);
}

.rmbfe-option-name,
.rmbfe-option-price {
	color: inherit;
}

.rmbfe-note {
	margin-block-end: var(--rmbfe-row-gap);
}

.rmbfe-divider {
	width: 100%;
	height: 1px;
	margin-block: calc(var(--rmbfe-row-gap) * 1.25);
	background: #ccc;
}

.rmbfe-spacer {
	width: 100%;
}

.rmbfe-empty-state {
	padding: 16px;
	border: 1px dashed #b7b7b7;
	color: #50575e;
	text-align: center;
}

@media (max-width: 767px) {
	.rmbfe-mobile-stack .rmbfe-line {
		display: block;
	}

	.rmbfe-mobile-stack .rmbfe-leader {
		display: none;
	}

	.rmbfe-mobile-stack .rmbfe-price,
	.rmbfe-mobile-stack .rmbfe-option-price {
		display: block;
		margin-block-start: 3px;
		white-space: normal;
		text-align: start;
	}

	.rmbfe-mobile-hide_dots .rmbfe-leader {
		background-image: none;
	}
}
