/* =========================================================================
   XO Village Ristorante — foglio di stile unico
   Impianto: fondo chiaro perlato, pannelli in vetro, tipografia compatta.
   Nessuna richiesta esterna: i caratteri stanno in /assets/fonts.
   ========================================================================= */

:root{
  --ink:#14161A; --ink2:#3D434E; --slate:#6B7280;
  --paper:#F8F9FB; --pearl:#EDEFF4; --steel:#DADEE7;
  --glass:rgba(255,255,255,.46); --glass2:rgba(255,255,255,.62);
  --stroke:rgba(255,255,255,.75); --hair:rgba(20,22,26,.1);
  /* Vetro liquido: il pannello non è un rettangolo opaco ma una lente.
     Il bordo di luce in alto e l'ombra interna in basso sono ciò che lo
     fa sembrare spesso; senza, resta un riquadro semitrasparente. */
  --lente: inset 0 1px 0 rgba(255,255,255,.9),
           inset 0 -1px 0 rgba(120,140,180,.16),
           0 18px 40px -22px rgba(60,80,130,.34);
  --amber:#8A6A2F; --live:#C0392B; --ok:#2E7D5B;
  /* Un solo colore caldo, riservato all'azione principale di ogni schermata.
     Su un fondo freddo e' l'unico elemento che "salta": e' quello che deve
     essere toccato. Se lo si usa anche altrove smette di funzionare. */
  /* Azione principale: un solo colore pieno, senza sfumature ne' riflessi.
     Il bottone deve dire "premimi", non farsi guardare. Bronzo caldo perche'
     riprende l'oro della parola RISTORANTE senza gridare. */
  /* azzurro-viola come nel riferimento di Misha */
  --cta1:#3E82FF; --cta2:#7B5CFF; --cta3:#A855F7;
  --cta:#5B6DFF; --cta-scuro:#4657E8; --cta-testo:#FFFFFF;
  --r:30px; --pad:clamp(18px,4.5vw,64px);
  --ui:"Archivo","Golos Text",system-ui,-apple-system,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:96px;overflow-x:clip}
body{
  margin:0;font-family:var(--ui);font-weight:400;font-size:16px;line-height:1.65;
  color:var(--ink);-webkit-font-smoothing:antialiased;
  /* niente overflow-x qui: su <body> impedisce a position:sticky di
     funzionare, e la barra in alto smetterebbe di restare agganciata.
     Lo sfondamento laterale e' gia' risolto alla radice, e html usa clip. */
  /* Aurora tenue: quattro macchie di colore su fondo chiaro. Restano
     desaturate perche' sopra ci va testo nero, e un fondo troppo acceso
     lo renderebbe illeggibile. */
  background:
    radial-gradient(58% 40% at 82% 2%,rgba(255,214,190,.85),transparent 62%),
    radial-gradient(50% 38% at 96% 20%,rgba(255,190,205,.7),transparent 66%),
    radial-gradient(64% 44% at 4% 10%,rgba(190,214,255,.8),transparent 64%),
    radial-gradient(56% 46% at 18% 92%,rgba(206,196,245,.62),transparent 66%),
    linear-gradient(168deg,#F7F9FD 0%,#EEF1F8 46%,#E4E8F2 100%);
  background-attachment:fixed;
}
img{display:block;max-width:100%;height:auto}
picture{display:contents}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
h1,h2,h3,h4{margin:0;overflow-wrap:anywhere}
h1,h2,h3{font-weight:800;letter-spacing:-.035em;line-height:.98;text-transform:uppercase}
p{margin:0}

.mono{font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--slate);margin:0}
.glass{
  background:var(--glass);border:1px solid var(--stroke);border-radius:var(--r);
  backdrop-filter:blur(30px) saturate(1.6);-webkit-backdrop-filter:blur(30px) saturate(1.6);
  box-shadow:var(--lente);
}
.pill{
  display:inline-flex;align-items:center;gap:9px;background:var(--ink);color:var(--paper);
  border-radius:999px;padding:12px 22px;font-family:var(--mono);font-size:10px;
  letter-spacing:.14em;text-transform:uppercase;transition:.28s;border:1px solid var(--ink);
}
.pill:hover{background:#2B303A;border-color:#2B303A}
/* Ricostruito dal riferimento di Misha, strato per strato: capsula di
   vetro con vano, pastiglia blu->viola, filo di luce, riflesso freddo. */
.pill.primaria{
  position:relative;isolation:isolate;color:#fff;border:0;
  /* dal riferimento: blu freddo a sinistra -> viola caldo a destra */
  background:linear-gradient(105deg,#4D7DFF 0%,#6E62FF 46%,#9257F5 78%,#A855F7 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.6),          /* filo di luce in cima */
    inset 0 -4px 10px rgba(40,28,120,.42),          /* fondo piu' denso */
    0 0 0 1px rgba(255,255,255,.9),                 /* filo di vetro, sottile */
    0 0 0 3px rgba(255,255,255,.26),                /* alone appena accennato */
    0 4px 10px -2px rgba(90,80,220,.28),
    0 12px 26px -8px rgba(96,86,255,.5),
    0 24px 46px -18px rgba(140,90,250,.4);
}
.pill.primaria::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  /* colmo lucido + riflesso freddo in alto a sinistra, come nella foto */
  background:
    radial-gradient(120% 90% at 18% -12%,rgba(210,232,255,.66),transparent 46%),
    linear-gradient(180deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.1) 46%,transparent 60%);
}
.pill.primaria .i{stroke:#fff}
.pill.primaria:hover{filter:brightness(1.06) saturate(1.05)}
.pill.primaria:active{filter:brightness(.94);transform:translateY(1px)}
.pill.ghost{background:transparent;color:var(--ink);border:1px solid rgba(20,22,26,.26)}
.pill.ghost:hover{background:rgba(20,22,26,.06)}
.pill.spento{opacity:.42;cursor:default;background:transparent;color:var(--slate);
  border:1px dashed rgba(20,22,26,.3)}
.todo{color:var(--amber);font-family:var(--mono);font-size:11px;letter-spacing:.04em;
  text-transform:none;overflow-wrap:anywhere}

.i{width:18px;height:18px;flex:none;stroke:currentColor;stroke-width:1.5;fill:none;
  stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.i.lg{width:26px;height:26px;stroke-width:1.3}
.i.sm{width:14px;height:14px;vertical-align:-2px}
.i.rot{transform:rotate(-90deg)}

/* nascosto ma raggiungibile da tastiera, senza spostarsi fuori pagina:
   un elemento a left:-9999px allarga il documento su alcuni browser */
.salta{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);
  white-space:nowrap;z-index:200;padding:12px 18px;background:var(--ink);color:var(--paper)}
.salta:focus{position:fixed;left:0;top:0;width:auto;height:auto;clip-path:none;
  border-radius:0 0 12px 0}

/* ---------------------------------------------------------- barra bozza */
.draft{
  font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;
  text-align:center;padding:9px var(--pad);color:#F0E2C0;background:#2A2114;
  position:relative;z-index:80;line-height:1.5;
}

/* ------------------------------------------------------------ copertina */
.cover{
  color:#F4F5F7;
  position:relative;min-height:min(82svh,700px);display:grid;place-items:center;
  /* respiro sopra il logo: attaccato al bordo della scheda sembrava tagliato */
  padding:clamp(62px,12vw,120px) var(--pad) clamp(34px,6vw,62px);
  text-align:center;overflow:hidden;
  /* la foto scura non passa piu' sotto la barra: sopra resta la fascia
     chiara del fondo, come nel riferimento, e la copertina diventa una
     scheda arrotondata */
  margin:clamp(20px,3.5vw,34px) clamp(10px,2vw,20px) 0;
  border-radius:32px;
}
.cover-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  /* la foto e' piccola: un filo di sfocatura nasconde la grana dell'ingrandimento */
  transform:scale(1.1);filter:saturate(1.05) contrast(1.05) blur(2px)}
.cover .veil{position:absolute;inset:0;
  /* Velo scuro, non chiaro. Il logo e' di cristallo: su fondo chiaro sparisce,
     sul buio brilla. E' la stessa ragione per cui i gioielli si fotografano
     su velluto nero. */
  background:
    radial-gradient(70% 58% at 50% 42%,rgba(8,11,16,.42),rgba(8,11,16,.72) 62%,rgba(6,8,12,.88)),
    linear-gradient(180deg,rgba(6,8,12,.5),transparent 26%,transparent 62%,rgba(6,8,12,.72))}
.cover-inner{position:relative;width:100%;max-width:680px;display:flex;flex-direction:column;align-items:center}

/* logo scontornato a mano: l'originale ha il bianco incollato dentro.
   Va sostituito appena Misha manda il file con la trasparenza vera. */
.cover .mark{
  width:min(84%,600px);height:auto;
  /* il margine sta sul logo e non sulla copertina: con il contenuto centrato
     in verticale, il riempimento della scheda non lo sposta */
  margin:clamp(30px,7vw,72px) auto 18px;
  /* niente ombra scura sotto un logo trasparente su fondo scuro: si vedrebbe
     l'alone dello scontorno. Un alito di luce lo stacca meglio. */
  /* logo con trasparenza vera: niente da correggere, solo un alito di luce */
  filter:drop-shadow(0 0 22px rgba(200,224,255,.28)) drop-shadow(0 8px 22px rgba(0,0,0,.45));
}
.cover .occhiello{margin-top:4px;font-family:var(--ui);font-weight:400;font-size:clamp(13px,1.7vw,16px);
  letter-spacing:.46em;text-transform:uppercase;color:#E9CB63;text-indent:.46em;
  text-shadow:0 2px 10px rgba(0,0,0,.6)}
.cover .sub{margin-top:10px;font-family:var(--mono);font-size:10px;letter-spacing:.34em;
  text-transform:uppercase;color:rgba(244,245,247,.72)}
.cover .tagline{margin-top:10px;font-size:clamp(15px,2.2vw,18px);color:rgba(244,245,247,.94);
  max-width:34ch;text-shadow:0 2px 12px rgba(0,0,0,.55)}

.tonight{
  display:inline-flex;align-items:center;gap:10px;margin:clamp(20px,3.4svh,32px) auto 0;
  padding:12px 22px;border-radius:999px;background:rgba(10,12,16,.72);color:var(--paper);
  border:1px solid rgba(255,255,255,.22);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  box-shadow:0 18px 38px -22px rgba(20,22,26,.7);
}
.tonight .dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.55);flex:none}
/* pulsa solo quando la serata e' stasera o domani: se lampeggiasse anche per
   quella fra tre settimane smetterebbe di voler dire «adesso» */
