/* DOSA Menu — stile ispirato al menu stampato */

.dosa-menu {

	--dm-testo: #1f1f1f;
	--dm-tenue: #6b6b6b;
	--dm-linea: rgba(0, 0, 0, .08);
	max-width: 860px;
	margin: 0 auto;
	color: var(--dm-testo);
	line-height: 1.35;
	box-sizing: border-box;
}
.dosa-menu *,
.dosa-menu *::before,
.dosa-menu *::after { box-sizing: inherit; }

.dosa-menu.dm-font,
.dosa-menu.dm-font button { font-family: "Oswald DOSA", "Oswald", "Arial Narrow", sans-serif; }

/* ---- Lingue ---- */
.dosa-menu.dm-lang-it .dm-en,
.dosa-menu.dm-lang-both .dm-en { display: none; }
.dosa-menu.dm-lang-en .dm-it { display: none; }
.dosa-menu .dm-traduzione { display: none; }
.dosa-menu.dm-lang-both .dm-traduzione { display: block; }
/* In modalità bilingue le note mostrano entrambe le lingue */
.dosa-menu.dm-lang-both .dm-nota .dm-en,
.dosa-menu.dm-lang-both .dm-nota-piede .dm-en { display: block; margin-top: .25em; }
.dosa-menu.dm-lang-both .dm-nota .dm-it,
.dosa-menu.dm-lang-both .dm-nota-piede .dm-it { display: block; }

/* ---- Selettore lingua ---- */
.dosa-menu .dm-selettore {
	display: flex;
	justify-content: center;
	gap: 0;
	margin: 0 auto 1.75rem;
	width: max-content;
	border: 1px solid var(--dm-accento);
	border-radius: 999px;
	overflow: hidden;
}
.dosa-menu .dm-selettore button {
	appearance: none;
	border: 0;
	margin: 0;
	background: transparent;
	color: var(--dm-accento);
	padding: .5em 1.4em;
	font-size: .95rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	cursor: pointer;
	line-height: 1.2;
	box-shadow: none;
	border-radius: 0;
}
.dosa-menu .dm-selettore button[aria-pressed="true"] {
	background: var(--dm-accento);
	color: #fff;
}
.dosa-menu .dm-selettore button:focus-visible {
	outline: 2px solid var(--dm-testo);
	outline-offset: -4px;
}

/* ---- Titolo generale e navigazione ---- */
.dosa-menu .dm-titolo-menu {
	text-align: center;
	color: var(--dm-accento);
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0 0 1.25rem;
}
.dosa-menu .dm-nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: .5rem;
	margin: 0 0 2.25rem;
}
.dosa-menu .dm-nav a {
	color: var(--dm-testo);
	text-decoration: none;
	text-transform: uppercase;
	letter-spacing: .05em;
	font-size: .9rem;
	padding: .35em .9em;
	border: 1px solid var(--dm-linea);
	border-radius: 999px;
	transition: border-color .15s, color .15s;
}
.dosa-menu .dm-nav a:hover,
.dosa-menu .dm-nav a:focus-visible { color: var(--dm-accento); border-color: var(--dm-accento); }

/* ---- Sezioni ---- */
.dosa-menu .dm-sezione { margin: 0 0 2.75rem; scroll-margin-top: 100px; }
.dosa-menu .dm-testata { margin: 0 0 .9rem; }
.dosa-menu h2.dm-titolo,
.dosa-menu h3.dm-titolo {
	color: var(--dm-accento);
	text-transform: uppercase;
	font-weight: 700;
	line-height: 1.1;
	margin: 0;
	padding: 0;
	border: 0;
}
.dosa-menu h2.dm-titolo { font-size: clamp(1.9rem, 4.5vw, 2.4rem); letter-spacing: .01em; }
.dosa-menu h3.dm-titolo { font-size: clamp(1.15rem, 2.6vw, 1.3rem); letter-spacing: .01em; }
.dosa-menu .dm-sottotitolo {
	font-size: .45em;
	font-weight: 400;
	letter-spacing: .04em;
	margin-left: .6em;
	vertical-align: middle;
	color: var(--dm-accento);
}
.dosa-menu h3 .dm-sottotitolo { font-size: .7em; }
.dosa-menu .dm-sottosezione { margin-top: 1.5rem; }
.dosa-menu .dm-nota {
	margin: .5rem 0 0;
	font-size: .95rem;
	font-weight: 400;
}

