.pagina-menu { padding-bottom: 76px; background: var(--carta); }
.header--menu .header__inner { min-width: 0; justify-content: space-between; }
.ritorno, .header__prenota { min-height: 44px; display: inline-flex; align-items: center; font-size: .8rem; font-weight: 750; }
.header__prenota { display: none; color: var(--inchiostro); }

.menu-apertura { width: min(100%, var(--max)); margin: 0 auto; padding: 48px var(--gutter) 42px; }
.menu-apertura__titolo h1 { max-width: 8ch; margin-bottom: 20px; }
.menu-apertura__titolo > p:last-child { max-width: 46ch; color: var(--greige-scuro); }
.menu-apertura__brand { min-width: 0; margin-top: 36px; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; background: var(--blu-profondo); color: var(--carta); }
.menu-apertura__brand img { width: 100%; height: min(64vw, 330px); min-height: 0; object-fit: cover; }
.menu-apertura__brand > div { padding: 24px 20px; align-self: center; }
.menu-apertura__brand h2 { margin-bottom: 8px; font-size: clamp(1.8rem, 7vw, 3.2rem); }
.menu-apertura__brand p { margin-bottom: 10px; color: color-mix(in oklch, var(--carta) 78%, transparent); font-size: .8rem; line-height: 1.45; }
.menu-apertura__link { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.menu-apertura__link a { min-height: 44px; display: inline-flex; align-items: center; color: var(--carta); font-size: .78rem; font-weight: 750; }

.menu-ritmo { width: min(100%, var(--max)); margin: 0 auto; padding: 0 var(--gutter) 72px; display: grid; grid-template-columns: 1.15fr .85fr; gap: 6px; }
.menu-ritmo a { min-width: 0; color: inherit; font-family: var(--font-titoli); font-size: 1.3rem; line-height: 1.1; text-decoration: none; }
.menu-ritmo a:last-child { grid-column: 1 / -1; }
.menu-ritmo figure { height: 50vw; margin: 0 0 10px; overflow: hidden; background: var(--crema); }
.menu-ritmo a:last-child figure { height: 64vw; }
.menu-ritmo img { width: 100%; height: 100%; object-fit: cover; }

.menu-pagina { width: min(100%, 1180px); margin: 0 auto; padding: 0 var(--gutter) 100px; }
.menu-categorie { position: sticky; z-index: 20; top: var(--header-h); margin-inline: calc(var(--gutter) * -1); padding: 10px var(--gutter); display: flex; gap: 8px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; background: color-mix(in oklch, var(--carta) 96%, transparent); border-top: 1px solid color-mix(in oklch, var(--greige) 35%, transparent); border-bottom: 1px solid color-mix(in oklch, var(--greige) 48%, transparent); }
.chip { min-height: 44px; padding: 9px 13px; flex: 0 0 auto; display: inline-flex; align-items: center; border: 1px solid color-mix(in oklch, var(--greige) 70%, transparent); border-radius: 999px; color: var(--greige-scuro); font-size: .78rem; font-weight: 750; text-decoration: none; transition: transform 160ms var(--uscita), background-color 180ms var(--uscita), color 180ms var(--uscita), border-color 180ms var(--uscita); }
.chip.is-active { border-color: var(--inchiostro); background: var(--inchiostro); color: var(--carta); }
.menu-stato { margin: 18px 0; padding: 13px 16px; border-top: 2px solid var(--ottone); background: var(--crema); font-size: .84rem; }
.menu-contenuto[aria-busy="true"] { opacity: .74; }

.menu-categoria { padding: 72px 0 34px; scroll-margin-top: calc(var(--header-h) + 74px); border-top: 1px solid color-mix(in oklch, var(--greige) 50%, transparent); }
.menu-categoria:first-child { border-top: 0; }
.menu-categoria__titolo { max-width: 11ch; margin-bottom: 32px; font-size: clamp(2.4rem, 9vw, 4.6rem); overflow-wrap: normal; hyphens: none; }
.menu-lista { margin: 0; padding: 0; display: grid; gap: 25px; list-style: none; }
.piatto { min-width: 0; }
.piatto__corpo { min-width: 0; }
.piatto__riga { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 14px; }
.piatto__nome { margin: 0; font-size: 1rem; font-weight: 720; }
.piatto__dots { display: none; }
.piatto__prezzo { white-space: nowrap; color: var(--oliva); font-size: .92rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.piatto__desc, .piatto__allergeni { max-width: 52ch; margin: 6px 0 0; color: var(--greige-scuro); font-size: .85rem; line-height: 1.5; }
.piatto__tags { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.piatto__tag { padding: 3px 7px; border: 1px solid color-mix(in oklch, var(--oliva) 48%, transparent); border-radius: 2px; color: var(--oliva); font-size: .66rem; font-weight: 800; letter-spacing: .03em; }
.piatto__allergeni span { color: var(--inchiostro); font-weight: 750; }
.piatto__foto { width: 76px; height: 76px; float: left; margin: 0 14px 8px 0; object-fit: cover; }
.piatto--esaurito { opacity: .58; }
.piatto__badge { display: inline-block; margin-top: 8px; font-size: .72rem; font-weight: 750; }
.menu-nota, .menu-sottotitolo { padding: 22px 20px; background: var(--crema); border-top: 3px solid var(--ottone); }
.menu-nota h3, .menu-sottotitolo h3 { margin-bottom: 6px; font-family: var(--font-titoli); font-size: 1.45rem; font-weight: 500; }
.menu-nota p, .menu-sottotitolo p { margin-bottom: 0; color: var(--greige-scuro); font-size: .88rem; }
.menu-sottotitolo { margin-top: 18px; display: flex; align-items: baseline; justify-content: space-between; gap: 20px; }
.menu-sottotitolo h3 { margin: 0; font-size: 2rem; }
.menu-sottotitolo p { color: var(--oliva); font-weight: 800; }

.menu-diete { width: min(100%, 1000px); margin: 0 auto; padding: 72px var(--gutter); display: grid; gap: 14px; border-top: 1px solid var(--greige); }
.menu-diete h2 { font-size: clamp(2rem, 8vw, 3.4rem); }
.menu-diete > p { color: var(--greige-scuro); }
.galleria--menu { width: min(100%, var(--max)); margin: 0 auto; padding: 72px var(--gutter); background: var(--crema); }
.galleria--menu .galleria__testata { margin-bottom: 32px; }
.galleria--menu .galleria__griglia { display: grid; grid-template-columns: 1fr 1fr; grid-auto-flow: dense; gap: 6px; }
.galleria--menu .galleria__item { margin: 0; min-height: 200px; overflow: hidden; }
.galleria--menu .galleria__item img { width: 100%; height: 100%; object-fit: cover; }
.galleria--menu .galleria__item--1, .galleria--menu .galleria__item--4 { grid-column: 1 / -1; aspect-ratio: 16 / 11; }
.galleria--menu .galleria__item--2, .galleria--menu .galleria__item--3, .galleria--menu .galleria__item--5, .galleria--menu .galleria__item--6 { aspect-ratio: 3 / 4; }
.pagina-menu .cta-finale { background: var(--carta); color: var(--inchiostro); border-top: 1px solid var(--greige); }
.pagina-menu .cta-finale__testo p:last-child { color: var(--greige-scuro); }
.pagina-menu .btn--chiaro { background: var(--inchiostro); color: var(--carta); }
.pagina-menu .btn--linea-chiara { border-color: var(--inchiostro); color: var(--inchiostro); }
.pagina-menu .footer { background: var(--crema); color: var(--inchiostro); }
.pagina-menu .footer__note { color: var(--greige-scuro); }
.torna-su { position: fixed; z-index: 45; right: 16px; bottom: calc(82px + env(safe-area-inset-bottom)); width: 48px; height: 48px; border: 1px solid var(--greige); border-radius: 50%; opacity: 0; transform: translateY(8px); pointer-events: none; background: var(--carta); color: var(--inchiostro); transition: opacity 180ms var(--uscita), transform 180ms var(--uscita); }
.torna-su.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }

@media (min-width: 760px) {
  .menu-apertura__brand { min-height: 420px; grid-template-columns: 42% minmax(0, 1fr); }
  .menu-apertura__brand img { height: 100%; min-height: 420px; }
  .menu-apertura__brand > div { padding: 40px; }
  .menu-ritmo { grid-template-columns: .8fr .9fr 1.3fr; padding-bottom: 110px; }
  .menu-ritmo a:last-child { grid-column: auto; }
  .menu-ritmo figure, .menu-ritmo a:last-child figure { height: min(38vw, 520px); }
  .menu-ritmo a:nth-child(2) figure { height: min(30vw, 410px); margin-top: 52px; }
  .menu-categoria { display: grid; grid-template-columns: minmax(230px, .52fr) minmax(0, 1.48fr); gap: clamp(38px, 6vw, 82px); padding-top: 96px; padding-bottom: 54px; }
  .menu-categoria__titolo { position: sticky; top: calc(var(--header-h) + 82px); align-self: start; max-width: none; margin: 0; font-size: clamp(2.4rem, 3.8vw, 4rem); }
  .menu-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px clamp(28px, 4vw, 52px); align-content: start; }
  .menu-nota, .menu-sottotitolo { grid-column: 1 / -1; }
  .menu-categoria--cocktail .menu-lista { row-gap: 38px; }
  .galleria--menu .galleria__griglia { grid-template-columns: repeat(12, 1fr); grid-template-rows: repeat(3, minmax(190px, 25vw)); }
  .galleria--menu .galleria__item { min-height: 0; aspect-ratio: auto; }
  .galleria--menu .galleria__item--1 { grid-column: 1 / 6; grid-row: 1 / 3; }
  .galleria--menu .galleria__item--2 { grid-column: 6 / 10; grid-row: 1; }
  .galleria--menu .galleria__item--3 { grid-column: 10 / 13; grid-row: 1 / 3; }
  .galleria--menu .galleria__item--4 { grid-column: 6 / 10; grid-row: 2 / 4; }
  .galleria--menu .galleria__item--5 { grid-column: 1 / 6; grid-row: 3; }
  .galleria--menu .galleria__item--6 { grid-column: 10 / 13; grid-row: 3; }
}

@media (hover: hover) and (pointer: fine) {
  .chip:hover { border-color: var(--inchiostro); color: var(--inchiostro); }
  .menu-ritmo img { transition: transform 600ms var(--uscita); }
  .menu-ritmo a:hover img { transform: scale(1.025); }
}

@media print {
  @page { size: A4; margin: 14mm; }
  body { background: white; color: black; font-size: 10pt; }
  .header, .menu-apertura__brand, .menu-ritmo, .menu-categorie, .menu-stato, .menu-diete, .galleria, .eventi, .cta-finale, .footer, .azioni-mobile, .torna-su, .avviso-locale { display: none !important; }
  .menu-apertura { padding: 0 0 8mm; }
  .menu-apertura h1 { font-size: 34pt; }
  .menu-pagina { width: 100%; max-width: none; padding: 0; }
  .menu-categoria { display: block; padding-top: 8mm; border-top: 1px solid black; break-inside: avoid; }
  .menu-categoria__titolo { position: static; font-size: 22pt; }
  .menu-lista { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm 8mm; }
  .piatto { break-inside: avoid; }
  .piatto__nome, .piatto__prezzo { font-size: 9.5pt; }
  .piatto__desc, .piatto__allergeni { font-size: 8pt; }
  .menu-nota { border: 1px solid black; background: transparent; break-inside: avoid; }
}
