/* Menù Ristorante – front-end.
 * Personalizzabile dal tema sovrascrivendo le variabili, es.:
 * .mr-menu { --mr-accent: #7a1f1f; --mr-img-size: 88px; }
 */

.mr-menu {
	--mr-accent: currentColor;
	--mr-border: rgba(127, 127, 127, 0.25);
	--mr-muted: rgba(127, 127, 127, 0.9);
	--mr-surface: rgba(127, 127, 127, 0.08);
	--mr-img-size: 76px;
	--mr-radius: 8px;
	--mr-gap: 1rem;

	margin: 0 0 2rem;
}

.mr-menu *,
.mr-menu *::before,
.mr-menu *::after {
	box-sizing: border-box;
}

/* Intestazione del menù */
.mr-menu__header {
	text-align: center;
	margin-bottom: 1.5rem;
}

.mr-menu__title {
	margin: 0 0 0.25em;
}

.mr-menu__price {
	margin: 0;
	font-size: 1.25em;
	font-weight: 600;
	color: var(--mr-accent);
}

.mr-menu__note {
	margin: 0.25em 0 0;
	font-style: italic;
	color: var(--mr-muted);
}

/* Accordion (details/summary nativi: accessibili da tastiera, nessun JS) */
.mr-accordion {
	border-top: 1px solid var(--mr-border);
}

.mr-section {
	border-bottom: 1px solid var(--mr-border);
}

.mr-section__title {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 0.25rem;
	cursor: pointer;
	list-style: none;
	font-size: 1.15em;
	font-weight: 600;
	letter-spacing: 0.02em;
}

.mr-section__title::-webkit-details-marker {
	display: none;
}

.mr-section__title::marker {
	content: "";
}

.mr-section__title:focus-visible {
	outline: 2px solid var(--mr-accent);
	outline-offset: 2px;
}

.mr-section__icon {
	flex: 0 0 auto;
	width: 0.6em;
	height: 0.6em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: translateY(-25%) rotate(45deg);
	transition: transform 0.2s ease;
	opacity: 0.7;
}

.mr-section[open] > .mr-section__title .mr-section__icon {
	transform: translateY(25%) rotate(-135deg);
}

.mr-section__content {
	padding: 0 0.25rem 1rem;
}

.mr-section__empty {
	margin: 0;
	color: var(--mr-muted);
	font-style: italic;
}

/* Griglia pietanze: immagine | titolo + descrizione | prezzo */
.mr-items {
	list-style: none;
	margin: 0;
	padding: 0;
}

.mr-item {
	display: grid;
	grid-template-columns: var(--mr-img-size) minmax(0, 1fr) auto;
	align-items: center;
	gap: var(--mr-gap);
	padding: 0.85rem 0;
	margin: 0;
	border-bottom: 1px dashed var(--mr-border);
}

.mr-item:last-child {
	border-bottom: 0;
}

.mr-menu--no-images .mr-item {
	grid-template-columns: minmax(0, 1fr) auto;
}

.mr-item__media {
	width: var(--mr-img-size);
	height: var(--mr-img-size);
	border-radius: var(--mr-radius);
	overflow: hidden;
}

.mr-item__img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.mr-item__fallback {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	background: var(--mr-surface);
	color: var(--mr-muted);
}

.mr-fallback-icon {
	width: 62%;
	height: 62%;
}

.mr-item__title {
	margin: 0;
	font-weight: 600;
	line-height: 1.3;
}

.mr-item__desc {
	margin: 0.25em 0 0;
	font-size: 0.92em;
	line-height: 1.45;
	color: var(--mr-muted);
}

.mr-item__price {
	font-weight: 600;
	white-space: nowrap;
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--mr-accent);
}

/* Smartphone */
@media (max-width: 480px) {
	.mr-menu {
		--mr-img-size: 56px;
		--mr-gap: 0.75rem;
	}

	.mr-item {
		align-items: start;
	}

	.mr-item__desc {
		font-size: 0.88em;
	}
}

@media (prefers-reduced-motion: reduce) {
	.mr-section__icon {
		transition: none;
	}
}

/* Stampa: tutto aperto */
@media print {
	.mr-section:not([open]) > .mr-section__content {
		display: block;
	}

	.mr-section__icon {
		display: none;
	}
}
