/* Pizzeria al 59 — carta da forno, verde basilico, rosso pomodoro. Font in locale: Young Serif + Hanken Grotesk. */
:root{
  --paper:#f5ecd9; --paper2:#ecdfc3; --card:#fbf5e8; --ink:#261d17; --muted:#6b5c4a; --line:#d9c7a3;
  --tom:#c4361d; --tom-d:#9a2713; --basil:#2f4a38; --basil-d:#1f3226; --flour:#f8f0de; --sun:#e9a93b; --wa:#2b9d57;
  --serif:"Young Serif",Georgia,serif; --sans:"Hanken Grotesk",system-ui,sans-serif;
  --top:64px; --chips:54px; --r:18px; --w:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + 10px)}
body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.55 var(--sans);-webkit-text-size-adjust:100%;overflow-x:hidden}
body.lock{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;margin:0;letter-spacing:-.01em}
button,input,textarea{font:inherit;color:inherit}
[hidden]{display:none!important}
.ic{width:1.3em;height:1.3em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.big{width:44px;height:44px}
.eyebrow{margin:0 0 8px;font:700 12.5px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--tom)}

/* intestazione */
.top{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:14px;padding:0 max(16px,calc((100vw - var(--w))/2));background:var(--paper);border-bottom:2px solid transparent;transition:border-color .2s}
.top.scrolled{border-color:var(--ink)}
.brand{display:flex;align-items:baseline;gap:6px;text-decoration:none;margin-right:auto;font-family:var(--serif)}
.brand-p{font-size:19px}
.brand-al{font-size:15px;color:var(--muted);font-style:italic}
.brand-n{font-size:34px;line-height:1;color:var(--tom);letter-spacing:-.05em}
.nav{display:flex;gap:22px}
.nav a{text-decoration:none;font-weight:700;font-size:15px}
.nav a:hover{color:var(--tom)}
.nav-cta{background:var(--ink);color:var(--paper);text-decoration:none;font-weight:700;font-size:15px;padding:9px 18px;border-radius:99px}
.nav-cta:hover{background:var(--tom)}
.call{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);color:var(--ink)}
.call:hover{background:var(--ink);color:var(--paper)}
.lang{position:relative}
.lang-b{display:flex;align-items:center;gap:6px;height:42px;padding:0 12px;border-radius:99px;border:2px solid var(--ink);background:none;font-weight:800;font-size:13px;letter-spacing:.06em;cursor:pointer}
.lang-m{position:absolute;right:0;top:48px;list-style:none;margin:0;padding:6px;background:var(--card);border:2px solid var(--ink);border-radius:14px;min-width:170px;box-shadow:4px 4px 0 var(--ink)}
.lang-m button{display:flex;gap:10px;width:100%;padding:9px 12px;border:0;background:none;border-radius:9px;text-align:left;cursor:pointer;font-size:15px}
.lang-m button:hover,.lang-m button.on{background:var(--paper2)}
.lang-m b{width:26px;color:var(--tom)}

/* pulsanti */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 26px;border-radius:99px;font-weight:800;text-decoration:none;border:2px solid var(--ink);cursor:pointer;background:none;white-space:nowrap;transition:transform .12s,box-shadow .12s}
.btn-tom{background:var(--tom);color:#fff;border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}
.btn-tom:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink)}
.btn-ghost{background:transparent;color:inherit}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.btn-wa{background:var(--wa);color:#fff;width:100%;min-height:56px;font-size:17px;box-shadow:3px 3px 0 var(--ink)}

/* hero */
.hero{background:var(--basil);color:var(--flour);position:relative}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:center;padding:56px max(16px,calc((100vw - var(--w))/2)) 70px}
.kicker{margin:0 0 16px;font:700 13px var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--sun)}
.hero h1{font-size:clamp(40px,6.4vw,76px)}
.hero h1 em{color:var(--sun);font-style:italic}
.lead{font-size:19px;opacity:.88;max-width:32em;margin:20px 0 22px}
.status{display:inline-flex;align-items:center;gap:8px;padding:7px 15px 7px 11px;border-radius:99px;font-weight:700;font-size:14.5px;background:rgba(0,0,0,.22);margin-bottom:24px}
.status.is-open .ic{color:#9be2a8}
.status.is-closed .ic{color:var(--sun)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px}
.hero .btn-ghost{border-color:var(--flour);color:var(--flour)}
.hero-art{position:relative;aspect-ratio:1/1.08;max-width:500px;width:100%;margin-left:auto}
.arch{position:absolute;left:4%;top:0;width:70%;height:86%;margin:0;border-radius:999px 999px 22px 22px;overflow:hidden;border:3px solid var(--flour);background:var(--basil-d)}
.arch img,.disc img{width:100%;height:100%;object-fit:cover}
.arch figcaption,.disc figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 12px 10px;font:400 18px var(--serif);text-align:center;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}
.disc{position:absolute;margin:0;border-radius:50%;overflow:hidden;border:3px solid var(--flour)}
.disc figcaption{display:none}
.d1{width:44%;aspect-ratio:1;right:0;top:14%}
.d2{width:36%;aspect-ratio:1;right:10%;bottom:0;border-color:var(--sun)}
.badge{position:absolute;left:-2%;top:2%;width:34%;max-width:150px;z-index:3;transform:rotate(-12deg)}
.badge circle{fill:var(--tom);stroke:var(--flour);stroke-width:2}
.badge text{font:800 10.5px var(--sans);letter-spacing:.14em;fill:var(--flour)}
.badge .bs{color:var(--flour)}
.badge use{stroke:var(--flour);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.scallop{height:20px;background:radial-gradient(circle at 14px -2px,var(--basil) 14px,transparent 15px) 0 0/28px 20px repeat-x;margin-top:-1px}

/* dati in breve */
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;max-width:var(--w);margin:34px auto 0;padding:0 16px}
.facts div{display:grid;grid-template-columns:auto 1fr;column-gap:14px;align-items:center;padding:6px 22px;border-left:2px dotted var(--line)}
.facts div:first-child{border-left:0}
.facts .ic{grid-row:span 2;width:34px;height:34px;color:var(--tom)}
.facts b{font:400 20px var(--serif)}
.facts span{color:var(--muted);font-size:15px}

/* titoli di sezione */
.sec-head{display:flex;flex-wrap:wrap;gap:16px 28px;justify-content:space-between;align-items:end;margin-bottom:22px}
.sec-head h2{font-size:clamp(34px,5vw,54px)}