.tonight.imminente .dot{background:#FF6B5C;
  box-shadow:0 0 0 0 rgba(255,107,92,.75);animation:pulse 2s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 9px rgba(255,90,77,0)}100%{box-shadow:0 0 0 0 rgba(255,90,77,0)}}
/* annullata: niente pulsazione, e si legge subito che non si va */
.tonight.annullata{background:rgba(96,26,22,.78);border-color:rgba(255,138,124,.42)}
.tonight.annullata .dot{background:#FF8A7C;animation:none;box-shadow:none}
@media(prefers-reduced-motion:reduce){.tonight .dot{animation:none}}

.covernav{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;width:100%;
  margin-top:clamp(14px,2.4svh,22px)}
.covernav a{
  display:grid;place-items:center;gap:9px;padding:clamp(15px,2.2svh,22px) 8px;border-radius:18px;
  border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.1);
  backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);
  box-shadow:0 20px 44px -28px rgba(0,0,0,.8);color:#F4F5F7;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  transition:.28s;line-height:1.4;text-align:center;
}
.covernav a:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.42);
  transform:translateY(-2px)}
.covernav svg{stroke:#F4F5F7}
.scrolldown{margin-top:clamp(16px,2.6svh,28px);color:rgba(244,245,247,.7)}
.scrolldown span{display:block;animation:bob 2.2s infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}

/* --------------------------------------------------------------- header */
header{
  position:sticky;top:12px;z-index:60;margin:12px var(--pad) 0;display:flex;align-items:center;
  gap:20px;padding:14px 12px 14px 20px;border-radius:999px;background:var(--glass2);
  border:1px solid var(--stroke);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  box-shadow:0 16px 40px -30px rgba(30,38,54,.55);
}
header .brand img{height:54px;width:auto;filter:contrast(1.08) saturate(1.05)}
header nav{margin-left:auto;display:flex;gap:22px}
header nav a{font-family:var(--mono);font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--slate);white-space:nowrap}
header nav a:hover,header nav a[aria-current]{color:var(--ink)}
header .lang{display:flex;gap:2px}
header .lang a{font-family:var(--mono);font-size:9px;padding:5px 8px;border-radius:999px;color:var(--slate)}
header .lang a.on{background:rgba(20,22,26,.09);color:var(--ink)}
@media(max-width:980px){header nav{gap:14px}header nav a{font-size:9px;letter-spacing:.08em}}
@media(max-width:700px){
  header{padding:14px 12px 14px 16px;gap:8px}
  header .brand img{height:46px}
  header nav{display:none}
  /* le lingue vanno a destra e diventano abbastanza grandi da toccarle:
     cambiare lingua e' la prima cosa che fa chi non legge l'italiano */
  header .lang{margin-left:auto;gap:4px}
  header .lang a{font-size:11px;padding:9px 12px;min-width:40px;text-align:center}
  header .lang a.on{background:var(--ink);color:var(--paper)}
}

/* -------------------------------------------------------------- sezioni */
section{padding:clamp(46px,7vw,100px) var(--pad)}
/* la barra in alto e' agganciata e galleggia sopra: la prima sezione di ogni
   pagina interna deve partire piu' in basso, altrimenti ci finisce sotto */
main>section:first-child,main>article:first-child{padding-top:clamp(70px,10vw,104px)}
.p-home main>div.cover:first-child{padding-top:0}
.head{max-width:64ch;margin-bottom:clamp(24px,4vw,44px)}
.head h1,.head h2{font-size:clamp(28px,5vw,60px);margin-top:10px}
.head>p:not(.mono){color:var(--ink2);margin:16px 0 0;max-width:56ch}
.sotto{margin:34px 0 12px}
.sotto-tit{font-size:clamp(18px,2.4vw,26px);margin:clamp(34px,5vw,56px) 0 18px}
.piu{margin-top:clamp(22px,3vw,34px);display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.disclaim{font-family:var(--mono);font-size:9.5px;letter-spacing:.11em;
  text-transform:uppercase;color:var(--slate)}

/* La comparsa progressiva vale solo dove c'e' JavaScript: senza, il contenuto
   e' visibile e basta. Nascondere per poi mostrare via script significa che un
   qualunque intoppo lascia la pagina bianca. */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .rv.in{opacity:1;transform:none}

/* --------------------------------------------------------------- serate */
.sez-serate{padding-top:clamp(24px,3.5vw,44px)}
.ev-main{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(18px,3vw,40px);
  padding:clamp(16px,2vw,22px);align-items:stretch}
@media(max-width:820px){.ev-main{grid-template-columns:1fr}}
.poster{border-radius:16px;overflow:hidden;position:relative;min-height:300px;display:block}
.poster.senza,.serata-poster.senza{
  background:linear-gradient(150deg,#1B2028,#0D1014 60%,#242C36);
  display:grid;place-items:center;text-align:center;padding:32px 24px;color:#fff}
.poster img,.serata-poster img{width:100%;height:100%;object-fit:cover}
.poster-auto .pt{font-size:clamp(26px,4vw,42px);font-weight:800;letter-spacing:-.03em;
  text-transform:uppercase;line-height:.95}
.poster-auto .pd{font-family:var(--mono);font-size:11px;letter-spacing:.2em;margin-top:14px;
  color:rgba(255,255,255,.68)}
.poster-auto .pdress{margin-top:16px;display:inline-block;padding:7px 14px;border-radius:999px;
  border:1px solid rgba(255,255,255,.34);font-family:var(--mono);font-size:9.5px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85)}
.poster-auto.grande .pt{font-size:clamp(30px,5vw,54px)}
.tagph{position:absolute;left:12px;bottom:12px;font-family:var(--mono);font-size:8.5px;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5);
  border:1px dashed rgba(255,255,255,.32);border-radius:20px;padding:5px 10px}

.ev-body{padding:clamp(8px,1.6vw,18px) clamp(8px,1.6vw,14px);display:flex;flex-direction:column}
.ev-when{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--live);font-weight:500}
.ev-when .dot{width:7px;height:7px;border-radius:50%;background:var(--live);flex:none}
.ev-when[data-stato="soon"],.ev-when[data-stato="weekend"],.ev-when[data-stato="weekday"]{color:var(--slate)}
.ev-when[data-stato="soon"] .dot,.ev-when[data-stato="weekend"] .dot,
.ev-when[data-stato="weekday"] .dot{background:var(--slate)}
.demo{margin-left:8px;padding:3px 9px;border-radius:999px;background:rgba(138,106,47,.14);
  color:var(--amber);font-family:var(--mono);font-size:8.5px;letter-spacing:.12em}
.ev-body h3{font-size:clamp(28px,4vw,46px);margin:12px 0 0}
.ev-desc{color:var(--ink2);margin:14px 0 0}
.ev-facts{margin:22px 0 0;display:grid}
.ev-facts>div{padding:11px 0;border-top:1px solid var(--hair);display:grid;
  grid-template-columns:150px 1fr;gap:4px 12px;font-size:14.5px}
.ev-facts span{font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--slate);padding-top:4px}
.ev-facts .spicca div b{font-size:17px}
@media(max-width:560px){.ev-facts>div{grid-template-columns:1fr}}
.ev-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:auto;padding-top:26px}

.ev-next{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.ev-card{padding:12px;display:flex;gap:13px;align-items:center;position:relative;transition:.3s}
.ev-card:hover{transform:translateY(-3px)}
.ev-card.passata{opacity:.62}
.ev-card .mini{width:58px;height:74px;border-radius:10px;flex:none;overflow:hidden;
  background:linear-gradient(150deg,#232A33,#0E1116);display:grid;place-items:center;
  color:rgba(255,255,255,.55)}
.ev-card .mini img{width:100%;height:100%;object-fit:cover}
.ev-card h4{margin:0;font-size:15.5px;font-weight:600;letter-spacing:-.01em;text-transform:none}
.ev-card p{margin:3px 0 0;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--slate)}
.annullata{margin-left:7px;color:var(--live);font-family:var(--mono);font-size:9px;
  letter-spacing:.1em;text-transform:uppercase}
.ev-vuoto{padding:clamp(22px,3vw,36px);text-align:center}
.ev-vuoto-txt{font-size:clamp(17px,2.4vw,22px);color:var(--ink2);max-width:52ch;margin:0 auto 20px}
.ev-vuoto .socials{justify-content:center}

/* --------------------------------------------------- pagina di serata */
.serata{padding:clamp(30px,5vw,64px) var(--pad) clamp(50px,7vw,90px)}
.briciole{margin-bottom:22px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate)}
.avviso{display:flex;gap:10px;align-items:flex-start;padding:14px 18px;border-radius:14px;
  background:rgba(138,106,47,.1);border:1px solid rgba(138,106,47,.24);color:#5C4718;
  font-size:14px;margin-bottom:24px;line-height:1.5}
.avviso.annullata{background:rgba(192,57,43,.09);border-color:rgba(192,57,43,.26);color:#8B2A20}
.avviso a{text-decoration:underline}
.serata-testa{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(20px,3.4vw,48px);align-items:start}
@media(max-width:900px){.serata-testa{grid-template-columns:1fr}}
.serata-poster{border-radius:var(--r);overflow:hidden;position:relative;min-height:360px}
.serata-corpo h1{font-size:clamp(32px,5.6vw,64px);margin:14px 0 0}
.serata-desc{color:var(--ink2);margin:18px 0 0;font-size:17px;max-width:52ch}

/* ------------------------------------------------------------ il locale */
.locale-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3.4vw,54px);align-items:center}
@media(max-width:860px){.locale-grid{grid-template-columns:1fr}}
.locale-foto{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.scatto{margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;
  box-shadow:0 22px 44px -26px rgba(30,38,54,.6)}
.scatto img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.scatto:hover img{transform:scale(1.04)}
.hall .scatto,.hall picture img{border-radius:12px}
.slot{
  border:1px dashed rgba(20,22,26,.24);border-radius:14px;aspect-ratio:4/3;display:grid;
  place-items:center;text-align:center;padding:16px;font-family:var(--mono);font-size:9px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--slate);background:rgba(255,255,255,.32);
}

/* ----------------------------------------------------------- due anime */
.switch{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:var(--glass2);
  border:1px solid var(--stroke);margin-bottom:28px}
