/* Pizza & Sfizi (Catanzaro Lido): i colori del marchio. Il rosso della macchia di pomodoro del logo, il verde del basilico,
   la crema della carta da forno; titoli tondi e pieni come i cartelli del locale (Fraunces «soft»), testi in Nunito. */
:root{
  --rosso:#bb0420; --rosso-d:#8e0219; --rosso-l:#d3152f;
  --verde:#22944c; --verde-d:#17683a; --verde-dd:#0f4c2a;
  --crema:#fff8ee; --carta:#fbf0de; --sabbia:#f3e1c2;
  --ink:#2b1714; --ink2:#3a221d; --ink3:#4d2f28;
  --testo:#2b1714; --muted:#6c5249; --oro:#f6b93b; --oro-l:#ffcd5e;
  --line-l:rgba(43,23,20,.13); --line-d:rgba(255,255,255,.16);
  --display:"Fraunces","Cooper Black",Georgia,serif;
  --body:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r:18px;
  --macchia:url("data:image/svg+xml,%3Csvg viewBox='0 0 600 600' xmlns='http://www.w3.org/2000/svg' fill='%23bb0420'%3E%3Cpath d='M524 300C524 328 506 353 497 382C489 411 489 447 473 473C456 498 426 525 398 535C369 546 331 542 300 537C269 533 238 525 213 510C189 495 175 467 153 447C131 427 92 415 82 390C73 366 100 333 93 300C86 267 30 217 40 192C50 168 122 167 152 152C182 138 195 120 220 106C244 92 267 85 300 70C333 54 394 -1 419 13C444 26 436 116 450 150C464 184 489 192 501 217C514 242 525 272 524 300Z'/%3E%3Ccircle cx='560' cy='120' r='16'/%3E%3Ccircle cx='586' cy='168' r='8'/%3E%3Ccircle cx='52' cy='470' r='14'/%3E%3Ccircle cx='30' cy='430' r='6'/%3E%3Ccircle cx='520' cy='548' r='11'/%3E%3Ccircle cx='90' cy='96' r='9'/%3E%3Ccircle cx='548' cy='330' r='7'/%3E%3C/svg%3E");
}
*{box-sizing:border-box;margin:0;padding:0}
/* lo scorrimento morbido verso le sezioni lo fa main.js solo sui clic dei link (così window.scrollTo resta immediato) */
html{scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{font-family:var(--body);font-size:18px;line-height:1.6;color:var(--testo);background:var(--crema);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
a[href^="tel:"]{white-space:nowrap}
h1,h2,h3,h4{line-height:1.08;text-wrap:balance}
.head__sub{text-wrap:pretty}
ul,ol{list-style:none}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
svg{width:22px;height:22px;fill:currentColor;flex:none}
.icone{position:absolute;width:0;height:0;overflow:hidden}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* anello di focus a due toni: verde scuro su fondo chiaro, con un filo bianco che si vede anche sul rosso e sul nero */
:focus-visible{outline:3px solid var(--verde-dd);outline-offset:2px;box-shadow:0 0 0 5px #fff;border-radius:6px}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:#fff;color:#111;padding:.6em 1em;border-radius:8px;font-weight:800}
.skip:focus{left:12px}
.dsp{font-family:var(--display);font-variation-settings:"opsz" 30}

/* bottoni */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;padding:.74em 1.35em;border-radius:999px;font-family:var(--body);font-weight:800;font-size:.98rem;letter-spacing:.01em;text-decoration:none;border:2px solid transparent;transition:transform .15s,background .15s,color .15s,border-color .15s,box-shadow .15s;white-space:nowrap}
.btn svg{width:18px;height:18px}
.btn:hover{transform:translateY(-2px)}
.btn--lg{padding:.92em 1.6em;font-size:1.04rem}
.btn--rosso{background:var(--rosso);color:#fff;box-shadow:0 10px 24px -12px rgba(187,4,32,.7)}
.btn--rosso:hover{background:var(--rosso-d)}
.btn--linea{border-color:var(--rosso);color:var(--rosso);background:transparent}
.btn--linea:hover{background:var(--rosso);color:#fff}
.btn--oro{background:var(--oro);color:var(--ink)}
.btn--oro:hover{background:var(--oro-l)}
.btn--bianco{background:#fff;color:var(--rosso)}
.btn--bianco:hover{background:var(--crema)}
.btn--linea-chiaro{border-color:rgba(255,255,255,.8);color:#fff}
.btn--linea-chiaro:hover{background:#fff;color:var(--rosso)}
.btn--tel{padding-block:.56em}
.btn--tel span{display:flex;flex-direction:column;line-height:1.15;text-align:left}
.btn--tel small{font-weight:700;font-size:.84rem;letter-spacing:.03em;opacity:.9}

/* barra in alto (niente backdrop-filter: il menu del telefono è dentro la barra) */
.topbar{position:fixed;inset:0 0 auto;z-index:50;background:rgba(255,248,238,.97);transition:box-shadow .25s,background .25s}
.topbar.is-solid,.topbar.is-open{background:#fff8ee;box-shadow:0 1px 0 var(--line-l),0 10px 30px -22px rgba(43,23,20,.45)}
.topbar__in{display:flex;align-items:center;gap:26px;height:74px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.brand img{width:58px;height:50px}
.brand__txt{display:flex;flex-direction:column;line-height:1}
.brand__txt b{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.32rem;color:var(--rosso);letter-spacing:-.005em}
.brand__txt small{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--verde-d);margin-top:4px}
.nav{display:flex;gap:22px;margin-left:auto}
.nav a{color:var(--ink);text-decoration:none;font-weight:700;font-size:.98rem;position:relative;white-space:nowrap}
.nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:3px;border-radius:2px;background:var(--rosso);transition:right .2s}
.nav a:hover::after{right:0}
.topbar__call{flex:none}
.burger{display:none;background:none;border:0;width:46px;height:46px;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;margin-left:auto;border-radius:10px}
.burger span{display:block;width:26px;height:3px;border-radius:2px;background:var(--ink);transition:.2s}

/* hero */
.hero{position:relative;overflow:hidden;background:var(--crema);padding:132px 0 92px}
.hero::before{content:"";position:absolute;right:-140px;top:40px;width:760px;height:760px;background:var(--macchia) center/contain no-repeat;opacity:.08;pointer-events:none}
.hero__in{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:60px;align-items:center}
.kicker{font-family:var(--body);font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;color:var(--verde-d);margin-bottom:14px}
.kicker--chiaro{color:#ffe7b0}
.kicker--oro{color:var(--oro)}
.hero h1{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:clamp(3.4rem,7.2vw,6.4rem);line-height:.92;letter-spacing:-.02em;color:var(--rosso)}
.hero h1 span{display:block;margin-top:14px;font-size:.36em;letter-spacing:.01em;color:var(--verde-d);font-weight:800}
.hero__lead{max-width:560px;font-size:1.17rem;color:#4a342e;margin:22px 0 30px}
.hero__cta{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.hero__facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:40px;max-width:620px}
.hero__facts li{background:#fff;border:2px dashed rgba(187,4,32,.32);border-radius:14px;padding:10px 14px}
.hero__facts b{display:block;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.1rem;line-height:1.2;color:var(--rosso)}
.hero__facts span{display:block;font-size:.88rem;line-height:1.35;color:var(--muted);font-weight:600;margin-top:3px}
.hero__media{position:relative;justify-self:center;width:100%;max-width:500px}
.hero__media::before{content:"";position:absolute;inset:-9% -12% -6% -14%;background:var(--macchia) center/contain no-repeat;transform:rotate(-8deg)}
.hero__foto{position:relative;border-radius:28px;overflow:hidden;box-shadow:0 30px 60px -28px rgba(43,23,20,.65);border:6px solid #fff;transform:rotate(2deg)}
.hero__foto img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero__logo{position:absolute;left:-58px;bottom:-34px;width:210px;height:auto;transform:rotate(-9deg);filter:drop-shadow(0 16px 22px rgba(43,23,20,.35))}
.hero__didascalia{position:absolute;right:-4px;top:26px;background:#fff;color:var(--ink);font-weight:800;font-size:.84rem;padding:.4em .95em;border-radius:999px;box-shadow:0 8px 20px -10px rgba(43,23,20,.5);transform:rotate(4deg)}

/* striscia rossa */
.strip{position:relative;z-index:3;background:var(--rosso);color:#fff}
.strip__in{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;padding:38px 0 42px}
.strip__item{display:flex;gap:16px;align-items:flex-start}
.strip__item svg{width:50px;height:50px;padding:12px;border-radius:50%;background:var(--crema);fill:var(--rosso)}
.strip h2{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.18rem;line-height:1.2;margin-bottom:5px;color:#fff}
.strip p{font-size:.98rem;color:#ffe5e2}
.strip b{color:#fff}

/* sezioni */
.section{padding:108px 0}
.section--crema{background:var(--crema)}
.section--carta{background-color:var(--carta);background-image:linear-gradient(90deg,rgba(43,23,20,.035) 1px,transparent 1px),linear-gradient(rgba(43,23,20,.035) 1px,transparent 1px);background-size:64px 64px}
.section--scuro{background:var(--ink);color:#efe4df}
.head{text-align:center;max-width:780px;margin:0 auto 54px}
h2{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:clamp(2.1rem,4.4vw,3.3rem);line-height:1.04;letter-spacing:-.015em;color:var(--rosso)}
.section--scuro h2,.regole h2,.buffet h2{color:#fff}
.head__sub{margin:18px auto 0;color:var(--muted);max-width:680px}
.small{font-size:.94rem;color:var(--muted)}
.section--scuro .small{color:#cdbdb6}

/* specialità */
.signature{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center;margin-bottom:72px}
.signature__img{position:relative;width:100%;max-width:430px;justify-self:center;background:#fff;padding:12px 12px 50px;border-radius:8px;box-shadow:0 26px 50px -24px rgba(43,23,20,.55);transform:rotate(-2deg)}
.signature__img img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.signature__img figcaption{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.15rem;color:var(--rosso)}
.tag{display:inline-block;background:var(--verde-d);color:#fff;font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;padding:.5em 1.05em;border-radius:999px;margin-bottom:16px}
.signature h3{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:clamp(2.2rem,4.4vw,3.3rem);color:var(--ink);letter-spacing:-.015em;margin-bottom:16px}
.signature__txt>p:not(.tag){font-size:1.1rem;color:#4a342e}
.signature__prices{margin:26px 0 30px;border-top:3px solid var(--ink)}
.signature__prices li{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:2px dashed #e4d3bd;font-weight:700}
.signature__prices b{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;color:var(--rosso);white-space:nowrap;font-size:1.12rem}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:#fff;border:1px solid #efe1cd;border-radius:var(--r);padding:24px 24px 20px;display:flex;flex-direction:column;border-top:6px solid var(--rosso);transition:transform .2s,box-shadow .2s}
.card:nth-child(3n+2){border-top-color:var(--verde)}
.card:nth-child(3n){border-top-color:var(--oro)}
.card:hover{transform:translateY(-4px);box-shadow:0 20px 40px -24px rgba(43,23,20,.4)}
.card h3{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.28rem;line-height:1.15;color:var(--ink);margin-bottom:10px}
.card p{color:#5b4640;flex:1}
.card__prezzi{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:16px;flex:none!important}
.card__prezzi b{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.36rem;color:var(--rosso)}
.card__prezzi span{font-size:.92rem;color:var(--muted)}
.card__prezzi i{font-style:normal;font-weight:800;color:var(--testo)}
.cards__note{text-align:center;color:var(--muted);font-size:.95rem;margin-top:26px}

/* tasselli delle categorie */
.tiles{display:grid;grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:270px 270px;gap:6px;background:var(--ink);padding:6px}
.tile{position:relative;overflow:hidden;color:#fff;text-decoration:none;border-radius:6px;background:var(--ink2)}
.tile--big{grid-row:span 2}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.tile:hover img{transform:scale(1.06)}
.tile::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 36%,rgba(30,14,11,.92))}
.tile span{position:absolute;left:20px;right:16px;bottom:16px;z-index:1;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.55rem;line-height:1.05}
.tile--big span{font-size:2.6rem}
.tile small{display:block;font-family:var(--body);font-weight:700;font-size:.93rem;line-height:1.3;color:var(--oro-l);margin-top:6px}
.tile--testo{background:var(--verde-d);display:flex}
.tile--testo::after{background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.14),transparent 60%)}
.tile--testo svg{position:absolute;right:-14px;top:-12px;width:150px;height:150px;fill:rgba(255,255,255,.14);transform:rotate(-14deg);transition:transform .6s}
.tile--testo:hover svg{transform:rotate(-4deg) scale(1.05)}
.tile--testo small{color:#d9f3de}

/* menu: cartellino bianco su carta da forno, tre colonne di prezzi per le pizze (teglia | mezza | pezzo) */
.menu-tools{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:30px}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tab{background:#fff;color:var(--testo);border:2px solid #ead9c1;border-radius:999px;padding:.45em 1.1em;font:inherit;font-size:.92rem;font-weight:800;cursor:pointer;transition:.15s}
.tab:hover{border-color:var(--rosso);color:var(--rosso)}
.tab[aria-selected="true"]{background:var(--rosso);border-color:var(--rosso);color:#fff}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:2px solid #ead9c1;border-radius:999px;padding:.5em 1.05em;min-width:300px}
.search svg{width:18px;height:18px;fill:var(--muted)}
.search input{background:none;border:0;outline:0;color:var(--testo);font:inherit;font-size:1rem;width:100%;min-width:0}
.search:focus-within{border-color:var(--rosso);box-shadow:0 0 0 3px rgba(187,4,32,.15)}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:0 56px;min-height:220px;background:#fff;border:1px solid #ecdcc6;border-radius:var(--r);padding:30px 36px 26px;box-shadow:0 26px 50px -36px rgba(43,23,20,.45)}
.menu-cat{grid-column:1/-1;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.7rem;color:var(--rosso);margin:30px 0 4px;display:flex;align-items:center;gap:18px}
.menu-cat::after{content:"";flex:1;height:2px;background:rgba(187,4,32,.16)}
.menu-cat:first-child{margin-top:0}
.menu-nota{grid-column:1/-1;color:var(--muted);font-size:.96rem;margin:2px 0 8px;background:var(--crema);border-left:4px solid var(--verde);padding:.55em .9em;border-radius:0 10px 10px 0}
.cols{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin:6px 0 0}
.cols div{display:flex;justify-content:flex-end;gap:6px}
.cols span{width:72px;text-align:right;font-weight:800;font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--rosso);line-height:1.15}
.cols small{display:block;font-weight:700;text-transform:none;letter-spacing:0;color:var(--muted);font-size:.74rem}
.dish{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;align-items:start;align-content:start;padding:12px 0;border-bottom:1px dashed rgba(43,23,20,.18)}
.dish h4{grid-column:1;grid-row:1;font-family:var(--body);font-size:1.1rem;font-weight:800;color:var(--testo);line-height:1.25}
.dish__d{grid-column:1;color:var(--verde-d);font-size:.95rem;line-height:1.4;margin-top:2px}
.dish .var{grid-column:1;color:var(--muted);font-size:.9rem;margin-top:2px}
.dish .var b{color:var(--testo)}
.pp{grid-column:2;grid-row:1/span 2;display:flex;gap:6px;padding-top:1px}
.pp .p{width:72px;text-align:right;font-weight:800;font-size:1.02rem;color:var(--testo);white-space:nowrap}
.pp .p small{display:none}
.dish--teglia .pp .p:first-child{color:var(--rosso)}
.menu-empty{grid-column:1/-1;text-align:center;color:var(--muted);padding:30px 0}
.allergeni{margin:28px auto 0;font-size:.94rem;color:var(--muted);text-align:center;max-width:780px}

/* formati e regole: fascia verde basilico */
.regole{position:relative;background:var(--verde-d);color:#fff;padding:100px 0;overflow:hidden}
.regole::before{content:"";position:absolute;right:-120px;top:-150px;width:460px;height:460px;background:var(--macchia) center/contain no-repeat;opacity:.12}
.regole .wrap{position:relative}
.head--chiaro{margin-bottom:44px}
.head--chiaro .head__sub{color:#e6f3ea}
.formati{display:flex;justify-content:center;align-items:flex-end;gap:56px;margin:0 auto 54px}
.formato{display:flex;flex-direction:column;align-items:center;gap:14px}
.formato svg{width:132px;height:222px}
.formato--pezzo svg{width:132px;height:222px}
.t-bordo{fill:#1d100d}
.t-pezzi rect{fill:var(--oro);stroke:#c47d17;stroke-width:1.5}
.t-vuoti rect{fill:none;stroke:rgba(255,255,255,.4);stroke-width:2;stroke-dasharray:5 4}
.formato figcaption{text-align:center;color:#e6f3ea;font-weight:700}
.formato figcaption b{display:block;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.3rem;color:#fff}
.regole__grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:18px;align-items:start}
.regola{background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);padding:24px 24px 22px}
.regola h3{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.3rem;color:var(--oro-l);margin-bottom:8px}
.regola p{color:#eef7f1;font-size:1rem}
.regola b{color:#fff}
.basi{width:100%;border-collapse:collapse;margin-top:12px;font-size:.96rem}
.basi th,.basi td{padding:7px 0;border-bottom:1px dashed rgba(255,255,255,.3);text-align:right;font-weight:800;white-space:nowrap}
.basi thead th{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:#cfe9d7;padding-top:0}
.basi th[scope="row"],.basi thead th:first-child{text-align:left;font-weight:700;white-space:normal}
.basi td{padding-left:10px}

/* tavola calda */
.pranzo{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.pranzo__foto{position:relative;min-height:560px}
.pranzo__foto figure{position:absolute;background:#fff;padding:10px;border-radius:10px;box-shadow:0 26px 50px -26px rgba(43,23,20,.6)}
.pranzo__foto img{border-radius:6px;object-fit:cover}
.pranzo__f1{left:0;top:0;width:68%;transform:rotate(-2.5deg)}
.pranzo__f1 img{aspect-ratio:771/900;width:100%}
.pranzo__f2{right:0;bottom:0;width:52%;transform:rotate(3deg)}
.pranzo__f2 img{aspect-ratio:1;width:100%}
.pranzo__txt h2{margin-bottom:18px}
.pranzo__txt>p:not(.kicker):not(.small){color:#4a342e}
.menu-pranzo{margin:24px 0 18px;border-top:3px solid var(--ink)}
.menu-pranzo li{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;border-bottom:2px dashed #e4d3bd}
.menu-pranzo b{display:block;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.25rem;color:var(--ink)}
.menu-pranzo span{color:var(--muted);font-size:.95rem}
.menu-pranzo strong{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.5rem;color:var(--rosso);white-space:nowrap}
.pranzo__txt .small{margin-bottom:22px}

/* buffet: fascia rossa */
.buffet{position:relative;background:var(--rosso);color:#fff;padding:104px 0;overflow:hidden}
.buffet::before{content:"";position:absolute;right:-160px;top:-180px;width:640px;height:640px;background:var(--macchia) center/contain no-repeat;filter:brightness(.62);opacity:.55}
.buffet .wrap{position:relative}
.buffet .head__sub{color:#ffe1dc}
.buffet__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;align-items:stretch}
.pacchetto{background:var(--crema);color:var(--ink);border-radius:var(--r);padding:28px 26px 24px;box-shadow:0 26px 50px -28px rgba(0,0,0,.55);border-top:8px solid var(--oro)}
.pacchetto--medio{border-top-color:var(--verde)}
.pacchetto h3{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.5rem;color:var(--ink)}
.pacchetto__prezzo{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:2.6rem;line-height:1;color:var(--rosso);margin:10px 0 16px}
.pacchetto li{position:relative;padding:6px 0 6px 26px;border-bottom:1px dashed #e4d3bd;font-weight:700}
.pacchetto li:last-child{border-bottom:0}
.pacchetto li::before{content:"";position:absolute;left:2px;top:.85em;width:12px;height:12px;border-radius:50%;background:var(--rosso)}
.buffet__extra{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center;margin-top:46px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.18);border-radius:var(--r);padding:22px}
.buffet__extra figure img{width:100%;aspect-ratio:816/563;object-fit:cover;border-radius:12px}
.buffet__extra h3{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.6rem;margin-bottom:8px}
.buffet__extra p{color:#ffe7e3}
.buffet__extra b{color:#fff}
.buffet__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}

/* chi siamo */
.about{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.about__img{position:relative;width:100%;background:#fff;padding:12px 12px 52px;border-radius:8px;box-shadow:0 26px 50px -24px rgba(43,23,20,.55);transform:rotate(2deg);max-width:560px;justify-self:center}
.about__img img{width:100%;aspect-ratio:1100/688;object-fit:cover;border-radius:4px}
.about__img figcaption{position:absolute;left:0;right:0;bottom:13px;text-align:center;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.15rem;color:var(--rosso)}
.about__txt h2{margin-bottom:20px}
.about__txt p:not(.kicker){color:#4a342e;margin-bottom:14px}
.services{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:24px 0 26px}
.services li{display:flex;align-items:center;gap:10px;font-weight:700}
.services li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;background:var(--verde-d) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='white' d='M9.5 16.2 5.3 12l-1.4 1.4 5.6 5.6 11-11-1.4-1.4z'/%3E%3C/svg%3E") center/15px no-repeat}
.social{display:flex;flex-wrap:wrap;gap:10px}
.social a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:800;background:var(--ink);color:#fff;border-radius:999px;padding:.5em 1.1em .5em .8em}
.social a:hover{background:var(--rosso)}
.social svg{width:20px;height:20px}

/* come ordinare */
.ordina{display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center}
.ordina h2{margin-bottom:28px}
.passi{counter-reset:passo;display:grid;gap:18px;margin-bottom:30px}
.passi li{counter-increment:passo;position:relative;padding-left:62px;min-height:46px}
.passi li::before{content:counter(passo);position:absolute;left:0;top:0;width:46px;height:46px;border-radius:50%;background:var(--oro);color:var(--ink);font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.3rem;display:grid;place-items:center}
.passi b{display:block;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.2rem;color:#fff}
.passi b a{color:var(--oro);text-decoration:none;white-space:nowrap}
.passi span{color:#d8cbc5}
.hours-mini{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.hours-mini div{background:var(--ink2);border:1px solid var(--line-d);border-radius:14px;padding:14px 18px}
.hours-mini b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--oro);font-weight:800}
.hours-mini span{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.4rem;color:#fff;white-space:nowrap}
.ordina .small{margin-bottom:26px}
.ordina__img{display:grid;gap:14px}
.ordina__img img{width:100%;border-radius:var(--r);object-fit:cover;border:6px solid var(--ink3);box-shadow:0 30px 60px -30px rgba(0,0,0,.8)}
.ordina__img img:first-child{aspect-ratio:800/391;transform:rotate(-1.5deg)}
.ordina__img img:last-child{aspect-ratio:816/551;transform:rotate(1.5deg)}

/* dove siamo */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.contact h2{margin-bottom:22px}
address{font-style:normal;font-size:1.15rem;line-height:1.5;margin-bottom:8px}
address b{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;color:var(--rosso);font-size:1.3rem}
.contact__nota{color:var(--muted);margin-bottom:12px}
.contact__tel a{display:inline-flex;align-items:center;gap:8px;font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:900;font-size:1.45rem;color:var(--testo);text-decoration:none}
.contact__tel svg{fill:var(--rosso)}
.contact__tel a:hover{color:var(--rosso)}
.hours{width:100%;border-collapse:collapse;margin:22px 0 10px}
.hours caption{text-align:left;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;color:var(--verde-d);margin-bottom:6px}
.hours th,.hours td{padding:9px 0;border-bottom:1px solid var(--line-l);text-align:left;font-weight:700;vertical-align:top}
.hours td{text-align:right;font-weight:800;font-size:.98rem}
.hours td span{display:inline-block;white-space:nowrap}
.hours td span+span::before{content:"·";margin:0 .45em;color:var(--muted)}
.hours tr.chiuso th,.hours tr.chiuso td{color:var(--muted);font-weight:600}
.hours tr.oggi th,.hours tr.oggi td{color:var(--rosso)}
.hours tr.oggi th::after{content:" · oggi";font-size:.85rem;font-weight:800}
.contact .btn{margin-top:20px}
.contact__mappa{display:flex;flex-direction:column;align-self:stretch}
.contact__map{position:relative;display:block;flex:1;min-height:460px;border-radius:var(--r);overflow:hidden;border:1px solid #e8d8c2;background:var(--sabbia);box-shadow:0 26px 50px -30px rgba(43,23,20,.5)}
.contact__map img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.map-cta{position:absolute;left:16px;bottom:16px;z-index:1;background:rgba(43,23,20,.88);color:#fff;font-weight:800;font-size:.92rem;padding:.55em 1.05em;border-radius:999px}
.map-att{font-size:.82rem;color:var(--muted);margin-top:8px}

/* footer */
.footer{position:relative;background:var(--ink);color:#cdbdb6;padding:60px 0 64px;font-size:.96rem}
.footer__in{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px}
.footer__in img{width:120px;height:auto}
.footer__claim{font-family:var(--display);font-variation-settings:"opsz" 30;font-weight:800;font-size:1.25rem;color:var(--oro);margin-bottom:6px}
.footer a{color:#fff}
.footer__social a{font-weight:800}
.footer__legal{font-size:.86rem;color:#a99791;margin-top:8px}
.nobr{white-space:nowrap}

/* pulsante «Chiama» fisso sul telefono */
.fab{position:fixed;right:16px;bottom:16px;z-index:60;display:none;align-items:center;gap:8px;background:var(--rosso);color:#fff;text-decoration:none;font-weight:800;padding:.85em 1.3em;border-radius:999px;box-shadow:0 12px 30px -8px rgba(0,0,0,.55);border:2px solid #fff}
.fab{transition:opacity .25s,transform .25s,visibility 0s}
.fab.is-nascosto{opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .25s,transform .25s,visibility 0s .25s}

/* comparsa allo scroll */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-in{opacity:1;transform:none}
.signature__img.reveal.is-in{transform:rotate(-2deg)}
.about__img.reveal.is-in{transform:rotate(2deg)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{transition:none!important}}

/* schermi medi: menu a scomparsa */
@media (max-width:1100px){
  .nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:#fff8ee;padding:6px 20px 22px;border-bottom:1px solid var(--line-l);box-shadow:0 20px 30px -20px rgba(43,23,20,.4);display:none}
  .nav.is-open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid var(--line-l);font-size:1.1rem}
  .nav a::after{display:none}
  .burger{display:flex}
  .topbar__call{display:none}
  .burger[aria-expanded="true"] span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .burger[aria-expanded="true"] span:nth-child(2){opacity:0}
  .burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  .fab{display:inline-flex}
  .footer{padding-bottom:104px}
  .hero__logo{width:170px;left:-30px}
  .regole__grid{grid-template-columns:1fr 1fr}
  .regola--basi{grid-column:1/-1}
}
@media (max-width:1020px){
  .hero__in{grid-template-columns:1fr 1fr;gap:40px}
  .cards{grid-template-columns:1fr 1fr}
  .signature,.about,.ordina,.contact,.pranzo{grid-template-columns:minmax(0,1fr);gap:44px}
  .pranzo__foto{min-height:0;height:min(92vw,560px);max-width:620px;width:100%;justify-self:center}
  .ordina__img{max-width:560px}
  .contact__map{flex:none;min-height:0;aspect-ratio:2/1}
  .contact__map img{object-position:50% 50%}
  .buffet__grid{grid-template-columns:1fr 1fr 1fr;gap:14px}
  .buffet__extra{grid-template-columns:1fr;gap:20px}
  .menu-list{grid-template-columns:1fr}
  .cols{grid-template-columns:1fr}
  .cols div:nth-child(2){display:none}
}
@media (max-width:760px){
  body{font-size:17px}
  html{scroll-padding-top:72px}
  .topbar__in{height:66px}
  .brand img{width:50px;height:43px}
  .brand__txt b{font-size:1.18rem}
  .section{padding:76px 0}
  .hero{padding:90px 0 64px}
  .hero::before{width:520px;height:520px;right:-200px;top:20px}
  .hero__in{grid-template-columns:minmax(0,1fr);gap:26px}
  .hero__media{order:-1;max-width:none}
  .hero__media::before{inset:-6% -8% -10% -8%}
  .hero__foto{transform:rotate(1deg);border-width:5px;border-radius:22px}
  .hero__foto img{aspect-ratio:4/3}
  .hero__logo{width:118px;left:-6px;bottom:-26px}
  .hero__didascalia{top:14px;right:8px;font-size:.78rem}
  .hero h1{font-size:clamp(2.9rem,13.5vw,4rem)}
  .hero h1 span{margin-top:10px;font-size:.42em}
  .hero__lead{font-size:1.06rem;margin:16px 0 24px}
  .hero__cta .btn{flex:1 1 auto}
  .kicker{letter-spacing:.1em;font-size:.76rem}
  .hero__facts{grid-template-columns:1fr 1fr;gap:10px;margin-top:28px}
  .hero__facts li{padding:9px 12px}
  .hero__facts li:first-child{grid-column:1/-1}
  .hero__facts b{font-size:1.06rem}
  .strip__in{grid-template-columns:1fr;gap:22px;padding:34px 0 38px}
  .cards{grid-template-columns:1fr;gap:14px}
  .card{padding:18px 20px 16px;border-top-width:5px}
  .card h3{font-size:1.14rem;margin-bottom:6px}
  .card p{font-size:.98rem}
  .card__prezzi{margin-top:10px}
  .signature{gap:36px;margin-bottom:56px}
  .signature__img{max-width:330px}
  .tiles{grid-template-columns:1fr 1fr;grid-template-rows:240px 200px 200px}
  .tile--big{grid-column:span 2;grid-row:auto}
  .tile span{font-size:1.2rem;left:14px;right:10px;bottom:12px}
  .tile--big span{font-size:2rem}
  .tile small{font-size:.8rem}
  .tile--testo svg{width:100px;height:100px}
  .menu-tools{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
  .tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:none}
  .search{min-width:0;width:100%}
  .menu-list{padding:18px 16px 16px}
  .cols{display:none}
  .dish{grid-template-columns:minmax(0,1fr) auto}
  .dish h4{font-size:1.04rem}
  .dish__d,.dish .var{grid-column:1/-1}
  .dish--teglia{grid-template-columns:minmax(0,1fr)}
  .dish--teglia .pp{grid-column:1;grid-row:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px;padding-top:0}
  .dish--teglia .pp .p{width:auto;text-align:center;background:var(--crema);border:1px solid #efdfca;border-radius:10px;padding:3px 4px 4px;font-size:.96rem;line-height:1.3}
  .dish--teglia .pp .p small{display:block;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
  .dish--teglia .pp .p:first-child small{color:var(--rosso)}
  .dish--teglia .dish__d{grid-row:2}
  .formati{gap:22px;margin-bottom:40px}
  .formato svg,.formato--pezzo svg{width:84px;height:141px}
  .formato figcaption b{font-size:1.06rem}
  .formato figcaption{font-size:.9rem}
  .regole{padding:78px 0}
  .regole__grid{grid-template-columns:1fr}
  .regola{padding:20px 18px}
  .basi{font-size:.9rem}
  .pranzo__foto{height:96vw}
  .menu-pranzo b{font-size:1.1rem}
  .menu-pranzo strong{font-size:1.3rem}
  .buffet{padding:78px 0}
  .buffet__grid{grid-template-columns:1fr;gap:14px}
  .pacchetto{padding:22px 20px 18px}
  .pacchetto__prezzo{font-size:2.2rem;margin:6px 0 10px}
  .pacchetto li{padding:4px 0 4px 24px;font-size:.98rem}
  .ordina__img img:first-child{display:none}
  .buffet__extra{padding:16px}
  .buffet__cta .btn{flex:1 1 auto}
  .about__img{max-width:420px}
  .services{grid-template-columns:1fr}
  .hours-mini span{font-size:1.2rem}
  .contact__map{aspect-ratio:2/1.15}
  .map-cta{display:none}
}
@media (max-width:400px){
  .btn{white-space:normal;text-align:center;line-height:1.25}
  .btn--lg{padding:.85em 1.2em}
  .hours-mini div{padding:12px 14px}
  .hours-mini span{font-size:1.08rem}
  .brand__txt small{letter-spacing:.1em}
  .formati{gap:14px}
  .basi td{padding-left:6px}
}
@media (max-width:350px){
  .hours-mini{grid-template-columns:1fr}
  .brand__txt small{display:none}
}