/* novità */
.news{max-width:var(--w);margin:56px auto 0;padding:0 16px}
.arrows{display:flex;gap:8px}
.arrows button{width:46px;height:46px;border-radius:50%;border:2px solid var(--ink);background:none;font-size:20px;cursor:pointer}
.arrows button:hover{background:var(--ink);color:var(--paper)}
.news-row{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 4px 16px;margin:0 -4px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}
.ncard{flex:0 0 min(270px,78%);scroll-snap-align:start;background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:12px 12px 14px;display:flex;flex-direction:column}
.npic{aspect-ratio:1/1;border-radius:999px 999px 12px 12px;overflow:hidden;background:var(--paper2);margin-bottom:12px}
.npic img{width:100%;height:100%;object-fit:cover}
.ncard h4{font-size:22px}
.ncard p{margin:5px 0 12px;font-size:14.5px;color:var(--muted);line-height:1.4;flex:1}
.nfoot{display:flex;align-items:center;justify-content:space-between}
.nfoot b{font:400 22px var(--serif)}
.nadd{display:inline-flex;align-items:center;gap:6px;height:42px;padding:0 16px;border-radius:99px;border:2px solid var(--ink);background:var(--tom);color:#fff;font-weight:800;font-size:20px;cursor:pointer;box-shadow:2px 2px 0 var(--ink)}
.nadd i{font-style:normal;font-size:15px}
.nadd.on{background:var(--ink)}

/* menu: stile carta stampata */
.menu{max-width:var(--w);margin:64px auto 0;padding:0 16px}
.menu-tools{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
#q{width:min(320px,100%);height:46px;border-radius:99px;border:2px solid var(--ink);background:var(--card);padding:0 20px}
#q:focus{outline:3px solid var(--sun);outline-offset:1px}
.chk{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;cursor:pointer}
.chk input{position:absolute;opacity:0}
.chk i{width:22px;height:22px;border:2px solid var(--ink);border-radius:6px;background:var(--card);display:grid;place-items:center}
.chk input:checked + i{background:var(--tom)}
.chk input:checked + i::after{content:"";width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg) translate(-1px,-1px)}
.chk input:focus-visible + i{outline:3px solid var(--sun)}
.chips-wrap{position:sticky;top:var(--top);z-index:20;margin:0 -16px;padding:0 16px;background:var(--paper);border-block:2px solid var(--ink)}
.chips{display:flex;gap:8px;overflow-x:auto;height:var(--chips);align-items:center;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.chips a{flex:none;padding:7px 16px;border-radius:99px;text-decoration:none;font-weight:700;font-size:15px}
.chips a:hover{background:var(--paper2)}
.chips a.on{background:var(--ink);color:var(--paper)}
.cat{padding-top:42px;scroll-margin-top:calc(var(--top) + var(--chips) + 4px)}
.cat h3{font-size:clamp(32px,4.6vw,46px);display:flex;align-items:baseline;gap:12px;color:var(--tom)}
.cat h3 small{font:700 14px var(--sans);color:var(--muted);border:2px solid var(--line);border-radius:99px;padding:1px 10px}
.cat-note{color:var(--muted);margin:6px 0 0;font-size:15px;font-style:italic}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0 44px;margin-top:10px}
.dish{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;padding:18px 0;border-bottom:2px dotted var(--line);align-content:start}
.dish img{width:84px;height:84px;object-fit:cover;border-radius:50%;border:2px solid var(--ink);grid-row:1 / span 2;background:var(--paper2)}
.dish.nophoto{grid-template-columns:1fr}
.dish-t h4{font-size:22px}
.dish-t p{margin:3px 0 0;font-size:15px;color:var(--muted);line-height:1.4}
.tags{display:flex;gap:6px;margin-top:7px}
.tag{font:800 11px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:2px 9px;border-radius:99px;border:2px solid currentColor}
.t-piccante{color:var(--tom)}
.t-vegetariano,.t-vegano{color:var(--basil)}
details{margin-top:6px;font-size:13.5px;color:var(--muted)}
summary{cursor:pointer;list-style:none;text-decoration:underline dotted;width:max-content}
summary::-webkit-details-marker{display:none}
details p{margin:4px 0 0}
.vars{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:10px 12px;margin-top:8px}
.var{display:flex;align-items:center;gap:10px;padding:5px 6px 5px 14px;border:2px solid var(--ink);border-radius:99px;background:var(--card)}
.var.on{background:var(--ink);color:var(--paper)}
.vl{display:flex;align-items:baseline;gap:8px}
.vl em{font-style:normal;font-size:12px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}
.var.on .vl em{color:#cdbd9f}
.vl b{font:400 19px var(--serif);font-variant-numeric:tabular-nums}
.step{display:inline-flex;align-items:center}
.step button{width:36px;height:36px;border:0;border-radius:50%;background:var(--tom);color:#fff;font-size:21px;line-height:1;cursor:pointer;font-weight:700}
.step [data-a=dec]{background:transparent;color:inherit}
.step output{min-width:26px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.var:not(.on) .step output,.var:not(.on) .step [data-a=dec]{display:none}
.note{margin:42px 0 0;padding:18px 22px;border:2px dashed var(--line);border-radius:var(--r);color:var(--muted);font-size:14.5px}
.none{text-align:center;color:var(--muted);padding:40px 0}

/* impasto */
.dough{background:var(--tom);color:var(--flour);margin-top:80px;padding:72px 16px;position:relative}
.dough::before,.dough::after{content:"";position:absolute;left:0;right:0;height:20px}
.dough::before{top:-19px;background:radial-gradient(circle at 14px 20px,var(--tom) 14px,transparent 15px) 0 0/28px 20px repeat-x}
.dough-in{max-width:var(--w);margin:0 auto}
.dough .eyebrow{color:var(--sun)}
.dough h2{font-size:clamp(34px,5.4vw,60px);max-width:14em}
.dough-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.dough-grid div{border-top:2px solid rgba(248,240,222,.5);padding-top:20px}
.dough-grid .ic{width:42px;height:42px;color:var(--sun);stroke-width:1.5}
.dough-grid h3{font-size:26px;margin:14px 0 8px}
.dough-grid p{margin:0;opacity:.9}

/* come ordinare */
.how{padding:76px 16px 70px}
.how-in{max-width:var(--w);margin:0 auto}
.how h2{font-size:clamp(34px,5vw,54px)}
.steps{list-style:none;margin:34px 0 34px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;counter-reset:s}
.steps li{background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:22px;box-shadow:5px 5px 0 var(--ink);position:relative}
.steps span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--sun);border:2px solid var(--ink);font:400 22px var(--serif);margin-bottom:14px}
.steps h3{font-size:26px;margin-bottom:6px}
.steps p{margin:0;color:var(--muted)}
.how .btn-ghost{border-color:var(--ink)}
.how .btn-ghost:hover{background:var(--paper2)}

/* dove */
.dove{max-width:var(--w);margin:0 auto;padding:30px 16px 80px;display:grid;grid-template-columns:1fr 1.1fr;gap:40px}
.dove h2{font-size:clamp(34px,5vw,52px);margin-bottom:14px}
.dove h3{font-size:26px;margin:26px 0 8px}
.addr{display:flex;gap:10px;align-items:flex-start;font-size:19px;margin:0 0 12px;font-weight:600}
.addr .ic{color:var(--tom);margin-top:3px}
.about{color:var(--muted);margin:0}
.hours{list-style:none;margin:0;padding:0}
.hours li{display:flex;align-items:baseline;gap:8px;padding:7px 10px;border-radius:10px;font-variant-numeric:tabular-nums}
.hours li i{flex:1;border-bottom:2px dotted var(--line);transform:translateY(-4px)}
.hours li.today{background:var(--ink);color:var(--paper);font-weight:700}
.hours li.today i{border-color:#8f8068}
.hours-note{font-size:14px;color:var(--muted);margin:10px 0 0}
.links{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.lk{padding:10px 18px;border-radius:99px;border:2px solid var(--ink);text-decoration:none;font-weight:700;font-size:15px}
.lk:hover{background:var(--ink);color:var(--paper)}
.map{position:relative;min-height:420px;border-radius:var(--r);overflow:hidden;border:2px solid var(--ink);background:var(--paper2);box-shadow:6px 6px 0 var(--ink)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:sepia(.35) saturate(.9) hue-rotate(-8deg)}
.map-ph{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:28px;text-align:center;color:var(--muted)}
.map-ph .ic{color:var(--tom)}
.map.blocked iframe{visibility:hidden}
.map.blocked .map-ph{display:flex}
.map-ph a{font-size:15px;font-weight:700}

/* piè di pagina */
.foot{background:var(--basil-d);color:var(--flour);padding:0 16px 120px;overflow:hidden;position:relative}
.foot-big{font:400 clamp(160px,30vw,360px)/.8 var(--serif);letter-spacing:-.07em;color:transparent;-webkit-text-stroke:2px rgba(248,240,222,.28);text-align:center;padding-top:50px;user-select:none}
.foot-in{max-width:var(--w);margin:-14px auto 0;display:flex;flex-wrap:wrap;gap:16px 40px;justify-content:space-between;position:relative}
.foot-in p{margin:4px 0 0;opacity:.8;font-size:15px}
.foot-links{display:flex;gap:22px;align-items:flex-start;font-size:15px}
.foot-links a{opacity:.85}

/* barra e pannello ordine */
.cartbar{position:fixed;z-index:40;left:50%;transform:translateX(-50%);bottom:max(16px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;min-height:58px;padding:0 20px;border:2px solid var(--ink);border-radius:99px;background:var(--sun);color:var(--ink);font-weight:800;box-shadow:4px 4px 0 var(--ink);cursor:pointer;width:min(460px,calc(100% - 32px))}
.cartbar .ic{width:26px;height:26px}
.cb-l{flex:1;text-align:left}
.cb-count{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--sun);font-size:15px;font-variant-numeric:tabular-nums}
.cb-tot{font:400 20px var(--serif)}
.sheet-bg{position:fixed;inset:0;z-index:50;background:rgba(38,29,23,.6);opacity:0;transition:opacity .2s}
.sheet-bg.in{opacity:1}
.sheet{position:fixed;z-index:51;right:0;top:0;bottom:0;width:min(450px,100%);background:var(--paper);border-left:2px solid var(--ink);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .22s ease}
.sheet.in{transform:none}
.sheet-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:2px solid var(--ink)}
.sheet-head h3{font-size:28px}
.sheet-head button{width:42px;height:42px;border-radius:50%;border:2px solid var(--ink);background:none;font-size:26px;line-height:1;cursor:pointer}
.sheet-body{overflow-y:auto;padding:14px 20px 30px;flex:1}
.lines{list-style:none;margin:0;padding:0}
.lines li{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center;padding:12px 0;border-bottom:2px dotted var(--line)}
.lines .ln b{font:400 19px var(--serif)}
.lines small{color:var(--muted);font-size:13px;margin-left:4px}
.lines .lp{grid-column:1;font-variant-numeric:tabular-nums;color:var(--muted);font-size:14px}
.lines .step{grid-row:1 / span 2;grid-column:2;border:2px solid var(--ink);border-radius:99px;padding:2px}
.lines .step [data-a=dec]{color:var(--ink)}
.empty{color:var(--muted)}
.empty a{color:var(--tom);font-weight:700}
#form{display:flex;flex-direction:column;gap:13px;margin-top:18px}
#form.dim{opacity:.45;pointer-events:none}
#form label{display:flex;flex-direction:column;gap:5px;font-size:13.5px;font-weight:700}
#form input,#form textarea{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:11px 14px;font-weight:400;font-size:16px}
#form input:focus,#form textarea:focus{outline:3px solid var(--sun);outline-offset:0}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:4px;border-radius:99px;border:2px solid var(--ink);background:var(--card)}
.seg button{border:0;background:none;border-radius:99px;min-height:42px;font-weight:800;cursor:pointer}
.seg button.on{background:var(--ink);color:var(--paper)}
.tot{margin:6px 0 0;display:flex;flex-direction:column;gap:4px}
.tot div{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}
.tot dt{color:var(--muted)} .tot dd{margin:0}
.tot .grand{font:400 25px var(--serif);border-top:2px solid var(--ink);padding-top:8px;margin-top:6px}
.tot .grand dt{color:var(--ink)}
.small{font-size:14px;color:var(--muted);text-align:center;margin:0}
.small a{font-weight:700}

/* cookie */
.cb{position:fixed;z-index:60;left:12px;right:12px;bottom:12px;max-width:580px;margin:0 auto;background:var(--card);border:2px solid var(--ink);border-radius:16px;padding:12px 14px;display:flex;align-items:center;gap:12px;font-size:13.5px;box-shadow:4px 4px 0 var(--ink)}
.cb p{margin:0;flex:1}
.cb a{color:var(--tom);font-weight:700}
.cb-btns{display:flex;gap:6px}
.cb button{border-radius:99px;min-height:38px;padding:0 16px;font-weight:800;cursor:pointer;border:2px solid var(--ink);background:none}
.cb .cb-yes{background:var(--ink);color:var(--paper)}

/* privacy */
.doc{max-width:760px;margin:0 auto;padding:40px 16px 80px}
.doc h1{font-size:44px;margin:14px 0 8px}
.doc h2{font-size:26px;margin:30px 0 8px}
.doc p,.doc li{color:var(--muted)}
.doc .back{color:var(--tom);font-weight:700}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:34px;gap:28px}
  .hero-art{margin:0 auto;max-width:400px;order:-1}
  .dove{grid-template-columns:1fr}
  .grid{grid-template-columns:1fr}
  .dough-grid,.steps{grid-template-columns:1fr}
  .facts{grid-template-columns:1fr;gap:10px}
  .facts div{border-left:0;border-top:2px dotted var(--line);padding:12px 6px}
  .facts div:first-child{border-top:0}
  .nav{display:none}
}
@media (max-width:520px){
  .brand-p{font-size:16px}
  .nav-cta{display:none}
  .hero-cta .btn{flex:1 1 100%}
  .sheet{width:100%}
  .cb{flex-direction:column;align-items:stretch}
  .cb-btns{justify-content:flex-end}
  .dish img{width:72px;height:72px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* prenotazione, recensioni, servizi */
.book{background:var(--basil);color:var(--flour);padding:64px 16px}
.book-in{max-width:var(--w);margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}
.book .eyebrow{color:var(--sun)}
.book h2{font-size:clamp(34px,5vw,54px)}
.book-t{max-width:34em;font-size:18px;opacity:.9;margin:12px 0 22px}
.book-n{font-size:13.5px;opacity:.7;margin:14px 0 0}
.book .btn-ghost{border-color:var(--flour);color:var(--flour)}
.book-art{width:200px;height:200px;fill:none;stroke:var(--sun);stroke-width:.9;stroke-linecap:round;stroke-linejoin:round;opacity:.9}
.reviews{max-width:var(--w);margin:0 auto;padding:72px 16px 10px}
.rev-in h2{font-size:clamp(34px,5vw,52px);margin-bottom:24px}
.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:26px}
.rev{margin:0;background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:22px;box-shadow:5px 5px 0 var(--ink);display:flex;flex-direction:column;gap:12px}
.rev-s{display:flex;align-items:baseline;gap:8px;color:var(--tom)}
.rev-s b{font:400 44px/1 var(--serif)}
.rev-s span{font-size:14px;font-weight:700;color:var(--muted)}
.rev blockquote{margin:0;font:400 21px/1.35 var(--serif);flex:1}
.rev figcaption{font-size:14px;color:var(--muted)}
.rev figcaption b{color:var(--ink)}
.info{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.info li{display:flex;gap:12px;align-items:center;font-weight:600}
.info .ic{color:var(--tom);width:24px;height:24px}
@media (max-width:900px){.book-in{grid-template-columns:1fr}.book-art{display:none}.rev-grid{grid-template-columns:1fr}}

/* recensioni a scorrimento, galleria del locale, barra azioni su telefono */
.rev-grid{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 6px 18px;margin:0 -6px 8px;scrollbar-width:thin;scrollbar-color:var(--ink) transparent}
.rev{flex:0 0 min(360px,84%);scroll-snap-align:start}
.rev-in .sec-head{margin-bottom:12px}
.stars{display:flex;gap:2px;color:var(--sun)}
.stars .ic{width:26px;height:26px;fill:currentColor;stroke:var(--ink);stroke-width:1.4}
.rev blockquote{font:400 19px/1.4 var(--serif)}
.rev figcaption{font:700 15px var(--sans);color:var(--ink)}
.gallery{max-width:var(--w);margin:0 auto;padding:60px 16px 20px}
.gal-head{max-width:36em;margin-bottom:26px}
.gal-head h2{font-size:clamp(34px,5vw,52px);margin-bottom:10px}
.gal-head p:last-child{color:var(--muted);margin:0;font-size:18px}
.gal{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:14px}
.gal img{width:100%;height:100%;object-fit:cover;border:2px solid var(--ink);border-radius:var(--r);background:var(--paper2)}
.gal .g1{grid-row:span 2;border-radius:999px 999px var(--r) var(--r)}
.gal .g4{grid-column:span 2}
.gal .g5{grid-row:span 2}
.dock{display:none}
@media (max-width:900px){
  .dock{position:fixed;z-index:35;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border-top:2px solid var(--ink);padding-bottom:env(safe-area-inset-bottom)}
  .dock a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 4px 8px;text-decoration:none;font-weight:800;font-size:13px}
  .dock a + a{border-left:2px dotted var(--line)}
  .dock .ic{width:24px;height:24px;color:var(--tom)}
  body.has-cart .dock{display:none}
  .foot{padding-bottom:110px}
  .gal{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}
  .gal .g1{order:1;grid-row:span 2}
  .gal .g2{order:2}
  .gal .g3{order:3}
  .gal .g4{order:4;grid-column:span 2}
  .gal .g5{order:5;grid-column:span 2;grid-row:auto}
}

/* scorrimento orizzontale: dito, mouse (trascinamento), rotella; barra di avanzamento */
.hscroll{cursor:grab;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.hscroll.dragging{cursor:grabbing;scroll-snap-type:none!important;scroll-behavior:auto!important;user-select:none}
.hscroll img,.hscroll a{-webkit-user-drag:none;user-select:none}
.sprog{position:relative;height:6px;border-radius:99px;background:var(--paper2);border:1.5px solid var(--ink);margin:2px 4px 0;overflow:hidden}
.sprog i{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--ink)}
.news-row,.rev-grid{scrollbar-width:none}
.news-row::-webkit-scrollbar,.rev-grid::-webkit-scrollbar{display:none}
.ship{margin:0;padding:10px 14px;border-radius:12px;background:var(--paper2);font-size:14px;font-weight:600;text-align:center}
.ship.warn{background:#f6d9d0;color:var(--tom-d)}
#send:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}

/* menu a una categoria per volta */
.chips button{flex:none;display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:99px;border:0;background:none;font-weight:700;font-size:15px;cursor:pointer;color:var(--ink)}
.chips button small{font:700 12px var(--sans);color:var(--muted)}
.chips button:hover{background:var(--paper2)}
.chips button.on{background:var(--ink);color:var(--paper)}
.chips button.on small{color:#cdbd9f}
.chips.off{opacity:.55}
.more{display:block;width:100%;margin:18px 0 0;min-height:52px;border-radius:99px;border:2px dashed var(--ink);background:none;font-weight:800;font-size:16px;cursor:pointer}
.more:hover{background:var(--ink);color:var(--paper);border-style:solid}
.zone-hint{font-weight:500;color:var(--muted);font-size:13px}
.dish-t h4 .code{margin-left:8px;font:700 12px var(--sans);color:var(--muted);border:1.5px solid var(--line);border-radius:99px;padding:1px 8px;vertical-align:middle;letter-spacing:.04em}

/* recensioni: nome sopra le stelle, link staccato dalla barra */
.rev{gap:8px}
.rev figcaption{font:400 22px/1.15 var(--serif);color:var(--ink);margin-bottom:0}
.rev .stars{margin-bottom:6px}
.rev-in .sprog{margin-bottom:0}
#revAll{display:inline-flex;margin-top:30px}

/* recensioni in loop: niente aggancio ai riquadri (il movimento è continuo) */
.rev-grid{scroll-snap-type:none;scroll-behavior:auto}
.rev{scroll-snap-align:none}
.deliv-note{display:flex;gap:8px;align-items:flex-start;margin:6px 0 0;font-size:14.5px;font-weight:600}
.deliv-note .ic{color:var(--tom);margin-top:2px}
.reviews{padding-bottom:84px}

/* prenotazione tavolo: modulo sul sito */
.book-in{grid-template-columns:1fr minmax(320px,460px);align-items:start;gap:40px}
.book-h{display:flex;gap:8px;align-items:flex-start;font-size:14.5px;font-weight:600;margin:6px 0 0}
.book-h .ic{color:var(--sun);margin-top:2px}
.book-n{opacity:.85}
.bform{background:var(--paper);color:var(--ink);border:2px solid var(--ink);border-radius:var(--r);padding:22px;box-shadow:6px 6px 0 var(--ink);display:flex;flex-direction:column;gap:13px}
.bform h3{font-size:26px}
.bform label{display:flex;flex-direction:column;gap:5px;font-size:13.5px;font-weight:700}
.bform input,.bform select,.bform textarea{background:var(--card);border:2px solid var(--ink);border-radius:12px;padding:11px 14px;font-weight:400;font-size:16px;width:100%;min-height:48px}
.bform select:disabled{opacity:.5}
.bform input:focus,.bform select:focus,.bform textarea:focus{outline:3px solid var(--sun);outline-offset:0}
.b-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.b-warn{margin:0;padding:10px 14px;border-radius:12px;background:#f6d9d0;color:var(--tom-d);font-size:14px;font-weight:600}
.b-note{margin:0;font-size:13.5px;color:var(--muted);text-align:center}
@media (max-width:900px){.book-in{grid-template-columns:1fr}}
@media (max-width:420px){.b-row{grid-template-columns:1fr}}

/* menu: vetrina a schede + vista elenco */
.menu-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-top:18px}
.vt{display:inline-flex;border:2px solid var(--ink);border-radius:99px;padding:3px;background:var(--card)}
.vt button{border:0;background:none;border-radius:99px;min-height:38px;padding:0 18px;font-weight:800;cursor:pointer}
.vt button.on{background:var(--ink);color:var(--paper)}
.menu-bar .btn{min-height:46px;padding:0 20px;box-shadow:3px 3px 0 var(--ink)}
#menuBody[data-view=cards] .grid{display:none}
#menuBody[data-view=list] .gcards{display:none}
.gcards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:16px}
.gcard{background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:10px 10px 12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:transform .15s,box-shadow .15s}
.gcard:hover{transform:translateY(-3px);box-shadow:4px 4px 0 var(--ink)}
.gcard:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.gpic{aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--paper2);display:grid;place-items:center;border:2px solid var(--ink)}
.gpic img{width:100%;height:100%;object-fit:cover}
.gpic.nophoto .ic{width:42%;height:42%;color:var(--tom);stroke-width:1.5}
.gcard h4{font-size:19px;line-height:1.15}
.gcard .code{margin-left:6px;font:700 11px var(--sans);color:var(--muted);border:1.5px solid var(--line);border-radius:99px;padding:1px 7px;vertical-align:middle}
.gfoot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;gap:6px}
.gfoot b{font:400 18px var(--serif)}
.gadd{height:38px;padding:0 12px;font-size:20px}
@media (max-width:900px){.gcards{grid-template-columns:repeat(2,1fr);gap:12px}.gcard h4{font-size:17px}}

/* vetrina a schermo intero */
.cartbar{z-index:46}
body.stage-open .dock{display:none}
.stage{position:fixed;inset:0;z-index:44;background:var(--st,#2a1a14);color:var(--flour);display:flex;flex-direction:column;opacity:0;transition:opacity .25s;overflow:hidden}
.stage.in{opacity:1}
.st-wipe{position:absolute;inset:0;z-index:0;pointer-events:none}
.st-top{position:relative;z-index:3;display:flex;align-items:center;gap:12px;padding:14px max(16px,calc((100vw - var(--w))/2))}
.st-x{width:46px;height:46px;border-radius:50%;border:2px solid var(--flour);background:none;color:var(--flour);display:grid;place-items:center;cursor:pointer;flex:none}
.st-x .ic{width:22px;height:22px}
.st-cats{flex:1;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.st-cats::-webkit-scrollbar{display:none}
.st-cats button{flex:none;border:2px solid rgba(248,240,222,.35);background:none;color:var(--flour);border-radius:99px;padding:7px 16px;font-weight:700;font-size:15px;cursor:pointer}
.st-cats button.on{background:var(--flour);color:var(--ink);border-color:var(--flour)}
.st-count{flex:none;font:700 14px var(--sans);letter-spacing:.08em;opacity:.8;font-variant-numeric:tabular-nums}
.st-main{position:relative;z-index:2;flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:24px;align-items:center;padding:0 max(16px,calc((100vw - var(--w))/2));cursor:grab;touch-action:pan-y;user-select:none}
.st-copy{max-width:36em;max-height:100%;overflow-y:auto;padding:8px 0;scrollbar-width:none}
.st-k{margin:0 0 10px;font:700 13px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--sun)}
.st-copy h2{font-size:clamp(40px,7.5vw,104px);line-height:1}
.st-d{font-size:clamp(16px,1.6vw,21px);opacity:.88;margin:14px 0 0}
.st-copy .tags{margin-top:12px}
.stage .tag{color:var(--flour)}
.st-vars{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 14px}
.stage .var{background:rgba(255,255,255,.1);border-color:var(--flour);color:var(--flour)}
.stage .var .vl em{color:#d8c9ab}
.stage .var.on{background:var(--flour);color:var(--ink)}
.stage .var.on .vl em{color:var(--muted)}
.stage .step [data-a=dec]{color:inherit}
.st-al{font-size:13px;opacity:.7;margin:0}
.st-art{position:relative;height:100%;display:grid;place-items:center;min-height:0}
.st-pic{margin:0;position:absolute;width:min(88%,62vh);aspect-ratio:1;border-radius:50%;overflow:hidden;box-shadow:0 40px 90px rgba(0,0,0,.5);border:5px solid rgba(248,240,222,.92);background:rgba(255,255,255,.08);display:grid;place-items:center}
.st-pic img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.st-pic.nophoto .ic{width:42%;height:42%;color:var(--sun);stroke-width:1.2}
.st-nav{position:relative;z-index:3;display:flex;align-items:center;gap:16px;padding:12px max(16px,calc((100vw - var(--w))/2)) 22px}
.st-arrow{width:60px;height:60px;border-radius:50%;border:2px solid var(--flour);background:none;color:var(--flour);display:grid;place-items:center;cursor:pointer;flex:none}
.st-arrow .ic{width:26px;height:26px}
.st-arrow:not(.next) .ic{transform:scaleX(-1)}
.st-arrow:hover{background:var(--flour);color:var(--ink)}
.st-prog{flex:1;height:5px;border-radius:99px;background:rgba(248,240,222,.25);overflow:hidden}
.st-prog i{display:block;height:100%;width:0;background:var(--sun);transition:width .5s}
@media (max-width:900px){
  .st-main{grid-template-columns:1fr;grid-template-rows:minmax(0,40%) minmax(0,1fr);gap:8px;align-content:start}
  .st-art{order:-1}
  .st-pic{width:auto;height:min(100%,70vw);max-width:100%}
  .st-copy h2{font-size:clamp(34px,10vw,56px)}
  .st-nav{padding-bottom:88px}
}

/* inizio del sito: video verticale in cornice ad arco */
.hero-art.has-video{aspect-ratio:auto;max-width:none;width:min(100%,380px);height:min(76vh,680px);margin-left:auto}
.hero-art.has-video .big59{display:none}
.vidwrap{position:absolute;inset:0;margin:0;border-radius:999px 999px 24px 24px;overflow:hidden;border:3px solid var(--flour);background:var(--basil-d);box-shadow:0 26px 60px rgba(0,0,0,.35)}
.vidwrap video{width:100%;height:100%;object-fit:cover;display:block}
.vpause{position:absolute;right:12px;bottom:12px;width:40px;height:40px;border-radius:50%;border:2px solid var(--flour);background:rgba(23,18,15,.55);color:var(--flour);display:grid;place-items:center;cursor:pointer}
.vpause .ic{width:18px;height:18px}
.vpause.paused .ic{display:none}
.vpause.paused::after{content:"";border-left:11px solid var(--flour);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.hero-art.has-video .badge{left:-14%;top:6%}
@media (max-width:900px){
  .hero-art.has-video{width:min(74vw,320px);height:min(58vh,520px);margin:0 auto}
  .hero-art.has-video .badge{left:-10%;top:4%}
}

/* sezioni del menu: schede in alto + schermo intero (come Tombacco) */
.scard{flex:0 0 min(250px,70%);scroll-snap-align:start;background:var(--tint,#2a1a14);color:var(--flour);border:2px solid var(--ink);border-radius:22px;padding:18px 18px 20px;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;transition:transform .18s,box-shadow .18s;text-align:center}
.scard:hover{transform:translateY(-4px);box-shadow:5px 5px 0 var(--ink)}
.scard:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.spic{width:min(190px,100%);aspect-ratio:1;border-radius:50%;overflow:hidden;border:4px solid rgba(248,240,222,.92);box-shadow:0 14px 30px rgba(0,0,0,.35)}
.spic img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.scard h4{font-size:26px;line-height:1.1;margin-top:4px}
.scard p{margin:0;font-size:14px;opacity:.8;font-weight:600}
.stage{opacity:1;transition:none}
.st-set{position:absolute;inset:0}
.st-set .st-pic{margin:0;position:absolute;border-radius:50%;overflow:hidden;border:5px solid rgba(248,240,222,.92);box-shadow:0 30px 70px rgba(0,0,0,.45);background:rgba(255,255,255,.08);display:block;aspect-ratio:1}
.st-set .p0{width:min(78%,62vh);left:0;top:50%;transform:translateY(-50%)}
.st-set .p1{width:min(34%,27vh);right:0;top:4%;border-color:var(--sun)}
.st-set .p2{width:min(28%,22vh);right:8%;bottom:6%}
.st-set .st-pic img{width:100%;height:100%;object-fit:cover;pointer-events:none}
.st-cta{margin-top:24px}
.st-cta .ic{width:22px;height:22px}
@media (max-width:900px){
  .st-set .p0{width:auto;height:86%;left:4%}
  .st-set .p1{width:auto;height:38%;right:2%;top:2%}
  .st-set .p2{width:auto;height:30%;right:16%;bottom:0}
}

/* menu in pagina: schermata a tutto schermo per sezione, piatti sotto */
.menu{max-width:none;margin:0;padding:0}
.menu-wrap{max-width:var(--w);margin:0 auto;padding:40px 16px 20px}
.mstage{position:relative;inset:auto;z-index:auto;height:calc(100svh - var(--top));min-height:560px;max-height:980px;scroll-margin-top:var(--top)}
html{scroll-snap-type:y proximity}
.mstage{scroll-snap-align:start}
.st-cta .ic.down{transform:rotate(90deg)}
.st-top{padding-top:18px}
.mstage .st-main{padding-bottom:6px}
/* come ordinare: domicilio / asporto */
.ocards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:30px 0 4px}
.ocard{display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:center;text-align:left;background:var(--card);border:2px solid var(--ink);border-radius:var(--r);padding:20px 22px;box-shadow:5px 5px 0 var(--ink);cursor:pointer;transition:transform .15s,box-shadow .15s}
.ocard:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink)}
.ocard .ic{grid-row:span 2;width:44px;height:44px;color:var(--tom)}
.ocard b{font:400 26px var(--serif)}
.ocard span{color:var(--muted);font-size:14.5px;line-height:1.35}
@media (max-width:900px){.ocards{grid-template-columns:1fr}.mstage{min-height:520px}}
@media (max-width:900px){
  .mstage .st-nav{padding:8px 16px 14px}
  .mstage .st-main{grid-template-rows:minmax(0,46%) minmax(0,1fr)}
  .mstage .st-arrow{width:52px;height:52px}
}

/* "Vedi ordine" subito sotto il menu */
.orderband{padding:34px 16px 6px;display:flex;justify-content:center}
.orderband .btn{min-height:58px;padding:0 34px;font-size:18px;gap:12px}
.orderband .ic{width:26px;height:26px}
.oc-n{display:grid;place-items:center;min-width:30px;height:30px;border-radius:50%;background:var(--ink);color:var(--flour);font-size:15px}

/* una sola immagine grande per sezione */
.st-set .p0{width:min(92%,66vh);left:50%;transform:translate(-50%,-50%)}
@media (max-width:900px){.st-set .p0{width:auto;height:92%;left:50%;top:50%;transform:translate(-50%,-50%)}}

/* ===== menu compatto: la schermata di sezione contiene anche i piatti (colonna scorrevole) ===== */
.mstage .st-main{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:28px;align-items:stretch;padding-bottom:6px}
.st-left{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0}
.mstage .st-art{flex:1 1 0;height:auto;min-height:160px}
.mstage .st-copy{flex:none;max-width:none;text-align:center;padding:12px 0 4px;overflow:visible}
.mstage .st-copy h2{font-size:clamp(34px,4.6vw,62px)}
.st-set .p0{height:min(100%,92vw);width:auto;aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%)}
.st-list{min-height:0;min-width:0;overflow-y:auto;padding:0 8px 24px 0;scrollbar-width:thin;scrollbar-color:rgba(248,240,222,.45) transparent;overscroll-behavior:auto}
.st-tools{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;padding:2px 0 12px;background:var(--st,#2a1a14)}
.st-tools #q{flex:1 1 200px;min-width:0;width:auto;background:rgba(255,255,255,.1);border:2px solid rgba(248,240,222,.5);color:var(--flour)}
.st-tools #q::placeholder{color:#cdbd9f}
.st-tools .chk{color:var(--flour)}
.st-tools .chk i{border-color:var(--flour);background:transparent}
#menuBody:not(.searching) .cat h3,#menuBody:not(.searching) .cat-note{display:none}
.stage .cat{padding-top:0}
.stage .cat + .cat{padding-top:18px}
.stage .cat h3{color:var(--sun);font-size:24px}
.stage .cat h3 small{color:#d8c9ab;border-color:rgba(248,240,222,.35)}
.stage .grid{grid-template-columns:1fr;gap:10px;margin-top:8px}
.stage .dish{background:rgba(255,255,255,.07);border:2px solid rgba(248,240,222,.28);border-radius:16px;padding:10px 12px;color:var(--flour)}
.stage .dish img{width:64px;height:64px;border-color:var(--flour);background:rgba(255,255,255,.1)}
.stage .dish-t h4{font-size:20px}
.stage .dish-t p{color:#d8c9ab}
.stage .dish .code{color:#d8c9ab;border-color:rgba(248,240,222,.35)}
.stage details,.stage summary{color:#d8c9ab}
.stage .vars{border-top:1px dashed rgba(248,240,222,.28);padding-top:8px;margin-top:4px}
.stage .note{background:transparent;border:2px dashed rgba(248,240,222,.3);color:#d8c9ab;margin-top:18px}
.stage .none{color:#d8c9ab}
@media (max-width:900px){
  .mstage{height:calc(100svh - var(--top) - 64px);min-height:480px}
  .mstage .st-top{padding:10px 16px 6px}
  .mstage .st-main{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);gap:8px;padding:0 16px 4px}
  .st-left{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:14px}
  .mstage .st-art{height:92px;min-height:0;flex:none}
  .st-set .p0{height:100%}
  .mstage .st-copy{text-align:left;padding:0}
  .mstage .st-copy h2{font-size:30px}
  .mstage .st-copy .st-k{margin-bottom:4px}
  .st-tools{padding-bottom:8px}
  .mstage .st-nav{padding:6px 16px 10px}
  .mstage .st-arrow{width:46px;height:46px}
}

/* menu a tutto schermo vero: l'intestazione si nasconde mentre la schermata è in vista */
.top{transition:transform .35s ease,border-color .2s}
body.in-menu .top{transform:translateY(-100%)}
.mstage{height:100svh;max-height:none;min-height:560px;scroll-margin-top:0}
#menu{scroll-margin-top:calc(var(--top) * -1)}
.mstage .st-top{padding-top:max(14px,env(safe-area-inset-top))}
@media (max-width:900px){.mstage{height:calc(100svh - 64px);min-height:480px}.mstage .st-top{padding-top:max(10px,env(safe-area-inset-top))}}

/* ===== menu v3: schermata grande con immagine rappresentativa + piatti subito sotto, nello stesso blocco ===== */
.mstage{height:auto;min-height:0;max-height:none;display:block;overflow:hidden;scroll-margin-top:calc((var(--top) + 10px) * -1)}
.mstage .st-hero{position:relative;z-index:2;height:100svh;min-height:560px;display:flex;flex-direction:column;scroll-snap-align:start;scroll-margin-top:calc((var(--top) + 10px) * -1)}
.mstage{scroll-snap-align:none}
.mstage .st-main{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:24px;align-items:center;flex:1;min-height:0;padding:0 max(16px,calc((100vw - var(--w))/2)) 6px;cursor:grab}
.mstage .st-art{flex:none;height:100%;min-height:0}
.mstage .st-copy{text-align:left;max-width:36em;max-height:100%;overflow:visible;padding:8px 0}
.mstage .st-copy h2{font-size:clamp(40px,7vw,96px)}
.mstage .st-copy .st-d{margin-top:14px}
.st-set .p0{width:min(90%,66vh);height:auto;aspect-ratio:1;left:50%;top:50%;transform:translate(-50%,-50%)}
.mstage .st-nav{padding:12px max(16px,calc((100vw - var(--w))/2)) 22px}
.st-dishes{position:relative;z-index:2;padding:30px max(16px,calc((100vw - var(--w))/2)) 48px;border-top:2px solid rgba(248,240,222,.18)}
.st-dh{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.st-dh b{flex:1;text-align:center;font:400 clamp(28px,4vw,42px)/1.1 var(--serif)}
.st-dh .st-arrow{width:50px;height:50px}
.st-list{max-height:min(82svh,780px);padding:0 8px 8px 0}
.stage .grid{grid-template-columns:1fr 1fr;gap:12px 14px}
@media (max-width:900px){
  .mstage .st-hero{height:calc(100svh - 64px);min-height:480px}
  .mstage .st-main{grid-template-columns:1fr;grid-template-rows:minmax(0,56%) auto;align-content:start;gap:6px;padding:0 16px 4px}
  .mstage .st-art{order:-1}
  .st-set .p0{width:auto;height:94%}
  .mstage .st-copy{text-align:center}
  .mstage .st-copy h2{font-size:clamp(34px,10vw,52px)}
  .mstage .st-copy .st-d{margin-top:8px;font-size:15px}
  .mstage .st-cta{margin-top:12px}
  .stage .grid{grid-template-columns:1fr}
  .st-list{max-height:76svh}
}

/* ===== menu v4: frecce laterali chiare, niente aggancio, "Vedi ordine" sempre presente ===== */
html{scroll-snap-type:none}
.mstage .st-hero{scroll-snap-align:none}
.mstage .st-main{padding-left:max(96px,calc((100vw - var(--w))/2));padding-right:max(96px,calc((100vw - var(--w))/2))}
.st-side{position:absolute;top:46%;transform:translateY(-50%);z-index:4;display:flex;flex-direction:column;align-items:center;gap:8px;border:0;background:none;color:var(--flour);cursor:pointer;font:700 12px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase;max-width:104px;text-align:center}
.st-side .ic{width:30px;height:30px;padding:13px;box-sizing:content-box;border:2px solid var(--flour);border-radius:50%;background:rgba(0,0,0,.22);transition:background .15s,color .15s}
.st-side:hover .ic,.st-side:focus-visible .ic{background:var(--flour);color:var(--ink)}
.st-side span{opacity:.85}
.st-side.prev{left:max(12px,1.6vw)}
.st-side.next{right:max(12px,1.6vw)}
.st-side.prev .ic{transform:scaleX(-1)}
.mstage .st-nav{padding:10px max(16px,calc((100vw - var(--w))/2)) 18px}
.cartbar{width:auto;min-width:210px;padding:0 20px 0 12px}
body.has-cart .dock{display:grid}
.dock a{position:relative}
.dock-n{position:absolute;top:4px;left:calc(50% + 6px);min-width:20px;height:20px;border-radius:99px;background:var(--tom);color:#fff;font-size:12px;display:grid;place-items:center;padding:0 5px}
@media (max-width:900px){
  .cartbar{display:none}
  .dock{display:grid}
  .mstage .st-main{padding-left:16px;padding-right:16px}
  .st-side{top:25%}
  .st-side span{display:none}
  .st-side .ic{width:24px;height:24px;padding:10px;background:rgba(0,0,0,.3)}
  .st-side.prev{left:8px}.st-side.next{right:8px}
}
@media (max-width:900px){.st-set .p0{height:76%}}

/* titolo del menu, più aria sotto la striscia iniziale, "Vieni a trovarci" su fondo rosso a festone */
.facts{margin:48px auto 72px}
.facts div{padding:12px 22px}
.menu-title{max-width:var(--w);margin:0 auto;padding:6px 16px 26px;text-align:center}
.menu-title h2{font-size:clamp(36px,6vw,68px)}
#menu{scroll-margin-top:0}
.book{background:var(--tom);position:relative;margin-top:84px;padding-top:76px}
.book::before{content:"";position:absolute;left:0;right:0;top:-19px;height:20px;background:radial-gradient(circle at 14px 20px,var(--tom) 14px,transparent 15px) 0 0/28px 20px repeat-x}
.book .eyebrow,.book-h .ic{color:var(--sun)}
.book .btn-ghost{border-color:var(--flour);color:var(--flour)}
.book .btn-ghost:hover{background:rgba(255,255,255,.14)}
@media (max-width:900px){.facts{margin:36px auto 56px}.book{margin-top:70px}}

/* nomi nelle recensioni più piccoli; mappa più compatta su computer */
.rev figcaption{font:700 16px/1.2 var(--sans);color:var(--muted);letter-spacing:.01em}
.map{min-height:0}
@media (min-width:901px){
  .dove{grid-template-columns:1.15fr .85fr;align-items:start}
  .map{height:360px;max-height:360px;box-shadow:5px 5px 0 var(--ink)}
}

/* video come sfondo di tutta la schermata iniziale */
.hero.has-bgvideo{position:relative;overflow:hidden;grid-template-columns:1fr;min-height:min(100svh,780px);align-content:center;padding-top:72px;padding-bottom:96px}
.hero.has-bgvideo .hero-art{display:none}
.hero .vidwrap{position:absolute;inset:0;z-index:0;margin:0;border:0;border-radius:0;box-shadow:none;background:var(--basil-d)}
.hero .vidwrap video{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero.has-bgvideo::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(18,30,22,.92) 0%,rgba(18,30,22,.72) 42%,rgba(18,30,22,.28) 78%,rgba(18,30,22,.18) 100%)}
.hero.has-bgvideo .hero-copy{position:relative;z-index:2;max-width:640px}
.hero.has-bgvideo h1{text-shadow:0 2px 24px rgba(0,0,0,.35)}
@media (max-width:900px){
  .hero.has-bgvideo{min-height:min(100svh,720px);padding-top:56px;padding-bottom:80px;align-content:end}
  .hero.has-bgvideo::after{background:linear-gradient(180deg,rgba(18,30,22,.35) 0%,rgba(18,30,22,.62) 45%,rgba(18,30,22,.92) 100%)}
}
.scallop{display:none}

/* ===== separazioni: tolti puntini e festoni; una sola linea piena da bordo a bordo dove cambia lo sfondo ===== */
.hours li i{display:none}
.hours li{justify-content:space-between}
.facts div{border-left:0;border-top:0}
.st-dishes{border-top:0}
.book::before{display:none}
.hero{border-bottom:2px solid var(--ink)}
.mstage{border-top:2px solid var(--ink)}
.book{margin-top:0;padding-top:64px;border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.foot{border-top:2px solid var(--ink)}
@media (max-width:900px){.book{margin-top:0}.facts div{border:0}}
.book{border-top:0;border-bottom:0}
.book{border-top:2px solid var(--ink);border-bottom:2px solid var(--ink)}
@media (max-width:900px){.map{min-height:340px}}

/* barra "Vedi ordine / Prenota / Chiama" anche su computer (al posto del pulsante singolo) */
.cartbar{display:none!important}
@media (min-width:901px){
  .dock{position:fixed;z-index:46;left:50%;transform:translateX(-50%);bottom:16px;width:min(620px,calc(100% - 32px));display:grid;grid-template-columns:repeat(3,1fr);background:var(--paper);border:2px solid var(--ink);border-radius:20px;box-shadow:5px 5px 0 var(--ink);padding:0;overflow:hidden}
  .dock a{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:10px;padding:14px 10px;text-decoration:none;font-weight:800;font-size:15px}
  .dock a + a{border-left:2px dotted var(--line)}
  .dock a:hover{background:var(--paper2)}
  .dock .ic{width:24px;height:24px;color:var(--tom)}
  .dock-n{position:static;margin-left:2px}
  body.has-cart .dock{display:grid}
  .mstage .st-nav{padding-bottom:92px}
  .foot{padding-bottom:120px}
}

/* nota allergeni: testo semplice, senza riquadro */
.note,.stage .note{border:0;background:none;border-radius:0;padding:16px 4px 0;margin-top:14px;font-size:13px;line-height:1.55;text-align:left}
.stage .note{color:#d8c9ab}

/* Dove trovarci: orari + indirizzo sopra la mappa + "In breve" piccolo */
.dove{grid-template-columns:1fr 1fr;align-items:start;gap:44px}
.dove-map .addr{margin:0 0 14px;font-size:18px}
.dove h3.small-h{font-size:18px;margin:22px 0 6px}
.info.small{gap:5px}
.info.small li{font-size:13.5px;font-weight:500;gap:10px;line-height:1.35}
.info.small .ic{width:18px;height:18px}
@media (max-width:900px){.dove{grid-template-columns:1fr;gap:28px}}

/* avviso "chiuso" nell'ordine; contatore sezioni nascosto sui telefoni stretti */
.closed-note{margin:0 0 12px;padding:10px 14px;border-radius:12px;background:#f6d9d0;color:var(--tom-d);font-weight:700;font-size:14px}
@media (max-width:600px){.st-count{display:none}}
/* orario scelto fuori turno */
#fTime[aria-invalid="true"]{border-color:var(--tom-d);outline:2px solid var(--tom-d)}
#send:disabled{opacity:.45;cursor:not-allowed}