.switch button{padding:11px 22px;border-radius:999px;font-family:var(--mono);font-size:10px;
  letter-spacing:.13em;text-transform:uppercase;color:var(--slate);transition:.28s}
.switch button.on{color:#fff;
  background:linear-gradient(112deg,var(--cta1),var(--cta2) 60%,var(--cta3));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4)}
.mood{display:grid;grid-template-columns:.92fr 1.08fr;gap:clamp(18px,3vw,40px);align-items:stretch}
.mood[hidden]{display:none}
.mood+.mood{margin-top:clamp(18px,3vw,44px)}
.mood-txt{padding:clamp(22px,3vw,38px);display:flex;flex-direction:column;justify-content:center}
.mood-txt h3{font-size:clamp(22px,3vw,38px)}
.mood-txt>p{color:var(--ink2);margin:16px 0 0}
.mood-txt ul{list-style:none;padding:0;margin:22px 0 0}
.mood-txt li{padding:12px 0;border-top:1px solid var(--hair);font-size:14.5px;color:var(--ink2)}
.mood-txt li b{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--slate);font-weight:400;margin-bottom:2px}
.mood-cta{margin-top:24px}
.mood-pic{display:grid;place-items:center;padding:clamp(14px,2vw,24px);
  min-height:clamp(300px,38vw,440px);overflow:hidden}
.mood-pic img{width:100%;height:auto;max-height:clamp(270px,34vw,400px);object-fit:contain;
  filter:drop-shadow(0 22px 26px rgba(30,38,54,.24))}
@media(max-width:860px){.mood{grid-template-columns:1fr}}

/* ----------------------------------------------------------------- menu */
.tabs{display:flex;flex-wrap:wrap;gap:10px;padding:0;background:none;border:0;margin-bottom:26px}
.tabs a{padding:15px 26px;border-radius:999px;color:var(--ink2);
  background:rgba(255,255,255,.66);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:inset 0 1px 0 rgba(255,255,255,1),
             inset 0 -6px 12px rgba(150,170,210,.14),
             0 12px 26px -14px rgba(80,100,150,.4);
  backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);
  font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;transition:.28s}
.tabs a:hover{background:rgba(255,255,255,.85)}
.tabs a.on{
  /* La categoria aperta ha lo stesso azzurro-lavanda del modulo di
     prenotazione, non il pieno del tasto d'azione.
     Il gradiente pieno e' la lingua di «premi qui»: usarlo anche per dire
     «sei qui» faceva sembrare la linguetta il gesto piu' importante della
     schermata, quando invece sta solo segnando un posto. Chiaro si vede
     benissimo lo stesso — e il tasto di prenotazione torna a essere l'unica
     cosa piena della pagina. */
  position:relative;isolation:isolate;border:1px solid rgba(110,98,255,.3);
  color:var(--ink);font-weight:700;
  background:linear-gradient(152deg,#EDF2FF 0%,#F0EDFF 48%,#F8EEFF 100%);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    0 6px 16px -10px rgba(78,68,190,.45);
}
.tabs a.on::before{display:none}
.cat{scroll-margin-top:110px}
.cat+.cat{margin-top:clamp(40px,5vw,72px)}
.cat-tit{font-size:clamp(20px,2.6vw,30px);margin-bottom:18px;color:var(--ink2)}
/* con JavaScript le categorie diventano linguette: il titolo sparisce */
.js .cat[hidden]{display:none}
.js .cat-tit{display:none}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:clamp(13px,1.7vw,22px)}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(268px,1fr))}
.item{padding:14px 14px 20px;display:flex;flex-direction:column;
  transition:transform .38s,box-shadow .38s}
.item:hover{transform:translateY(-5px);box-shadow:0 40px 70px -40px rgba(30,38,54,.55)}
.dish{position:relative;height:340px;flex:0 0 340px;display:grid;place-items:center;
  margin-bottom:14px;overflow:visible;background:none;border-radius:24px}
/* l'ombra a terra: senza, il piatto scontornato sembra incollato sulla scheda */
.dish::after{content:"";position:absolute;left:14%;right:14%;bottom:14px;height:20px;border-radius:50%;
  background:radial-gradient(50% 50%,rgba(30,38,54,.28),transparent 72%)}
.dish img{height:340px;width:100%;object-fit:contain;position:relative;transition:transform .5s;
  filter:drop-shadow(0 18px 22px rgba(30,38,54,.34)) drop-shadow(0 3px 6px rgba(30,38,54,.18))}
.item:hover .dish img{transform:translateY(-5px) scale(1.03)}
.dish.vuota{background:none;border:1px dashed rgba(20,22,26,.22);font-family:var(--mono);
  font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--slate);
  text-align:center;padding:14px;height:150px;flex-basis:150px}
.dish.vuota::after,.dish.vuota::before{display:none}
.item h3{font-size:19px;line-height:1.14;text-transform:none;letter-spacing:-.02em}
.item .ing{font-size:13px;line-height:1.55;color:var(--ink2);margin:7px 0 0;flex:1}
.spec{margin-top:18px}
.spec .row{padding:8px 0;border-top:1px solid var(--hair)}
.spec .row span{display:block;font-family:var(--mono);font-size:8.5px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--slate);margin-bottom:2px}
.spec .row p{margin:0;font-size:12.5px;line-height:1.5;color:var(--ink2)}
.buy{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;padding-top:14px;
  border-top:1px solid var(--hair);align-items:baseline}
.price{font-size:23px;font-weight:600;letter-spacing:-.02em;line-height:1}
.price i{font-style:normal;font-size:13px;margin-left:3px;color:var(--slate);font-weight:400}
.pvar{display:inline-flex;align-items:baseline;gap:9px;border:1px solid var(--hair);
  border-radius:999px;padding:7px 13px;font-size:15px;font-weight:600}
.pvar em{font-style:normal;font-weight:400;font-size:10px;color:var(--slate);
  text-transform:uppercase;letter-spacing:.1em;font-family:var(--mono)}
.askp{font-size:13px;color:var(--amber);display:inline-flex;align-items:center;gap:7px}
.frz{display:inline-flex;align-items:center;gap:7px;color:var(--amber);font-size:12.5px;margin:0}

.drinks{padding:clamp(20px,3vw,38px);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 clamp(24px,4vw,54px)}
.dgroup{grid-column:1/-1;margin-top:22px;display:flex;justify-content:space-between;
  align-items:baseline;gap:14px;padding-bottom:4px}
.dgroup:first-child{margin-top:0}
/* la colonna della foto esiste solo dove c'e' la foto: altrimenti stringe
   il titolo e i nomi lunghi vanno a capo per niente */
.drink{padding:16px 0;border-top:1px solid var(--hair);display:grid;
  grid-template-columns:1fr auto;gap:4px 14px;align-items:baseline}
.drink.con-foto{grid-template-columns:78px 1fr auto}
.drink .ck{grid-row:1/span 2;align-self:center;width:78px;height:104px;border-radius:12px;
  overflow:hidden;box-shadow:0 10px 22px -10px rgba(0,0,0,.7)}
.drink .ck img{width:100%;height:100%;object-fit:contain;background:rgba(0,0,0,.3)}
/* un soggetto scontornato deve galleggiare sulla scheda: il riquadro scuro
   dietro lo farebbe sembrare una foto con lo sfondo nero */
.drink .ck.scontornata{overflow:visible;box-shadow:none;background:none}
.drink .ck.scontornata img{background:none;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.55))}
.drink .ings{grid-column:1/-1}
.drink.con-foto .ings{grid-column:2/-1}
.drink h4{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em;text-transform:none}
.drink .ings{grid-column:1/-1;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;
  color:var(--slate);line-height:1.8;margin:0}
.drink .ings.all{color:var(--ink2);margin-top:3px}
.drink .pr{font-family:var(--mono);font-size:13px}
.nota-legale{margin-top:clamp(34px,5vw,60px);font-size:13px;color:var(--slate);
  display:flex;gap:9px;align-items:flex-start;max-width:74ch}

/* ------------------------------------------------------- eventi privati */
.privati-box{padding:clamp(24px,4vw,54px)}
.halls{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.halls-grandi .hall{padding:14px}
.hall h3{font-size:20px;margin:14px 0 5px;text-transform:none;letter-spacing:-.02em}
.hall p{margin:0 0 6px;font-size:13.5px;color:var(--ink2)}
.passi{list-style:none;padding:0;margin:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.passi li{display:flex;gap:12px;align-items:flex-start;padding:18px;border-radius:16px;
  background:var(--glass);border:1px solid var(--stroke);font-size:14.5px;color:var(--ink2)}
.passi .num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--ink);
  color:var(--paper);display:grid;place-items:center;font-family:var(--mono);font-size:11px}

form.quote{padding:clamp(20px,3vw,34px);display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
form.quote label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--slate);margin-bottom:6px}
form.quote input,form.quote select,form.quote textarea{
  width:100%;padding:13px 14px;border-radius:12px;border:1px solid rgba(20,22,26,.16);
  background:rgba(255,255,255,.78);font:inherit;font-size:16px;color:var(--ink)}
form.quote input:focus,form.quote textarea:focus,form.quote select:focus{
  border-color:var(--ink);outline:none}
form.quote textarea{resize:vertical}
form.quote .full{grid-column:1/-1}
form.quote .consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--slate);
  font-family:var(--ui);letter-spacing:0;text-transform:none;line-height:1.5;margin:0}
form.quote .consent input{width:auto;margin-top:3px;flex:none}
form.quote .consent a{text-decoration:underline}
form.quote .azioni{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.trappola{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.nota-bozza{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--amber);
  border-top:1px solid var(--hair);padding-top:14px;margin:0}

/* ------------------------------------------------------------- contatti */
.info{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:2px;
  border-radius:var(--r);overflow:hidden}
.info>div{padding:24px 22px;background:var(--glass);border:1px solid var(--stroke)}
.info h3{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9px;
  letter-spacing:.17em;font-weight:400;color:var(--slate);margin-bottom:12px;text-transform:uppercase}
.info p{margin:0 0 4px;font-size:15px}
.info a{text-decoration:underline;text-underline-offset:3px}
.info .dopo{margin-top:14px}
.orari{list-style:none;padding:0;margin:0}
.orari li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:14px;
  border-bottom:1px solid var(--hair)}
