:root {
  --c-primario: #6e1f2a;
  --c-primario-profondo: #47131b;
  --c-secondario: #b08d4f;
  --c-sfondo: #f7f1e6;
  --c-carta: #fffaf1;
  --c-testo: #2a2320;
  --c-testo-muto: #665b54;
  --c-linea: #d9cdbd;
  --font-titoli: "Cormorant Garamond", Georgia, serif;
  --font-testo: "Montserrat", system-ui, sans-serif;
  --header-h: 72px;
  --gutter: clamp(1.25rem, 4vw, 5rem);
  --spazio-sezione: clamp(4.5rem, 10vw, 10rem);
  --ease-out: cubic-bezier(.23, 1, .32, 1);
  --z-header: 100;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--c-sfondo); }
body { margin: 0; min-width: 320px; overflow-x: hidden; background: var(--c-sfondo); color: var(--c-testo); font-family: var(--font-testo); font-size: 1rem; line-height: 1.7; }
body.nav-open { overflow: hidden; }
img { display: block; width: 100%; height: auto; }
a { color: inherit; text-underline-offset: .2em; }
button, a { touch-action: manipulation; }
button { font: inherit; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure, blockquote { margin-top: 0; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }

:focus-visible { outline: 3px solid var(--c-secondario); outline-offset: 4px; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 1000; padding: .8rem 1rem; background: var(--c-carta); color: var(--c-primario-profondo); font-weight: 700; transform: translateY(-160%); transition: transform 180ms var(--ease-out); }
.skip-link:focus { transform: translateY(0); }

.demo-banner { min-height: 32px; padding: .35rem var(--gutter); background: var(--c-secondario); color: #281d10; font-size: .68rem; font-weight: 700; letter-spacing: .08em; line-height: 1.45; text-align: center; text-transform: uppercase; }
.avviso-locale { padding: .75rem var(--gutter); background: var(--c-carta); color: var(--c-primario-profondo); border-bottom: 1px solid var(--c-linea); font-size: .82rem; font-weight: 700; text-align: center; }

.header { position: sticky; top: 0; z-index: var(--z-header); min-height: var(--header-h); background: var(--c-primario); color: var(--c-sfondo); border-bottom: 1px solid rgb(247 241 230 / 18%); }
.header__inner { min-height: var(--header-h); display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0 var(--gutter); }
.header__brand { position: relative; z-index: 2; max-width: 14rem; font-family: var(--font-titoli); font-size: clamp(1.15rem, 2vw, 1.5rem); font-weight: 600; line-height: 1; text-decoration: none; }
.nav__toggle { position: relative; z-index: 2; width: 48px; height: 48px; display: grid; place-content: center; gap: 6px; padding: 0; background: transparent; color: inherit; border: 0; cursor: pointer; }
.nav__toggle span { display: block; width: 25px; height: 1px; background: currentColor; transition: transform 180ms var(--ease-out); }
.nav__toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
.nav { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: .25rem; padding: calc(var(--header-h) + 3rem) var(--gutter) 3rem; background: var(--c-primario-profondo); opacity: 0; visibility: hidden; transform: translateY(-1rem); transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out), visibility 180ms; }
.nav.is-open { opacity: 1; visibility: visible; transform: translateY(0); }
.nav a { min-height: 48px; display: flex; align-items: center; justify-content: space-between; padding: .35rem 0; border-bottom: 1px solid rgb(247 241 230 / 18%); font-family: var(--font-titoli); font-size: clamp(1.8rem, 9vw, 3.5rem); text-decoration: none; }
.nav__prenota::after { content: "↗"; font-family: var(--font-testo); font-size: .9rem; }
.selettore-lingua { display: flex; flex-wrap: wrap; align-items: center; gap: .15rem; }
.selettore-lingua button { min-width: 44px; min-height: 44px; padding: 0 .45rem; background: transparent; color: inherit; border: 1px solid transparent; cursor: pointer; font-size: .65rem; font-weight: 700; }
.selettore-lingua button.is-attiva { border-color: currentColor; }

.hero { position: relative; min-height: max(540px, 80svh); display: grid; align-items: end; isolation: isolate; overflow: hidden; background: var(--c-primario-profondo); color: var(--c-sfondo); scroll-margin-top: var(--header-h); }
.hero__media, .hero__velo { position: absolute; inset: 0; }
.hero__media { z-index: -2; }
.hero__media img { height: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: 53% center; }
.hero__velo { z-index: -1; background: linear-gradient(180deg, rgb(29 8 12 / 14%) 0%, rgb(29 8 12 / 34%) 48%, rgb(29 8 12 / 88%) 100%); }
.hero__contenuto { width: min(100%, 92rem); padding: clamp(6rem, 17vh, 11rem) var(--gutter) clamp(5rem, 10vh, 8rem); }
.hero__occhiello, .kicker { margin-bottom: 1.2rem; font-size: .68rem; font-weight: 700; letter-spacing: .14em; line-height: 1.5; text-transform: uppercase; }
.hero__titolo { max-width: 14ch; margin-bottom: 1.25rem; font-family: var(--font-titoli); font-size: clamp(2.85rem, 11vw, 8rem); font-weight: 500; letter-spacing: -.03em; line-height: .95; }
.hero__sottotitolo { max-width: 34rem; margin-bottom: 2rem; font-family: var(--font-titoli); font-size: clamp(1.35rem, 2.6vw, 2.1rem); line-height: 1.2; }
.hero__azioni { display: flex; flex-wrap: wrap; gap: .75rem; }
.hero__nota { position: absolute; right: var(--gutter); bottom: 1.25rem; margin: 0; display: none; font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; writing-mode: vertical-rl; }

.btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: .85rem 1.2rem; border: 1px solid transparent; font-size: .72rem; font-weight: 700; letter-spacing: .07em; line-height: 1.2; text-align: center; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease, transform 140ms var(--ease-out); }
.btn:active, .link-editoriale:active { transform: scale(.97); }
.btn--crema { background: var(--c-sfondo); color: var(--c-primario-profondo); }
.btn--linea-chiara { border-color: rgb(247 241 230 / 68%); color: var(--c-sfondo); }
.btn--oro { background: var(--c-secondario); color: #281d10; }
.btn--secondario { border-color: var(--c-primario); color: var(--c-primario); background: transparent; }

.sezione { position: relative; padding: var(--spazio-sezione) var(--gutter); scroll-margin-top: calc(var(--header-h) + 1rem); }
.titolo-sezione { max-width: 18ch; margin-bottom: clamp(1.5rem, 4vw, 3rem); font-family: var(--font-titoli); font-size: clamp(2.05rem, 6.2vw, 5.25rem); font-weight: 500; letter-spacing: -.02em; line-height: 1.02; }
.testo-lead { max-width: 36rem; font-family: var(--font-titoli); font-size: clamp(1.3rem, 2.5vw, 1.95rem); line-height: 1.3; }
.media-frame { position: relative; overflow: hidden; background: #dfd2c3; }
.media-frame img { height: 100%; object-fit: cover; transition: transform 800ms var(--ease-out); }
.media-frame > .segnaposto { position: absolute; inset: 0; }

/* Segnaposto foto: al posto delle immagini finche' non arrivano gli scatti veri
   (le genera Samuele, poi Codex le inserisce). Etichetta, soggetto suggerito e formato. */
.segnaposto { position: relative; display: grid; place-content: center; align-content: center; gap: .55rem; width: 100%; height: 100%; min-height: 100%; padding: clamp(1rem, 4vw, 2.5rem); background:
    repeating-linear-gradient(135deg, transparent 0 22px, rgb(176 141 79 / 6%) 22px 23px), linear-gradient(160deg, #efe4d3, #e5d7c2);
  color: var(--c-primario); text-align: center; }
.segnaposto::before { content: ""; position: absolute; inset: clamp(.5rem, 2vw, .9rem); border: 1px solid rgb(176 141 79 / 55%); pointer-events: none; }
.segnaposto__eti { display: inline-flex; align-items: center; gap: .5rem; font-size: .6rem; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--c-secondario); }
.segnaposto__eti::before { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
.segnaposto__eti::after { content: ""; width: 1.6rem; height: 1px; background: currentColor; }
.segnaposto__sog { max-width: 24ch; margin-inline: auto; font-family: var(--font-titoli); font-size: clamp(1.05rem, 2.3vw, 1.55rem); font-weight: 500; line-height: 1.15; }
.segnaposto__ratio { font-size: .58rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-testo-muto); }
.segnaposto--scuro { background:
    repeating-linear-gradient(135deg, transparent 0 22px, rgb(176 141 79 / 9%) 22px 23px), linear-gradient(160deg, #3a1119, #230811);
  color: var(--c-sfondo); }
.segnaposto--scuro .segnaposto::before, .segnaposto--scuro::before { border-color: rgb(176 141 79 / 60%); }
.segnaposto--scuro .segnaposto__sog { color: var(--c-sfondo); }
.segnaposto--scuro .segnaposto__ratio { color: rgb(247 241 230 / 62%); }
.link-editoriale { min-height: 48px; display: inline-flex; align-items: center; gap: 1rem; padding: .35rem 0; border-bottom: 1px solid currentColor; color: var(--c-primario); font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; transition: color 180ms ease, transform 140ms var(--ease-out); }

.storia { display: grid; gap: 2.75rem; }
.storia__indice { display: none; }
.storia__foto { aspect-ratio: 3 / 2; }

/* Sezione "La materia": trittico di segnaposto (territorio e ingredienti) */
.materia { background: var(--c-carta); }
.materia__intro { max-width: 60rem; margin-bottom: clamp(2.5rem, 6vw, 4.5rem); }
.materia__griglia { display: grid; gap: 1.25rem; }
.materia__voce { display: grid; gap: 1rem; margin: 0; }
.materia__foto { aspect-ratio: 4 / 5; }
.materia__nome { font-family: var(--font-titoli); font-size: clamp(1.3rem, 2.3vw, 1.7rem); font-weight: 500; line-height: 1.1; }
.materia__didascalia { max-width: 34ch; color: var(--c-testo-muto); font-size: .85rem; line-height: 1.5; }
.storia__testo { align-self: center; }
.storia__corpo { max-width: 42rem; }
.storia__corpo p { margin-bottom: 1.5rem; }
.storia__corpo p:first-child { font-family: var(--font-titoli); font-size: clamp(1.35rem, 2.2vw, 1.9rem); line-height: 1.35; }

.assaggio { display: grid; gap: 1.25rem; background: var(--c-primario); color: var(--c-sfondo); }
.assaggio__testo { padding-bottom: 2rem; }
.assaggio .link-editoriale { color: var(--c-sfondo); }
.assaggio__foto { aspect-ratio: 3 / 2; }
.assaggio__dettaglio { width: 46%; aspect-ratio: 1 / 1; margin: -18% 0 0 auto; border: .6rem solid var(--c-primario); }

.sezione-intro { max-width: 70rem; margin-bottom: 3rem; }
.eventi { background: var(--c-carta); }
.eventi__lista { display: grid; gap: 2rem; }
.evento { display: grid; align-items: start; gap: 1.5rem; padding: 0 0 2rem; border-bottom: 1px solid var(--c-linea); }
.evento__foto { aspect-ratio: 4 / 3; object-fit: cover; background: #dfd2c3; }
.evento__data { margin-bottom: .6rem; color: var(--c-primario); font-size: .7rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.evento__titolo { margin-bottom: .65rem; font-family: var(--font-titoli); font-size: clamp(1.85rem, 4.3vw, 3.1rem); font-weight: 500; line-height: 1.02; }
.evento__desc { max-width: 62ch; margin-bottom: 0; }

.galleria { --galleria-gap: 1rem; --galleria-offset: .5rem; background: var(--c-sfondo); }
.galleria__testata { max-width: 66rem; margin-bottom: clamp(3rem, 8vw, 6rem); }
.galleria__intro { max-width: 38rem; margin-bottom: 0; color: var(--c-testo-muto); font-family: var(--font-titoli); font-size: clamp(1.25rem, 2.4vw, 1.8rem); line-height: 1.28; }
.galleria__scorrimento { width: calc(100% + (var(--gutter) * 2)); margin-inline: calc(var(--gutter) * -1); overflow: hidden; }
.galleria__nastro { display: flex; width: max-content; gap: var(--galleria-gap); animation: galleria-scorrimento 72s linear infinite; will-change: transform; }
.galleria__griglia { display: flex; flex: 0 0 auto; gap: var(--galleria-gap); }
.galleria__item { width: clamp(15.5rem, 28vw, 29rem); position: relative; flex: 0 0 auto; margin: 0; overflow: hidden; background: #dfd2c3; aspect-ratio: 3 / 2; }
.galleria__item img { aspect-ratio: 3 / 2; height: 100%; object-fit: cover; transition: transform 800ms var(--ease-out); }
.galleria__item .segnaposto { position: absolute; inset: 0; }
.galleria__item figcaption { position: absolute; right: .75rem; bottom: .75rem; left: .75rem; padding: .7rem .8rem; background: var(--c-carta); color: var(--c-testo); font-size: .68rem; font-weight: 600; line-height: 1.35; }
@keyframes galleria-scorrimento { to { transform: translateX(calc(-50% - var(--galleria-offset))); } }

.banda { position: relative; min-height: 52svh; display: grid; place-items: center; isolation: isolate; overflow: hidden; color: var(--c-sfondo); }
.banda > img, .banda > .segnaposto, .banda__velo { position: absolute; inset: 0; width: 100%; height: 100%; }
.banda > img { z-index: -2; aspect-ratio: 3 / 2; object-fit: cover; }
.banda > .segnaposto { z-index: -2; }
.banda__velo { z-index: -1; background: rgb(36 10 15 / 62%); }
.banda blockquote { max-width: 42rem; padding: 5rem var(--gutter); text-align: center; }
.banda blockquote p { margin-bottom: 1.5rem; font-family: var(--font-titoli); font-size: clamp(2rem, 6.4vw, 4.75rem); letter-spacing: -.02em; line-height: 1.06; }
.banda cite { font-style: normal; font-size: .68rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }

.visita { display: grid; gap: 4rem; background: var(--c-carta); }
.visita h3 { margin-bottom: 1.5rem; font-family: var(--font-titoli); font-size: 2rem; font-weight: 500; }
.visita__indirizzo { max-width: 30rem; font-family: var(--font-titoli); font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.25; }
.orari__riga { min-height: 46px; display: grid; grid-template-columns: minmax(6.5rem, .8fr) 1.5fr; align-items: center; gap: 1rem; padding: .55rem 0; border-bottom: 1px solid var(--c-linea); font-size: .82rem; }
.orari__riga--oggi { color: var(--c-primario); font-weight: 700; }
.orari__ore { text-align: right; }
.visita__contatti { display: flex; flex-direction: column; font-style: normal; }
.visita__contatti a { min-height: 58px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--c-linea); text-decoration: none; }
.visita__contatti span { font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.visita__contatti strong { overflow-wrap: anywhere; font-family: var(--font-titoli); font-size: 1.2rem; font-weight: 500; text-align: right; }

.cta-finale { padding: clamp(7rem, 16vw, 14rem) var(--gutter); background: var(--c-primario-profondo); color: var(--c-sfondo); scroll-margin-top: var(--header-h); }
.cta-finale > div { max-width: 74rem; }
.cta-finale h2 { max-width: 16ch; margin-bottom: 1.75rem; font-family: var(--font-titoli); font-size: clamp(2.4rem, 8vw, 6.25rem); font-weight: 500; letter-spacing: -.03em; line-height: .98; }
.cta-finale p:not(.kicker) { max-width: 40rem; margin-bottom: 2rem; font-family: var(--font-titoli); font-size: clamp(1.35rem, 2.5vw, 2rem); line-height: 1.3; }

.footer { padding: clamp(4rem, 8vw, 7rem) var(--gutter) calc(6rem + env(safe-area-inset-bottom)); display: grid; gap: 4rem; background: #251b18; color: #e8ded1; }
.footer__nome { margin-bottom: .35rem; font-family: var(--font-titoli); font-size: clamp(1.95rem, 4.2vw, 3.75rem); line-height: 1.02; }
.footer__social { display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; }
.footer__social a, .footer__note a { min-height: 44px; display: inline-flex; align-items: center; }
.footer__note { align-self: end; font-size: .72rem; }
.footer__note p { margin-bottom: .25rem; }
.footer__note p:nth-child(2) { display: flex; gap: 1.5rem; }

.azioni-mobile { position: fixed; right: 0; bottom: 0; left: 0; z-index: 90; min-height: 58px; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; padding-bottom: env(safe-area-inset-bottom); background: var(--c-carta); border-top: 1px solid var(--c-linea); }
.azioni-mobile a { min-height: 58px; display: flex; align-items: center; justify-content: center; padding: .5rem; border-right: 1px solid var(--c-linea); color: var(--c-primario-profondo); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }

/* Pagina menu */
.header--menu .header__inner { gap: .75rem; }
.ritorno { min-height: 48px; display: inline-flex; align-items: center; gap: .5rem; font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-decoration: none; text-transform: uppercase; }
.pagina-menu .selettore-lingua { display: none; }
.menu-testata { min-height: min(760px, 84svh); display: grid; background: var(--c-primario); color: var(--c-sfondo); }
.menu-testata__testo { align-self: end; padding: clamp(5rem, 12vw, 10rem) var(--gutter); }
.menu-testata h1 { max-width: 12ch; margin-bottom: 1.75rem; font-family: var(--font-titoli); font-size: clamp(2.8rem, 10vw, 7.5rem); font-weight: 500; letter-spacing: -.03em; line-height: .92; }
.menu-testata__testo > p:last-child { max-width: 42rem; margin-bottom: 0; font-family: var(--font-titoli); font-size: clamp(1.25rem, 2.4vw, 1.9rem); line-height: 1.3; }
.menu-testata__foto { margin: 0; min-height: 22rem; overflow: hidden; }
.menu-testata__foto img { height: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.menu-pagina { padding: 0 var(--gutter) var(--spazio-sezione); background: var(--c-sfondo); }
.menu-categorie { position: sticky; top: var(--header-h); z-index: 40; display: flex; gap: .45rem; margin: 0 calc(var(--gutter) * -1) clamp(4rem, 9vw, 8rem); padding: .7rem var(--gutter); overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; background: var(--c-sfondo); border-bottom: 1px solid var(--c-linea); }
.chip { min-height: 46px; flex: 0 0 auto; display: inline-flex; align-items: center; max-width: min(80vw, 25rem); padding: .55rem .9rem; border: 1px solid var(--c-linea); color: var(--c-testo); font-size: .68rem; font-weight: 700; line-height: 1.2; text-decoration: none; }
.chip.is-active, .chip[aria-current="true"] { background: var(--c-primario); border-color: var(--c-primario); color: var(--c-sfondo); }
.menu-contenuto { width: min(100%, 88rem); margin-inline: auto; }
.menu-categoria { padding: 0 0 clamp(5rem, 10vw, 9rem); scroll-margin-top: calc(var(--header-h) + 5.5rem); }
.menu-categoria__titolo { margin-bottom: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--c-primario); color: var(--c-primario); font-family: var(--font-titoli); font-size: clamp(2.3rem, 6.4vw, 4.75rem); font-weight: 500; letter-spacing: -.025em; line-height: .98; overflow-wrap: anywhere; }
.menu-lista { margin: 0; padding: 0; list-style: none; }
.piatto { display: grid; grid-template-columns: 5.25rem minmax(0, 1fr); gap: 1rem; padding: 1.6rem 0; border-bottom: 1px solid var(--c-linea); }
.piatto:not(:has(.piatto__foto)) { grid-template-columns: 1fr; }
.piatto__foto { width: 5.25rem; height: 5.25rem; aspect-ratio: 1 / 1; object-fit: cover; background: #dfd2c3; }
.piatto__corpo { min-width: 0; }
.piatto__riga { display: grid; grid-template-columns: minmax(0, auto) 1fr auto; align-items: baseline; gap: .6rem; }
.piatto__nome { margin: 0; font-family: var(--font-titoli); font-size: clamp(1.45rem, 3.5vw, 2rem); font-weight: 600; line-height: 1.05; overflow-wrap: anywhere; }
.piatto__dots { min-width: 1rem; border-bottom: 1px dotted #a79786; }
.piatto__prezzo { font-size: .78rem; font-variant-numeric: tabular-nums; font-weight: 700; white-space: nowrap; }
.piatto__desc { max-width: 60ch; margin: .65rem 0 0; color: var(--c-testo-muto); font-size: .82rem; line-height: 1.6; }
.piatto__tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .65rem; }
.piatto__tag, .piatto__badge { display: inline-flex; align-items: center; min-height: 28px; padding: .2rem .5rem; border: 1px solid var(--c-linea); font-size: .62rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.piatto__allergeni { margin: .55rem 0 0; font-size: .7rem; }
.piatto--esaurito { opacity: .58; }
.piatto--esaurito .piatto__nome { text-decoration: line-through; text-decoration-thickness: 1px; }
.menu-vuoto, .menu-errore { min-height: 18rem; display: grid; place-content: center; gap: 1rem; text-align: center; }
.menu-vuoto p, .menu-errore p { max-width: 38rem; font-family: var(--font-titoli); font-size: clamp(1.8rem, 5vw, 3rem); line-height: 1.1; }
.skeleton { overflow: hidden; background: #e4d9ca; }
.skeleton--titolo { width: 48%; height: 4rem; margin-bottom: 2rem; }
.skeleton--riga { width: 85%; height: 1.5rem; margin-bottom: .8rem; }
.skeleton--desc { width: 58%; height: .8rem; }
.menu-chiusura { padding: clamp(5rem, 12vw, 9rem) var(--gutter); display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; background: var(--c-primario-profondo); color: var(--c-sfondo); }
.menu-chiusura p { max-width: 44rem; margin: 0; font-family: var(--font-titoli); font-size: clamp(1.8rem, 4vw, 3.5rem); line-height: 1.08; }
.torna-su { position: fixed; right: 1rem; bottom: calc(70px + env(safe-area-inset-bottom)); z-index: 80; width: 48px; height: 48px; border: 1px solid var(--c-linea); background: var(--c-carta); color: var(--c-primario); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(.5rem); transition: opacity 180ms ease, transform 180ms var(--ease-out), visibility 180ms; }
.torna-su.is-visible { opacity: 1; visibility: visible; transform: translateY(0); }
.footer--menu { background: #251b18; }

/* Pagine informative copiate dalla base */
.pagina-legale main, .contenitore--stretto { width: min(100% - 2.5rem, 54rem); margin-inline: auto; padding-block: clamp(4rem, 10vw, 8rem); }
.pagina-legale h1, .pagina-crediti h1 { font-family: var(--font-titoli); font-size: clamp(3rem, 10vw, 6rem); line-height: .9; }
.pagina-legale main { width: min(100% - 2.5rem, 54rem); }
.pagina-legale main h2 { margin-top: 3.5rem; font-family: var(--font-titoli); font-size: clamp(2rem, 5vw, 3rem); font-weight: 500; line-height: 1; }
.pagina-legale main p, .pagina-legale main li { max-width: 70ch; }
.pagina-legale main li + li { margin-top: 1rem; }
.legale-data { color: var(--c-testo-muto); font-size: .78rem; }
.crediti-page { width: min(100% - 2.5rem, 72rem); margin-inline: auto; padding-block: clamp(5rem, 12vw, 10rem); }
.crediti-page h1 { max-width: 10ch; margin-bottom: 2rem; }
.crediti-page__intro { max-width: 65ch; margin-bottom: clamp(4rem, 9vw, 8rem); font-size: 1.05rem; }
.crediti-page section + section { margin-top: clamp(5rem, 10vw, 9rem); }
.crediti-page h2 { font-family: var(--font-titoli); font-size: clamp(2.5rem, 7vw, 4.5rem); font-weight: 500; }
.crediti-lista { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--c-linea); }
.crediti-lista li { display: grid; gap: .5rem; padding: 1.4rem 0; border-bottom: 1px solid var(--c-linea); }
.crediti-lista strong { font-family: var(--font-titoli); font-size: 1.25rem; overflow-wrap: anywhere; }
.crediti-lista span { max-width: 65ch; color: var(--c-testo-muto); font-size: .82rem; }
.crediti-lista a { min-height: 44px; display: inline-flex; align-items: center; color: var(--c-primario); font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.reveal { opacity: 0; transform: translateY(2rem); transition: opacity 700ms var(--ease-out), transform 700ms var(--ease-out); }
.reveal.is-visible { opacity: 1; transform: translateY(0); }

@media (hover: hover) and (pointer: fine) {
  .btn--crema:hover { background: var(--c-secondario); }
  .btn--linea-chiara:hover { background: var(--c-sfondo); color: var(--c-primario-profondo); }
  .btn--oro:hover { background: #c9a461; }
  .link-editoriale:hover { color: var(--c-secondario); }
  .media-frame:hover img, .galleria__item:hover img { transform: scale(1.035); }
  .galleria__scorrimento:hover .galleria__nastro { animation-play-state: paused; }
  .nav a:hover { color: #dec28e; }
}

@media (min-width: 48rem) {
  :root { --header-h: 80px; }
  .hero__contenuto { padding-right: 12vw; }
  .hero__nota { display: block; }
  .storia { grid-template-columns: minmax(0, 1.2fr) minmax(20rem, .8fr); align-items: center; gap: clamp(3rem, 8vw, 9rem); }
  .storia__foto { aspect-ratio: 4 / 5; }
  .assaggio { grid-template-columns: minmax(19rem, .8fr) minmax(0, 1.2fr); align-items: center; }
  .assaggio__testo { padding: 3rem clamp(2rem, 5vw, 6rem) 3rem 0; }
  .assaggio__foto { aspect-ratio: 4 / 5; }
  .assaggio__dettaglio { position: absolute; right: 5vw; bottom: 5vw; width: min(18vw, 14rem); margin: 0; }
  .evento { grid-template-columns: minmax(14rem, .65fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 5rem); }
  .galleria { --galleria-gap: 1.25rem; --galleria-offset: .625rem; }
  .materia__griglia { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 2rem); }
  .visita { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .visita__intro { grid-column: 1 / -1; }
  .footer { grid-template-columns: 1fr auto; }
  .pagina-menu .selettore-lingua { display: flex; }
  .menu-testata { grid-template-columns: minmax(0, 1.1fr) minmax(20rem, .9fr); }
  .menu-testata__foto { min-height: 100%; }
  .menu-testata__foto img { aspect-ratio: auto; }
  .piatto { grid-template-columns: 6.5rem minmax(0, 1fr); gap: 1.5rem; }
  .piatto__foto { width: 6.5rem; height: 6.5rem; }
  .menu-chiusura { flex-direction: row; align-items: center; justify-content: space-between; }
}

@media (min-width: 68rem) {
  .nav__toggle { display: none; }
  .nav { position: static; inset: auto; flex: 1; flex-direction: row; align-items: center; justify-content: flex-end; gap: clamp(.3rem, 1.2vw, 1.4rem); padding: 0; background: transparent; opacity: 1; visibility: visible; transform: none; transition: none; }
  .nav a { min-height: 48px; padding: .2rem .1rem; border: 0; font-family: var(--font-testo); font-size: .66rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
  .nav__prenota { padding-inline: 1rem !important; border: 1px solid rgb(247 241 230 / 45%) !important; }
  .nav__prenota::after { display: none; }
  .selettore-lingua { margin-left: .4rem; }
  .hero__media img { aspect-ratio: 16 / 9; object-position: center 54%; }
  .storia { grid-template-columns: 5rem minmax(0, 1.05fr) minmax(24rem, .75fr); }
  .storia__indice { display: block; align-self: start; color: var(--c-primario); font-size: .65rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; writing-mode: vertical-rl; }
  .assaggio { grid-template-columns: minmax(34rem, 1.25fr) minmax(20rem, .75fr); }
  .assaggio .titolo-sezione { max-width: none; text-wrap: balance; }
  .eventi__lista { grid-template-columns: repeat(auto-fit, minmax(21rem, 1fr)); }
  .evento { grid-template-columns: 1fr; }
  .galleria { --galleria-gap: 1.5rem; --galleria-offset: .75rem; }
  .visita { grid-template-columns: 1.1fr .75fr .75fr; gap: clamp(3rem, 6vw, 7rem); }
  .visita__intro { grid-column: auto; }
  .azioni-mobile { display: none; }
  .footer { padding-bottom: clamp(4rem, 8vw, 7rem); }
  .torna-su { bottom: 1.5rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; transform: none !important; scroll-behavior: auto !important; }
  .galleria__scorrimento { overflow-x: auto; scrollbar-width: thin; }
  .galleria__nastro { animation: none; }
}