/* ---- Piatti ---- */
.dosa-menu .dm-piatti { list-style: none; margin: 0; padding: 0; }
.dosa-menu .dm-piatto {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1.25rem;
	margin: 0;
	padding: .7rem 0;
	border-bottom: 1px solid var(--dm-linea);
}
.dosa-menu .dm-piatto:last-child { border-bottom: 0; }
.dosa-menu .dm-piatto-testo { flex: 1 1 auto; min-width: 0; }
.dosa-menu .dm-piatto p { margin: 0; padding: 0; }
.dosa-menu .dm-nome {
	font-size: 1.08rem;
	font-weight: 400;
	color: var(--dm-testo);
}
.dosa-menu .dm-traduzione,
.dosa-menu .dm-desc {
	font-size: .86rem;
	font-weight: 300;
	color: var(--dm-tenue);
	margin-top: .15rem !important;
}
.dosa-menu .dm-all {
	color: var(--dm-accento);
	font-style: italic;
	font-weight: 300;
	font-size: .92em;
	white-space: nowrap;
}
.dosa-menu .dm-all abbr {
	text-decoration: none;
	border: 0;
	cursor: help;
}
.dosa-menu .dm-prezzo {
	flex: 0 0 auto;
	font-weight: 700;
	font-size: 1.08rem;
	white-space: nowrap;
	color: var(--dm-testo);
}

/* ---- Piè di pagina ---- */
.dosa-menu .dm-piede {
	border-top: 1px solid var(--dm-linea);
	padding-top: 1.5rem;
	font-size: .88rem;
	color: var(--dm-tenue);
}
.dosa-menu .dm-legenda-titolo {
	color: var(--dm-accento);
	text-transform: uppercase;
	font-size: 1rem;
	margin: 0 0 .6rem;
}
.dosa-menu .dm-legenda-titolo small { color: var(--dm-tenue); font-weight: 300; text-transform: none; margin-left: .4em; }
.dosa-menu .dm-legenda {
	list-style: none;
	margin: 0 0 1rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
	gap: .25rem 1rem;
}
.dosa-menu .dm-legenda li { margin: 0; padding: 0; }
.dosa-menu .dm-legenda strong { color: var(--dm-accento); font-weight: 600; margin-right: .25em; }
.dosa-menu .dm-nota-piede { margin: 0; }

@media (max-width: 560px) {
	.dosa-menu .dm-piatto { gap: .75rem; }
	.dosa-menu .dm-nome { font-size: 1rem; }
	.dosa-menu .dm-sottotitolo { display: block; margin: .35em 0 0; font-size: .5em; }
	.dosa-menu h3 .dm-sottotitolo { font-size: .75em; }
}

@media print {
	.dosa-menu .dm-selettore,
	.dosa-menu .dm-nav { display: none; }
	.dosa-menu .dm-piatto { break-inside: avoid; }
}

/* ---- Pagina autonoma (index.php) ---- */
:root { --dm-accento: #c97235; --dm-sfondo: #fbf9f6; }
html { scroll-behavior: smooth; }
body.dm-pagina {
	margin: 0;
	background: var(--dm-sfondo);
	color: #1f1f1f;
	font-family: "Oswald DOSA", "Arial Narrow", sans-serif;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
body.dm-pagina.dm-embed { background: transparent; }
.dm-contenitore { padding: 40px 20px 56px; }
.dm-embed .dm-contenitore { padding: 8px 4px 16px; }
.dm-logo { text-align: center; margin: 0 0 28px; }
.dm-logo img { width: 130px; height: auto; }
.dosa-menu .dm-vuoto { text-align: center; color: var(--dm-tenue); }
@media (max-width: 560px) {
	.dm-contenitore { padding: 28px 16px 40px; }
	.dm-logo img { width: 104px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