.orari li:last-child{border-bottom:0}
.orari li.chiuso{color:var(--slate)}
.orari b{font-weight:500}
.socials{display:flex;flex-wrap:wrap;gap:9px}
.mappa{margin-top:20px;border-radius:var(--r);overflow:hidden;
  border:1px solid var(--stroke);background:var(--glass)}
.mappa-copertina{padding:clamp(26px,4vw,44px) 20px;display:grid;gap:14px;place-items:center;
  text-align:center;
  background-image:linear-gradient(rgba(237,239,244,.86),rgba(237,239,244,.94)),
                   url(/assets/img/venue/fondo-carta-1200.jpg);
  background-size:cover;background-position:center}
.mappa-ind{margin:0;font-size:16px;line-height:1.7}
.mappa-nota{margin:0;display:flex;gap:8px;align-items:flex-start;max-width:56ch;
  font-size:12.5px;color:var(--slate);text-align:left}
.mappa .piu{margin-top:4px;justify-content:center}
.mappa.caricata{aspect-ratio:16/10;background:#e9ecf1}
.mappa iframe{width:100%;height:100%;border:0;display:block}

/* ------------------------------------------------------- pagine legali */
.sez-legale .testo{max-width:72ch}
.sez-legale h2{font-size:clamp(17px,2.2vw,22px);margin:34px 0 10px;text-transform:none;
  letter-spacing:-.02em}
.sez-legale p{color:var(--ink2);margin-bottom:10px}
.sez-legale ul{color:var(--ink2);padding-left:20px}
.sez-legale li{margin-bottom:6px}
.sez-legale code{font-family:var(--mono);font-size:12px;background:rgba(20,22,26,.06);
  padding:2px 6px;border-radius:5px}
.sez-legale .vuoto{padding:14px 16px;border:1px dashed rgba(138,106,47,.4);border-radius:12px;
  background:rgba(138,106,47,.05)}
.dati-societari{list-style:none;padding:0;margin:0 0 10px}
.dati-societari li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;
  border-bottom:1px solid var(--hair);font-size:15px}
.dati-societari span{font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--slate);padding-top:4px}

/* ---------------------------------------------------------------- piede */
footer{padding:clamp(34px,5vw,60px) var(--pad) 54px;border-top:1px solid var(--hair);
  color:var(--slate);font-size:12.5px}
.piede-top{display:grid;grid-template-columns:1.2fr 1fr 1.4fr;gap:clamp(20px,3vw,40px);
  padding-bottom:28px}
@media(max-width:820px){.piede-top{grid-template-columns:1fr;gap:26px}}
.logo-piede{height:64px;width:auto;margin-bottom:10px;filter:contrast(1.08) saturate(1.05)}
.piede-nav{display:flex;flex-direction:column;gap:8px}
.piede-nav a{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.piede-nav a:hover{color:var(--ink)}
.piede-social .mono{margin-bottom:12px}
.piede-legale{border-top:1px solid var(--hair);padding-top:22px;display:grid;gap:10px}
.piede-legale .fl{display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);
  font-size:10px;letter-spacing:.1em;text-transform:uppercase}
.piede-legale .fl a:hover{color:var(--ink)}
.piede-legale .nota{max-width:74ch;line-height:1.6}

/* ------------------------------------------------ barra azioni telefono */
.dock{position:fixed;left:10px;right:10px;bottom:10px;z-index:70;display:none;gap:8px;
  padding:10px;border-radius:32px;background:rgba(255,255,255,.82);
  border:1px solid rgba(255,255,255,.95);
  backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,1),0 18px 44px -18px rgba(60,80,140,.5);
  transform:translateY(140%);transition:transform .35s ease}
.dock.show{transform:none}
.dock a{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:11px 4px;
  border-radius:999px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink2)}
.dock a.primary{position:relative;isolation:isolate;flex:1.7;flex-direction:row;gap:9px;
  justify-content:center;align-items:center;color:#fff;border:0;font-size:10px;
  /* dal riferimento: blu freddo a sinistra -> viola caldo a destra */
  background:linear-gradient(105deg,#4D7DFF 0%,#6E62FF 46%,#9257F5 78%,#A855F7 100%);
  box-shadow:
    inset 0 1.5px 0 rgba(255,255,255,.6),          /* filo di luce in cima */
    inset 0 -4px 10px rgba(40,28,120,.42),          /* fondo piu' denso */
    0 0 0 1px rgba(255,255,255,.9),                 /* filo di vetro, sottile */
    0 0 0 3px rgba(255,255,255,.26),                /* alone appena accennato */
    0 4px 10px -2px rgba(90,80,220,.28),
    0 12px 26px -8px rgba(96,86,255,.5),
    0 24px 46px -18px rgba(140,90,250,.4);
}
.dock a.primary::before{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;
  /* colmo lucido + riflesso freddo in alto a sinistra, come nella foto */
  background:
    radial-gradient(120% 90% at 18% -12%,rgba(210,232,255,.66),transparent 46%),
    linear-gradient(180deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.1) 46%,transparent 60%);
}
.dock a.primary .i{stroke:#fff}
@media(max-width:760px){.dock{display:flex}body{padding-bottom:84px}}

/* ------------------------------------------------------------- menu QR */
body.nudo{background:#0E1013;color:#F2F3F5}
.qr{max-width:720px;margin:0 auto;padding:20px 18px 60px}
.qr-testa{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.14)}
.qr-testa img{height:66px;width:auto}
.qr-testa .lang{display:flex;gap:4px}
.qr-testa .lang a{padding:9px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.24);
  font-family:var(--mono);font-size:12px;color:rgba(255,255,255,.7)}
.qr-testa .lang a.on{background:#F2F3F5;color:#0E1013;border-color:#F2F3F5}
.qr-tabs{display:flex;flex-wrap:wrap;gap:7px;padding:16px 0;position:sticky;top:0;
  background:#0E1013;z-index:5;border-bottom:1px solid rgba(255,255,255,.1)}
.qr-tabs a{padding:9px 15px;border-radius:999px;border:1px solid rgba(255,255,255,.22);
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(255,255,255,.78)}
.qr-cat{padding-top:30px;scroll-margin-top:70px}
.qr-cat h2{font-size:26px;color:#fff;margin-bottom:6px}
.qr-voce{padding:18px 0;border-bottom:1px solid rgba(255,255,255,.11)}
.qr-riga{display:flex;justify-content:space-between;gap:16px;align-items:baseline}
.qr-voce h3{font-size:18px;font-weight:600;text-transform:none;letter-spacing:-.01em;color:#fff}
.qr-prezzi{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;text-align:right}
.qr-prezzo{font-size:17px;font-weight:600;white-space:nowrap}
.qr-prezzo em{font-style:normal;display:block;font-family:var(--mono);font-size:9.5px;
  letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:400}
.qr-desc{margin:7px 0 0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.76)}
.qr-note{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;
  color:rgba(255,255,255,.5)}
.qr-frz{color:#D8B65F}
.qr .askp{color:#D8B65F;font-size:14px}
.qr-piede{margin-top:44px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
  font-size:12.5px;color:rgba(255,255,255,.5);display:grid;gap:7px}

/* --------------------------------------------------------------- stampa */
@media print{
  .draft,header,.dock,.cover,.tabs,.piu,footer,.socials,.avviso{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .glass{background:none;border:0;box-shadow:none;backdrop-filter:none}
  .item{break-inside:avoid;border-bottom:1px solid #ddd;padding:8px 0}
  .dish{display:none}
  .grid{display:block}
  .rv{opacity:1;transform:none}
}

/* --------------------------------------------------- meno movimento */
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .rv{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* --------------------------------- segnalazioni visibili solo in bozza */
.da-confermare{
  display:flex;gap:7px;align-items:center;margin:8px 0 0;padding:6px 10px;
  border-radius:9px;background:rgba(138,106,47,.09);border:1px solid rgba(138,106,47,.22);
  white-space:normal;line-height:1.4;
}

/* ------------------------------------------------- invito alla recensione */
.recensioni{
  display:grid;grid-template-columns:1fr auto;gap:clamp(18px,3vw,40px);
  align-items:center;padding:clamp(22px,3vw,36px);margin-top:clamp(24px,3.5vw,44px);
}
@media(max-width:760px){.recensioni{grid-template-columns:1fr}}
.rec-voto{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:12px}
.rec-voto b{font-family:var(--ui);font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.stelle{display:inline-flex;gap:1px;color:#C9932F}
.recensioni h3{font-size:clamp(19px,2.4vw,26px);text-transform:none;letter-spacing:-.02em}
.recensioni p{color:var(--ink2);margin-top:9px;max-width:52ch;font-size:15px}
.rec-azione{display:flex;flex-direction:column;gap:9px;align-items:flex-start}
.ev-main.passata{opacity:.6}

/* ------------------------------------------------ prenotazione su WhatsApp */
form.prenota{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:12px;padding:clamp(16px,2.4vw,24px);margin-top:22px;
}
form.prenota label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--slate);margin-bottom:6px}
form.prenota input,form.prenota select{
  width:100%;padding:13px 14px;border-radius:12px;border:1px solid rgba(20,22,26,.16);
  background:rgba(255,255,255,.8);font:inherit;font-size:16px;color:var(--ink)}
form.prenota input:focus,form.prenota select:focus{border-color:var(--ink);outline:none}
.prenota-azione{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:6px}
.prenota-nota{grid-column:1/-1;display:flex;gap:8px;align-items:flex-start;
  font-size:12.5px;color:var(--slate);margin:0}
.sez-eventi form.prenota{margin-top:0}

/* I cocktail chiari come il resto del bar.
   La foto tropicale resta, ma appena accennata: sotto il velo scuro faceva
   da ambiente, sotto un velo chiaro fa da carta colorata e non ruba
   leggibilita' agli ingredienti, che sono l'unica cosa che c'e' da leggere. */
.drinks{
  background-image:linear-gradient(rgba(255,253,248,.93),rgba(246,243,236,.96)),
                   url(/assets/img/venue/tropicale-1600.jpg);
  background-size:cover;background-position:center;
  border:1px solid rgba(20,22,26,.07);
  box-shadow:0 10px 26px -18px rgba(20,22,26,.4);
  color:var(--ink);
}
.drinks .dgroup .mono{color:var(--oro-scuro,#8a6d1f)}
.drinks .drink{border-top-color:rgba(20,22,26,.1)}
.drinks .drink h4{color:var(--ink)}
.drinks .drink .pr{color:var(--ink)}
.drinks .drink .ings{color:var(--slate)}
.drinks .drink .ings.all{color:var(--ink2)}
/* la miniatura su chiaro come quella delle bottiglie */
.drink .ck{background:linear-gradient(170deg,#FFFDF8,#F1EEE7);
  box-shadow:0 6px 16px -10px rgba(20,22,26,.45)}
.drink .ck img{background:none}

/* -------------------------------------------- immagini della sezione bar
   La foto ha una fascia sua sulla destra: sovrapporla al testo renderebbe
   illeggibili gli ingredienti, che sono l'unica cosa che c'e' da leggere. */
.drinks{position:relative;overflow:hidden}
.drinks-foto{display:none}
@media(min-width:1000px){
  .drinks{padding-right:clamp(220px,24%,310px)}
  .drinks-foto{display:block;position:absolute;right:2.5%;top:50%;
    transform:translateY(-50%);width:min(19%,225px);pointer-events:none;
    filter:drop-shadow(0 26px 34px rgba(30,38,54,.28))}
  .drinks-foto .coppa{width:100%;height:auto}
  .drinks-foto .passione{position:absolute;left:-22%;bottom:4%;width:46%;height:auto;
    transform:rotate(-12deg)}
}
.cucina-orario{margin-top:14px;padding-top:12px;border-top:1px solid var(--hair);font-size:13.5px}
.cucina-orario b{font-family:var(--mono);font-size:9px;letter-spacing:.15em;
  text-transform:uppercase;color:var(--slate);font-weight:400;margin-right:8px}
.cucina-orario span{color:var(--slate);font-size:12.5px}

/* ------------------------------------------------- ingrandimento della foto */
button.dish,button.ck{border:0;padding:0;cursor:zoom-in;font:inherit;color:inherit}
button.dish:focus-visible,button.ck:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.zoom{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:20px;
  background:rgba(8,10,14,.9);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.zoom[hidden]{display:none}
.zoom figure{margin:0;max-width:min(900px,94vw);display:grid;gap:14px;justify-items:center}
.zoom img{max-width:100%;max-height:74svh;width:auto;height:auto;border-radius:16px;
  object-fit:contain;filter:drop-shadow(0 30px 60px rgba(0,0,0,.7))}
.zoom figcaption{text-align:center;color:#F4F5F7;display:grid;gap:6px}
.zoom figcaption b{font-size:19px;font-weight:600;letter-spacing:-.01em}
.zoom figcaption span{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(244,245,247,.6)}
.zoom-chiudi{position:absolute;top:14px;right:16px;width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);color:#fff;
  font-size:26px;line-height:1;display:grid;place-items:center}
.zoom-chiudi:hover{background:rgba(255,255,255,.22)}
/* il logo in barra sopra la copertina scura: un filo di luce lo stacca */
header .brand img{filter:contrast(1.08) saturate(1.05) drop-shadow(0 1px 2px rgba(30,40,60,.35))}

/* ===================================================================
   Rifiniture d'impaginazione — passata finale
   =================================================================== */

/* Le pastiglie social devono stare in fila come una riga di tasti: stessa
   altezza, stessa larghezza minima, icona sempre nella stessa posizione.
   Prima ognuna era larga quanto la sua parola e sembravano buttate li'. */
.socials{display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
.socials .pill,.socials .pill.ghost,.socials .pill.spento{
  flex:0 1 auto;min-width:148px;justify-content:center;
  padding:13px 20px;line-height:1;
}
.socials .i{width:17px;height:17px;flex:none}
@media(max-width:520px){
  /* stessa larghezza anche quando vanno a capo: se l ultima si allarga a
     tutta riga la fila sembra sbilanciata */
  .socials .pill,.socials .pill.ghost,.socials .pill.spento{flex:0 1 auto;min-width:142px}
}

/* L'icona dentro ogni pastiglia occupa sempre lo stesso posto, cosi' le
   scritte partono allineate anche fra righe diverse. */
.pill{line-height:1}
.pill .i{width:17px;height:17px}

/* Nella barra in basso testo e icona sulla stessa riga sul tasto principale */
.dock a.primary{flex-direction:row;gap:9px;justify-content:center;align-items:center}

/* Titoli: lo spazio sotto era sempre uguale, e le sezioni corte sembravano
   sbilanciate. Ora il respiro segue la lunghezza del blocco. */
.head{margin-bottom:clamp(22px,3.4vw,40px)}
.head>p:not(.mono){margin-top:14px}
.sotto-tit{margin:clamp(40px,6vw,64px) 0 20px}
.piu{margin-top:clamp(24px,3.4vw,38px);gap:14px}

/* Le schede piatto: prezzo e allergeni erano incollati al bordo basso */
.item{padding:14px 16px 20px}
.spec{margin-top:16px}
.buy{margin-top:14px;padding-top:14px}

/* Il blocco recensioni chiude la pagina: piu' aria sopra, meno sotto */
.recensioni{margin-top:clamp(28px,4vw,52px)}

/* Il modulo: le etichette respirano e i campi sono alti come i pulsanti */
form.prenota{gap:14px;padding:clamp(18px,2.6vw,26px)}
form.prenota label{margin-bottom:7px}
form.prenota input,form.prenota select{padding:14px}
.prenota-nota{margin-top:2px}

/* ===================================================================
   Adattamento agli schermi — passata finale
   =================================================================== */

/* I campi data e ora sbordavano: in una griglia le celle non si stringono
   sotto il contenuto (min-width vale auto), e il selettore nativo di iOS e'
   piu' largo del riquadro. Con min-width:0 la cella cede e il campo sta dentro. */
form.prenota>div,form.quote>div,.info>div{min-width:0}
form.prenota input,form.prenota select,
form.quote input,form.quote select,form.quote textarea{
  max-width:100%;min-width:0;
  -webkit-appearance:none;appearance:none;
  font-size:16px;   /* sotto i 16px iOS ingrandisce la pagina da solo */
}
form.prenota input[type=date],form.prenota input[type=time]{
  -webkit-appearance:none;appearance:none;
  min-height:48px;line-height:1.2;
}
form.prenota{grid-template-columns:repeat(auto-fit,minmax(132px,1fr))}
@media(max-width:420px){form.prenota{grid-template-columns:1fr 1fr}
  form.prenota .prenota-azione,form.prenota .prenota-nota{grid-column:1/-1}}

/* --------------------------------------------------------------------
   Testi piu' contenuti: una sezione deve stare in una schermata, non
   spezzarsi in due. I titoli scalano anche sull'altezza dello schermo,
   cosi' su un telefono corto non mangiano tutto lo spazio.
   -------------------------------------------------------------------- */
.head h1,.head h2{font-size:clamp(24px,min(4.6vw,5.2svh),46px);line-height:1.02}
.sotto-tit{font-size:clamp(16px,2.1vw,22px)}
.item h3{font-size:17px}
.item .ing{font-size:12.5px;line-height:1.5}
.ev-body h3{font-size:clamp(24px,min(4vw,4.6svh),38px)}
.serata-corpo h1{font-size:clamp(26px,min(4.6vw,5.4svh),48px)}
.mood-txt h3{font-size:clamp(19px,min(2.7vw,3.4svh),30px)}
.recensioni h3{font-size:clamp(17px,2.1vw,22px)}
.qr-cat h2{font-size:22px}
.info p{font-size:14.5px}
.orari li{font-size:13.5px;padding:4px 0}
section{padding:clamp(38px,5.5vw,80px) var(--pad)}

/* --------------------------------------------------------------------
   Copertina: deve entrare in una schermata su qualunque telefono, dal
   mini al Pro Max. Tutto e' legato all'altezza utile (svh) e non a
   valori fissi, e il logo cede per primo se lo spazio manca.
   -------------------------------------------------------------------- */
.cover{
  min-height:auto;
  height:calc(100svh - clamp(96px,17svh,132px));
  max-height:760px;
  padding:clamp(14px,2.4svh,34px) var(--pad) clamp(16px,2.6svh,34px);
  align-content:center;
}
.cover .mark{
  width:min(78%,clamp(190px,34svh,520px));
  margin:0 auto clamp(8px,1.4svh,16px);
}
.cover .occhiello{margin-top:2px;font-size:clamp(11px,1.5svh,15px);letter-spacing:.4em}
.cover .sub{margin-top:clamp(4px,.8svh,9px);font-size:clamp(8.5px,1.1svh,10px);letter-spacing:.28em}
.cover .tagline{margin-top:clamp(5px,1svh,11px);font-size:clamp(13px,1.9svh,17px)}
.tonight{margin-top:clamp(10px,1.8svh,24px);padding:clamp(9px,1.4svh,13px) 18px;
  font-size:clamp(9px,1.2svh,10.5px)}
.covernav{margin-top:clamp(10px,1.6svh,20px);gap:8px}
.covernav a{padding:clamp(11px,1.7svh,20px) 6px;font-size:clamp(8.5px,1.1svh,9.5px)}
.covernav .i.lg{width:clamp(20px,3svh,26px);height:clamp(20px,3svh,26px)}
.scrolldown{margin-top:clamp(8px,1.4svh,22px)}

/* schermi bassi e larghi: il logo si stringe ancora e la freccia sparisce */
@media(max-height:700px){
  .cover .mark{width:min(62%,clamp(150px,30svh,300px))}
  /* la freccia resta: e' l'unica cosa che dice che sotto c'e' altro */
  .scrolldown{margin-top:clamp(6px,1svh,14px)}
  .scrolldown .i{width:19px;height:19px}
}
@media(min-width:900px){
  .cover{height:calc(100svh - clamp(110px,15svh,150px))}
  .cover .mark{width:min(46%,clamp(240px,38svh,480px))}
}

/* ===================================================================
   Schede: solo l'essenziale — passata finale
   =================================================================== */

/* Il riquadro del menu in copertina si distingue dagli altri due: e' quello
   che quasi tutti cercano per primo, e lasciarli uguali costringe a leggerli
   tutti e tre prima di decidere. */
.covernav a.spicca{
  background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 12px 28px -14px rgba(0,0,0,.7);
}
.covernav a.spicca svg{stroke-width:1.6}
.covernav a.spicca span{color:#fff}

/* La descrizione del piatto si ferma a tre righe: chi vuole tutto tocca la
   foto e la legge in grande. Una scheda che si allunga sposta il prezzo
   fuori vista, ed e' il prezzo che fa decidere. */
.item .ing{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;
  overflow:hidden;margin:6px 0 0;
}
/* Gli allergeni sono un obbligo di legge, non un argomento di vendita:
   restano leggibili ma non competono con il nome del piatto. */
.spec{margin-top:12px}
.spec .row{padding:6px 0}
.spec .row span{font-size:8px;letter-spacing:.14em;margin-bottom:1px}
.spec .row p{font-size:11.5px;line-height:1.45;color:var(--slate)}
.frz{font-size:11.5px}
.buy{margin-top:12px;padding-top:12px}
.price{font-size:21px}
.pvar{padding:6px 11px;font-size:14px}

/* Schede serata: il titolo e la data bastano, il resto sta nella pagina */
.ev-card{padding:10px}
.ev-card h4{font-size:14.5px}
.ev-card p{font-size:9px}
.ev-facts>div{padding:9px 0;font-size:13.5px}
.ev-desc,.serata-desc{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
}
.serata-desc{-webkit-line-clamp:5;font-size:15.5px;margin-top:14px}

/* Sale e passaggi: tre righe di testo bastano a capire */
.hall p{font-size:13px}
.passi li{font-size:13.5px;padding:15px}
.mood-txt>p{font-size:14.5px;margin-top:12px}
.recensioni p{font-size:14px;margin-top:7px}

/* Cocktail: l'elenco ingredienti e' la sola cosa da leggere, tenuto stretto */
.drink{padding:13px 0}
.drink h4{font-size:15.5px}
.drink .ings{font-size:10px;line-height:1.7}

/* ===================================================================
   Ritmo della copertina e delle schede — passata finale
   =================================================================== */

/* La copertina segue il percorso: il marchio prende l'attenzione, la frase
   dice cos'e', il richiamo della serata attrae, i tre riquadri sono l'azione.
   Ogni passaggio ha bisogno di uno stacco, altrimenti si legge come un blocco
   unico e nessuno dei tre momenti si distingue. */
.cover .tagline{margin-top:clamp(8px,1.4svh,14px)}
.tonight{margin-top:clamp(20px,3.4svh,40px)}
.covernav{margin-top:clamp(20px,3.2svh,36px)}
.scrolldown{margin-top:clamp(14px,2.2svh,26px)}

/* Le due foto delle anime erano enormi sul telefono: il piatto occupava
   quasi tutta la schermata e il testo finiva sotto la piega. */
@media(max-width:860px){
  .mood-pic{min-height:0;padding:12px;height:auto}
  .mood-pic img{max-height:clamp(120px,26svh,190px);width:auto;margin:0 auto}
}

/* Fra il racconto e il modulo c'era un vuoto che li faceva sembrare
   scollegati: il modulo e' la conseguenza del testo, non un'altra cosa. */
.mood-txt>p{margin-top:12px}
.mood-cta{margin-top:clamp(14px,2vw,20px)}
.mood-cta form.prenota{margin-top:0}
.mood-txt ul{margin-top:16px}

/* --------------------------------------------------- scheda dove siamo */
.info{gap:1px;background:rgba(255,255,255,.5)}
.info>div{padding:22px 20px}
.info h3{margin-bottom:14px;letter-spacing:.15em}
.info .dopo{margin-top:16px}
.mappa-copertina{gap:16px}
.mappa-ind{font-size:15.5px;line-height:1.6}

/* ------------------------------------------------------------- piede
   Chiude la pagina: sfondo pieno che stacca dal chiaro, contenuto
   centrato e una sola riga di dati. */
footer{
  margin-top:clamp(40px,6vw,80px);
  background:linear-gradient(168deg,#171A21,#0E1116);
  color:rgba(244,245,247,.66);
  border-top:0;border-radius:34px 34px 0 0;
  padding:clamp(24px,3.6vw,38px) var(--pad) clamp(20px,3vw,30px);
  text-align:center;
}
/* Compatto ma completo: c'e' dentro tutto quello che c'era prima — marchio,
   navigazione, social, dati societari, note legali, credito. Cambia solo
   l'aria fra un blocco e l'altro. Un piede alto due terzi di schermo si
   attraversa e basta: nessuno lo legge, e chi cerca la partita IVA la trova
   prima se e' tutto vicino. */
.piede-top{grid-template-columns:1fr;justify-items:center;gap:14px;padding-bottom:16px;
  border-bottom:1px solid rgba(255,255,255,.12)}
.logo-piede{height:42px;filter:brightness(1.06);margin-bottom:5px}
footer .mono{color:rgba(244,245,247,.45)}
.piede-nav{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:7px 18px}
.piede-nav a{color:rgba(244,245,247,.8)}
.piede-nav a:hover{color:#fff}
.piede-social{display:grid;justify-items:center;gap:7px}
.piede-social .mono{margin-bottom:0}
footer .socials{justify-content:center;gap:7px}
/* I tre pulsanti social su una riga sola invece che due.
   La larghezza minima da 148px li mandava a capo: nel piede si tolgono di
   mezzo e si dividono lo spazio in tre parti uguali. Restano alti 44px,
   che e' la misura che conta per il dito. */
footer .socials{flex-wrap:nowrap}
footer .socials .pill,footer .socials .pill.ghost,footer .socials .pill.spento{
  flex:1 1 0;min-width:0;min-height:44px;padding:10px 8px;gap:6px;
  font-size:9px;letter-spacing:.06em}
footer .socials .i{width:15px;height:15px}
footer .socials .pill.ghost{border-color:rgba(255,255,255,.28);color:rgba(244,245,247,.9)}
footer .socials .pill.ghost:hover{background:rgba(255,255,255,.12)}
footer .socials .pill.spento{border-color:rgba(255,255,255,.18);color:rgba(244,245,247,.4)}
.piede-legale{border-top:0;padding-top:14px;justify-items:center;gap:7px}
.piede-legale .fl{justify-content:center}
.piede-legale .fl a{color:rgba(244,245,247,.72)}
.piede-legale .fl a:hover{color:#fff}
.piede-legale .nota{max-width:60ch;margin:0 auto;color:rgba(244,245,247,.45);
  font-size:11px;line-height:1.45}
footer .todo{color:#D8B65F}
@media(max-width:760px){body{padding-bottom:88px}}

/* ===================================================================
   Copertina: il marchio in alto, l'azione in fondo
   -------------------------------------------------------------------
   Il richiamo della serata e i tre riquadri scendono a fine schermata,
   sopra il margine. Cosi' il pollice li trova dove arriva da solo, e
   fra il racconto e l'azione resta lo spazio che li separa.
   =================================================================== */
.cover{align-content:stretch}
.cover-inner{
  height:100%;
  justify-content:flex-start;
  padding-bottom:clamp(6px,1.4svh,18px);
}
/* il primo elemento del gruppo in fondo si prende tutto lo spazio libero */
.cover-inner>.tonight{margin-top:auto}
.cover-inner>.tagline+.covernav{margin-top:auto}
.cover-inner>.tonight+.covernav{margin-top:clamp(12px,2svh,22px)}
.cover-inner>.scrolldown{margin-top:clamp(10px,1.8svh,20px)}

/* Il logo era finito attaccato al bordo alto: le regole dell adattamento
   avevano azzerato il margine sopra, e con il contenuto allineato in alto
   non c era piu nulla a staccarlo. */
/* NB: il logo sta dentro un <picture> con display:contents. Nel disegno si
   comporta da figlio della copertina, ma nel documento no: il selettore
   figlio non lo aggancia e serve quello discendente. */
/* Il marchio scende parecchio: la foto del locale si vede sopra di lui e
   la copertina smette di essere un blocco appoggiato al bordo. Lo spazio
   e legato all altezza utile, cosi su uno schermo corto si ritira da solo
   invece di spingere fuori i tre riquadri. */
.cover .mark{margin-top:clamp(58px,14svh,190px)}
@media(max-height:760px){.cover .mark{margin-top:clamp(34px,8svh,74px)}}
@media(max-height:640px){.cover .mark{margin-top:clamp(18px,4svh,34px)}}

/* ===================================================================
   Etichette con icona e schede piu' compatte — passata finale
   =================================================================== */

/* Un'icona accanto all'etichetta: si capisce cosa chiede il campo prima
   ancora di leggere la parola, e su tre campi in fila fa risparmiare
   tre letture. */
form.prenota label,form.quote label{
  display:flex;align-items:center;gap:6px;
  font-size:8.5px;letter-spacing:.12em;margin-bottom:6px;
}
form.prenota label .i,form.quote label .i{
  width:13px;height:13px;stroke-width:1.6;color:var(--slate);vertical-align:0;
}

/* --------------------------------------------------------------------
   Schede piu' compatte: ognuna deve stare fra la barra alta e quella
   bassa senza spezzarsi. Si stringe il contorno, non il contenuto.
   -------------------------------------------------------------------- */

/* Organizza il tuo evento: i segnaposto foto erano alti quanto mezza
   schermata e spingevano tutto il resto fuori. */
.halls-grandi{gap:10px}
.halls-grandi .hall{padding:10px}
.halls-grandi .slot{aspect-ratio:16/10;font-size:8px;padding:10px}
.hall h3{font-size:16.5px;margin:10px 0 4px}
.hall p{font-size:12.5px;line-height:1.5;margin-bottom:4px}

.passi{gap:10px}
.passi li{padding:13px;font-size:12.5px;gap:10px}
.passi .num{width:23px;height:23px;font-size:10px}

.sez-eventi .head{margin-bottom:clamp(18px,2.6vw,30px)}
.sez-eventi .sotto-tit{margin:clamp(26px,4vw,40px) 0 14px;font-size:clamp(15px,1.9vw,19px)}
form.prenota{padding:clamp(15px,2.2vw,22px);gap:12px}

/* Menu: schede piu' strette e testo piu' contenuto, cosi' in una schermata
   ne entrano due intere invece di una e mezza. */
.grid{grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:clamp(11px,1.5vw,18px)}
.grid-4{grid-template-columns:repeat(auto-fill,minmax(232px,1fr))}
.dish{height:250px;flex:0 0 250px;margin-bottom:10px}
.dish img{height:250px}
.dish.vuota{height:130px;flex-basis:130px}
.item{padding:12px 14px 16px}
.item h3{font-size:16px}
.item .ing{font-size:12px;-webkit-line-clamp:2}
.spec{margin-top:10px}
.buy{margin-top:10px;padding-top:10px}
.price{font-size:19px}

/* Serate e contatti: stessa cura */
.ev-main{padding:clamp(12px,1.6vw,18px);gap:clamp(14px,2.2vw,30px)}
.poster{min-height:230px}
.info>div{padding:18px 17px}
.recensioni{padding:clamp(18px,2.4vw,28px)}

@media(max-width:700px){
  .halls-grandi{grid-template-columns:1fr 1fr}
  .halls-grandi .hall h3{font-size:14.5px}
  .halls-grandi .hall p{font-size:11.5px}
  .passi{grid-template-columns:1fr 1fr}
  .dish{height:200px;flex-basis:200px}
  .dish img{height:200px}
}

/* Le foto delle sale seguivano la loro proporzione naturale e venivano
   altissime: ora hanno tutte lo stesso riquadro, come i segnaposto. */
.halls-grandi .hall picture img{
  width:100%;aspect-ratio:16/11;object-fit:cover;border-radius:14px;display:block;
}
@media(max-width:700px){.halls-grandi .hall picture img{aspect-ratio:4/3}}

/* Quanti siete sta in cima e occupa tutta la riga: e la prima cosa che si
   sa quando si pensa a una prenotazione, e le due domande sul quando stanno
   affiancate sotto perche appartengono alla stessa idea. */
form.prenota .campo-largo{grid-column:1/-1}
form.prenota .campo-largo input{max-width:180px}

/* ------------------------------------------------------ pagine legali */
.sez-legale .agg{margin-top:10px;color:var(--slate)}
.intro-legale{font-size:15.5px;line-height:1.7;color:var(--ink2);
  padding:16px 18px;border-radius:16px;background:rgba(255,255,255,.5);
  border:1px solid var(--stroke);margin-bottom:8px}
.sez-legale h2{font-size:16.5px;margin:28px 0 8px}
.sez-legale p{font-size:14.5px;line-height:1.7}
.rimando{margin-top:34px;padding-top:18px;border-top:1px solid var(--hair);
  display:flex;flex-wrap:wrap;gap:8px 20px;font-family:var(--mono);font-size:10px;
  letter-spacing:.12em;text-transform:uppercase}
.rimando a{text-decoration:underline;text-underline-offset:3px}

.tab-cookie{margin:18px 0 8px;border-radius:16px;overflow:hidden;
  border:1px solid var(--stroke);background:rgba(255,255,255,.5)}
.tc-testa,.tc-riga{display:grid;grid-template-columns:1.1fr 2.4fr 1fr 1.2fr;gap:12px;
  padding:12px 16px;align-items:start}
.tc-testa{background:rgba(255,255,255,.6);font-family:var(--mono);font-size:8.5px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--slate)}
.tc-riga{border-top:1px solid var(--hair);font-size:13px}
.tc-riga code{font-family:var(--mono);font-size:12px;color:var(--ink)}
.tc-riga p{margin:0;font-size:13px;line-height:1.55;color:var(--ink2)}
@media(max-width:700px){
  .tc-testa{display:none}
  .tc-riga{grid-template-columns:1fr;gap:4px;padding:14px 16px}
  .tc-riga code{font-size:13px;margin-bottom:2px}
}

/* -------------------------------------------------- credito nel piede */
.credito{margin-top:9px;padding-top:9px;border-top:1px solid rgba(255,255,255,.1);
  font-size:11px;color:rgba(244,245,247,.5);line-height:1.55}
.credito a{color:rgba(244,245,247,.85);text-decoration:underline;text-underline-offset:3px}
.credito a:hover{color:#fff}
.credito-cta{display:block;margin-top:2px;color:rgba(244,245,247,.38)}

/* Sul largo i tre blocchi stanno in fila invece che uno sotto l'altro:
   in verticale sprecavano mezzo schermo per tre righe di testo. */
@media(min-width:760px){
  .piede-top{grid-template-columns:auto 1fr auto;align-items:center;
    justify-items:stretch;gap:clamp(20px,4vw,46px);text-align:left;
    padding-bottom:14px}
  .piede-top>div:first-child{display:flex;align-items:center;gap:14px}
  .logo-piede{margin-bottom:0}
  .piede-top>div:first-child .mono{margin:0}
  .piede-nav{justify-content:center}
  .piede-social{grid-auto-flow:column;align-items:center;justify-items:end;
    justify-content:end;gap:12px}
}

/* ================================================================= consenso
   Sta in basso e non copre tutta la pagina: si puo' continuare a leggere.
   I tasti hanno tutti la stessa misura e lo stesso peso: rifiutare non deve
   costare piu' che accettare, e non e' gentilezza, e' quello che chiede il
   Garante. */
.consenso-fondo{position:fixed;inset:0;z-index:120;background:rgba(10,12,16,.34);
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.consenso{position:fixed;z-index:121;left:0;right:0;bottom:0;padding:0 12px 12px;
  animation:consenso-su .34s cubic-bezier(.2,.7,.3,1) both}
@keyframes consenso-su{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.consenso{animation:none}}
.consenso-in{max-width:min(640px,100%);margin:0 auto;background:rgba(255,255,255,.92);
  backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(20,22,26,.1);border-radius:20px;padding:20px 20px 16px;
  box-shadow:0 24px 60px -20px rgba(12,16,24,.42),0 2px 8px rgba(12,16,24,.08)}
.consenso-in h2{margin:0 0 8px;font-size:17px;letter-spacing:-.01em}
.consenso-in>p{margin:0 0 14px;font-size:13.5px;line-height:1.62;color:var(--slate)}
.consenso-in>p a{color:inherit;text-underline-offset:3px}

.consenso-scelte{display:grid;gap:2px;margin:0 0 14px;border-top:1px solid rgba(20,22,26,.09);
  padding-top:12px}
.consenso-voce{display:flex;gap:11px;align-items:flex-start;padding:9px 0;cursor:pointer}
.consenso-voce input{width:20px;height:20px;margin:1px 0 0;flex:none;accent-color:var(--oro-scuro,#8a6d1f);cursor:pointer}
.consenso-voce input:disabled{cursor:default;opacity:.55}
.consenso-voce b{display:block;font-size:13.5px;font-weight:650;margin-bottom:2px}
.consenso-voce small{display:block;font-size:12px;line-height:1.55;color:var(--slate)}

.consenso-tasti{display:flex;flex-wrap:wrap;gap:8px}
.consenso-tasti .consenso-btn{flex:1 1 auto;min-width:0;justify-content:center;min-height:46px;
  font-size:14px;padding:12px 14px}
@media(max-width:420px){.consenso-tasti{flex-direction:column-reverse}
  .consenso-tasti .consenso-btn{width:100%}}

/* il tasto per cambiare idea, in fondo alla pagina: e' un tasto ma deve
   sembrare uno degli altri link legali */
.come-link{background:none;border:0;padding:0;font:inherit;color:inherit;
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}

/* -------------------------------------------------------------- biglietti */
.pill-nota{font-weight:500;opacity:.82;font-size:.86em;margin-left:2px}
.ev-bg-nota{margin:12px 0 0;font-size:11.5px;line-height:1.6;color:var(--slate);
  max-width:62ch}
.ev-bg-tag{display:inline-flex;align-items:center;gap:4px;margin-left:8px;
  padding:2px 8px;border-radius:999px;background:rgba(138,109,31,.12);
  color:var(--oro-scuro,#8a6d1f);font-weight:600;font-size:.92em;white-space:nowrap}
.ev-bg-tag svg{width:12px;height:12px}

/* «hidden» deve vincere sempre: qui sopra ci sono display:grid e display:flex
   che altrimenti lo scavalcano e mostrano quello che doveva restare chiuso */
.consenso [hidden]{display:none}
.consenso-fondo[hidden]{display:none}

/* a schermo largo il 16:10 diventa una mappa alta due terzi di pagina */
.mappa.caricata{max-height:min(480px,62vh)}
.mappa.caricata iframe{width:100%;height:100%;border:0;display:block}

/* ============================================== le due anime: cucina e bar
   Due tasti grandi invece di dieci linguette. La domanda vera che uno si fa
   aprendo il menu di un locale e' «mangiare o bere»: si risponde a quella,
   e solo dopo si mostrano le categorie. */
.sezioni{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-width:420px;
  margin:0 auto clamp(18px,3vw,28px);padding:5px;border-radius:999px;
  background:rgba(20,22,26,.06);border:1px solid rgba(20,22,26,.08)}
.sezioni a{display:flex;align-items:center;justify-content:center;gap:8px;
  padding:12px 10px;border-radius:999px;text-decoration:none;color:var(--slate);
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  transition:background .22s,color .22s,box-shadow .22s;min-height:46px}
.sezioni a .i{width:17px;height:17px;stroke-width:1.7}
.sezioni a.on{background:var(--carta,#fff);color:var(--ink);
  box-shadow:0 2px 10px -3px rgba(20,22,26,.24),0 1px 2px rgba(20,22,26,.08)}
@media(prefers-reduced-motion:reduce){.sezioni a{transition:none}}

/* le linguette del bar portano la bottiglia: si riconosce a colpo d'occhio
   quello che leggendo bisognerebbe ricordare.
   Scorrono in orizzontale e non vanno a capo: una fila che continua oltre il
   bordo dice «ce n'e' dell'altro» e invita a spingere; sette riquadri
   impilati dicono solo «c'e' tanto da leggere». */
.tabs.con-foto{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
  gap:8px;padding:2px 0 12px;margin-bottom:18px;
  scrollbar-width:none;-ms-overflow-style:none;
  /* si sfuma sul bordo destro: si capisce che la fila continua */
  -webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 26px),transparent 100%);
  mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 26px),transparent 100%)}
.tabs.con-foto::-webkit-scrollbar{display:none}
.tabs.con-foto a{flex:0 0 auto;scroll-snap-align:start;
  flex-direction:column;gap:7px;padding:9px 10px 11px;border-radius:18px;
  width:92px;text-align:center;line-height:1.25;font-size:9px;letter-spacing:.09em;
  white-space:normal;overflow-wrap:anywhere}
.tab-foto{width:62px;height:70px;margin:0 auto;
  display:grid;place-items:center;border-radius:13px;
  background:linear-gradient(170deg,#fff,#F2EFE8);
  box-shadow:inset 0 0 0 1px rgba(20,22,26,.07)}
.tab-foto img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain;
  mix-blend-mode:multiply}
/* la linguetta accesa non prende il gradiente pieno: sotto una foto quel
   viola grida piu' della bottiglia, e la bottiglia e' il motivo per cui la
   linguetta ha una foto */
.tabs.con-foto a.on{color:var(--ink);border:1px solid rgba(110,98,255,.3);
  background:linear-gradient(152deg,#EDF2FF 0%,#F0EDFF 48%,#F8EEFF 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),
             0 8px 20px -12px rgba(78,68,190,.5)}
.tabs.con-foto a.on::before{display:none}
/* La linguetta accesa e' bianca piena, le altre sono vetro semitrasparente:
   la differenza si vede lo stesso e la bottiglia resta la cosa piu' scura
   del riquadro — che e' il punto, visto che la si guarda per riconoscerla.
   Il nome sotto passa da grigio a nero pieno: e' quello a dire quale sia
   scelta, senza bisogno di un blocco di colore. */
.tabs.con-foto a.on span:not(.tab-foto){font-weight:700;color:var(--ink)}
.tabs.con-foto a.on .tab-foto{background:linear-gradient(170deg,#fff,#FBFAFF);
  box-shadow:inset 0 0 0 1px rgba(110,98,255,.16)}

/* ------------------------------------------------------------- bottiglie */
.bottiglie{display:grid;gap:10px}
@media(min-width:760px){.bottiglie{grid-template-columns:1fr 1fr;gap:12px}}
.bott{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;
  padding:12px;border-radius:18px;background:var(--carta,#fff);
  border:1px solid rgba(20,22,26,.07);
  box-shadow:0 10px 26px -18px rgba(20,22,26,.4)}
/* la foto sta su chiaro: il bianco dello scatto sparisce nella scheda e
   l'etichetta resta leggibile, che e' l'unica cosa che serve per riconoscerla */
.bott-foto{border:0;padding:0;background:linear-gradient(170deg,#FFFDF8,#F1EEE7);
  border-radius:14px;cursor:zoom-in;width:96px;height:120px;
  display:grid;place-items:center;overflow:hidden}
.bott-foto img{max-width:100%;max-height:112px;width:auto;height:auto;object-fit:contain;
  mix-blend-mode:multiply}
.bott-foto:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.bott-txt{min-width:0}
.bott h4{margin:0 0 3px;font-size:16px;font-weight:600;letter-spacing:-.01em;
  text-transform:none;line-height:1.25}
.bott-desc{margin:0 0 8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;
  color:var(--slate);line-height:1.6}
.bott-prezzi{list-style:none;margin:0;padding:0;display:grid;gap:3px}
.bott-prezzi li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;
  font-size:13px}
.bott-prezzi li span{color:var(--slate);font-family:var(--mono);font-size:10.5px;
  letter-spacing:.05em;text-transform:uppercase}
.bott-prezzi li b{font-weight:600;white-space:nowrap}
.bott-chiedi{margin:0;font-family:var(--mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--slate);opacity:.8}
.bott-all{margin:7px 0 0;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;
  color:var(--slate);opacity:.85;line-height:1.5}
@media(max-width:420px){
  .bott{grid-template-columns:78px 1fr;gap:11px;padding:10px}
  .bott-foto{width:78px;height:100px}
  .bott-foto img{max-height:92px}
  .bott h4{font-size:15px}
}
.tab-foto.vuota{color:var(--slate);opacity:.5}
.tab-foto.vuota .i{width:26px;height:26px;stroke-width:1.5}

/* ================================================== la card di prenotazione
   Era bianca su una pagina chiara: il gesto piu' importante del sito si
   confondeva con lo sfondo e si leggeva come «un altro riquadro». Ora e'
   scura. Non e' un vezzo: e' l'unico blocco scuro della pagina, quindi
   l'occhio ci va sopra da solo — e non serve gridare con un colore acceso,
   che su un sito cosi' sembrerebbe una pubblicita' incollata. */
form.prenota{
  /* Lo stesso blu-viola del tasto «scrivi su WhatsApp», ma quasi bianco.
     Serve a far capire, prima ancora di leggere, che questo riquadro e quel
     tasto sono la stessa cosa: qui si prenota. Talmente schiarito da non
     tirare l'occhio via dal tasto — se il fondo gridasse quanto il tasto,
     il tasto smetterebbe di essere il punto d'arrivo. */
  background:linear-gradient(152deg,#EDF2FF 0%,#F0EDFF 48%,#F8EEFF 100%);
  border:1px solid rgba(110,98,255,.18);
  box-shadow:0 20px 44px -28px rgba(78,68,190,.42),
             inset 0 1px 0 rgba(255,255,255,.9);
  backdrop-filter:none;-webkit-backdrop-filter:none;
  border-radius:22px;color:var(--ink);position:relative;overflow:hidden}
/* un alone appena accennato in alto a destra, nello stesso viola */
form.prenota::before{content:"";position:absolute;inset:-50% -30% auto auto;
  width:74%;aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(146,87,245,.13),transparent 68%)}
form.prenota::after{content:"";position:absolute;left:10%;right:10%;top:0;height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(110,98,255,.4) 40%,
                             rgba(146,87,245,.4) 60%,transparent)}
form.prenota>*{position:relative}
form.prenota label{color:var(--slate)}
form.prenota label .i{stroke:#6E62FF}
form.prenota input,form.prenota select{
  background:rgba(255,255,255,.92);border-color:rgba(110,98,255,.24);
  color:var(--ink)}
form.prenota input::placeholder{color:rgba(20,22,26,.35)}
form.prenota input:focus,form.prenota select:focus{
  border-color:#6E62FF;background:#fff;
  box-shadow:0 0 0 3px rgba(110,98,255,.16)}
.prenota-nota{color:var(--slate)}
.prenota-nota .i{stroke:var(--slate)}
form.prenota .pill.ghost{color:var(--ink);border-color:rgba(110,98,255,.3)}
form.prenota .pill.ghost:hover{background:rgba(110,98,255,.08)}
/* Senza foto la scheda diventa una riga.
   Una Coca-Cola non ha niente da guardare: darle la stessa altezza di una
   bottiglia di Barbaresco allunga la pagina per niente e fa sembrare corta
   una lista che corta non e'. Nome a sinistra, prezzo a destra, come su una
   carta stampata. */
.bott.senza-foto{grid-template-columns:1fr;padding:12px 15px}
.bott.senza-foto .bott-txt{display:grid;grid-template-columns:1fr auto;
  gap:2px 14px;align-items:baseline}
.bott.senza-foto h4{margin:0;font-size:15.5px}
.bott.senza-foto .bott-desc{grid-column:1/-1;margin:2px 0 0}
.bott.senza-foto .bott-all{grid-column:1/-1;margin:4px 0 0}
.bott.senza-foto .bott-prezzi{grid-column:2;grid-row:1;justify-items:end;gap:2px}
.bott.senza-foto .bott-prezzi li{justify-content:flex-end;gap:10px;white-space:nowrap}
.bott.senza-foto .bott-chiedi{grid-column:2;grid-row:1;text-align:right}
/* la nota di una categoria: sotto il titolo, prima dell'elenco */
.cat-nota{display:flex;gap:8px;align-items:flex-start;margin:-8px 0 18px;
  font-size:13px;line-height:1.6;color:var(--slate);max-width:68ch}
.cat-nota .i{flex:none;margin-top:2px;stroke:var(--oro-scuro,#8a6d1f)}
/* Una sala senza foto: la scheda si ferma dove finisce il testo.
   Allungandosi per pareggiare quella di fianco resterebbe mezza vuota, e un
   vuoto grande in mezzo a due schede piene si legge come «qui manca qualcosa»
   — mentre qui non manca niente: la sala privata e' privata apposta. */
.halls-grandi .hall:not(:has(picture)){align-self:start;
  padding-top:clamp(16px,2.2vw,22px)}

/* ------------------------------------------------------------- cocktail
   Stessa scheda delle bottiglie: la sezione bar deve leggersi allo stesso
   modo dovunque, che si guardi un whisky o un Mai Tai. */
.ck-gruppo{font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--oro-scuro,#8a6d1f);
  margin:20px 0 9px;padding-left:2px}
.ck-gruppo:first-child{margin-top:0}
.bott.cocktail .bott-desc{line-height:1.75}
/* il segnaposto non e' il drink: sta piu' chiaro e non si preme */
.bott-foto.segnaposto{cursor:default;background:linear-gradient(170deg,#FBFAFF,#F1EFF8)}
.bott-foto.segnaposto img{opacity:.42;max-height:88px;mix-blend-mode:normal}

/* la nota della categoria: era una riga grigia che si saltava.
   Ora e' un riquadro chiaro, lo stesso della prenotazione — dice «leggimi»
   senza gridare, e chi cerca un cocktail che non e' in elenco lo scopre
   prima di arrendersi. */
.cat-nota{display:flex;gap:10px;align-items:flex-start;
  margin:-4px 0 20px;padding:13px 16px;border-radius:14px;
  background:linear-gradient(152deg,#EDF2FF 0%,#F0EDFF 48%,#F8EEFF 100%);
  border:1px solid rgba(110,98,255,.18);
  font-size:13.5px;line-height:1.6;color:var(--ink2);max-width:64ch}
.cat-nota .i{flex:none;margin-top:2px;stroke:#6E62FF}

/* ================================================================== sconti
   Un solo rosso in tutta la pagina, e serve a una cosa sola. Se lo si usasse
   anche altrove smetterebbe di dire «guarda qui». */
.sconto-bollino{position:absolute;top:12px;right:12px;z-index:3;
  background:#C0392B;color:#fff;border-radius:999px;padding:5px 11px;
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.04em;
  box-shadow:0 6px 16px -6px rgba(192,57,43,.7);pointer-events:none}
.item.in-sconto{position:relative}
.sconto-tag{display:inline-block;vertical-align:2px;margin-left:7px;
  background:#C0392B;color:#fff;border-radius:999px;padding:2px 8px;
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.03em}
/* il prezzo pieno resta visibile e barrato: e' il confronto a dare la misura
   dello sconto, il numero nuovo da solo non dice niente */
.buy s,.bott-prezzi s{color:var(--slate);text-decoration-thickness:1.5px;
  font-weight:500;margin-right:5px;opacity:.75}
.buy em.sc,.bott-prezzi em{font-style:normal;color:#C0392B;font-weight:700}
.sconto-nota{margin:6px 0 0;font-family:var(--mono);font-size:10px;
  letter-spacing:.08em;text-transform:uppercase;color:#C0392B}
.bott.in-sconto{border-color:rgba(192,57,43,.3)}
