/* Stili del menu (copiati da menu/index.html) */
:root{
  --terra:#bf4a2b;
  --terra-scuro:#9e3a20;
  --crema:#f3ecdd;
  --crema-scura:#e9dfc9;
  --inchiostro:#2b2118;
  --oliva:#6b6b3a;
  --bianco:#fdfaf3;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}
body{
  font-family:'Karla',sans-serif;
  background:var(--crema);
  color:var(--inchiostro);
  line-height:1.5;
}

/* ---------- Paesaggio (crinale, prato, galline) ---------- */
.defs-paesaggio{position:absolute;width:0;height:0;overflow:hidden}

/* Crinale in filigrana dentro la testata e nel piè di pagina */
.crinale,.crinale-piede{
  position:absolute;left:0;right:0;
  width:100%;
  pointer-events:none;
}
.crinale{bottom:0;height:9.5rem;fill:var(--bianco);opacity:.16;filter:blur(5px)}
.crinale-piede{top:0;height:100%;fill:var(--crema);opacity:.1;filter:blur(4px)}

.fascia-prato{
  position:relative;
  height:12rem;
  background:linear-gradient(180deg,#e7dcc4 0%,#eee2cb 48%,#e8e3c9 76%,var(--crema) 100%);
  overflow:hidden;
}
.fp-monti{position:absolute;inset:0;width:100%;height:100%;filter:blur(2.5px);pointer-events:none}
.fp-cresta{fill:var(--oliva);opacity:.3}
.fp-erba{fill:var(--oliva);opacity:.5}
.fp-prato{fill:var(--oliva);opacity:.62}
.gallina{position:absolute;color:var(--inchiostro);fill:currentColor;pointer-events:none}
.g1{left:20%;bottom:.9rem;width:3.4rem;height:2.55rem;opacity:.66}
.g2{left:27%;bottom:1.9rem;width:2.4rem;height:1.8rem;color:var(--terra-scuro);opacity:.5;filter:blur(1.2px)}
.g3{right:24%;bottom:1.2rem;width:3rem;height:2.25rem;opacity:.6;filter:blur(.6px);transform:scaleX(-1)}
/* Velo di crema: le pizze partono su fondo pieno */
.fp-velo{
  position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(243,236,221,0) 64%,rgba(243,236,221,.5) 86%,var(--crema) 100%);
}
.fp-claim{
  position:absolute;left:0;right:0;top:2.2rem;
  margin:0;padding:0 1rem;
  text-align:center;
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:clamp(.95rem,2.4vw,1.2rem);
  letter-spacing:.04em;
  color:var(--terra-scuro);
}

/* Su schermo stretto la fascia si accorcia e resta una gallina sola */
@media (max-width:640px){
  .fascia-prato{height:9rem}
  .fp-claim{top:1.4rem}
  .g1{left:8%;width:2.6rem;height:1.95rem}
  .g2,.g3{display:none}
  .crinale{height:7rem}
}

/* ---------- Header ---------- */
header{
  background:var(--terra);
  color:var(--bianco);
  text-align:center;
  padding:2.5rem 1rem 2rem;
  position:relative;
  overflow:hidden;
}
header>*{position:relative}
.logo{
  font-family:'Yellowtail',cursive;
  font-size:clamp(3.2rem,9vw,5rem);
  line-height:1;
}
.logo::after{
  content:"";
  display:block;
  width:9rem;max-width:60%;
  height:3px;background:var(--bianco);
  margin:.4rem auto 0;
  border-radius:2px;
  transform:rotate(-2deg);
}
.tagline{
  margin-top:.9rem;
  font-size:1rem;
  letter-spacing:.08em;
}
.telefoni{margin-top:.6rem;font-weight:700;letter-spacing:.05em}
.telefoni a{color:var(--bianco);text-decoration:none;border-bottom:1px dotted rgba(255,255,255,.6)}
.lingue{margin-top:1rem;display:flex;justify-content:center;gap:0}
.lang-btn{
  padding:.35rem .8rem;
  border:1.5px solid var(--bianco);
  background:transparent;
  color:var(--bianco);
  font-family:inherit;font-weight:700;font-size:.78rem;
  letter-spacing:.1em;
  cursor:pointer;
}
.lang-btn+.lang-btn{border-left:none}
.lang-btn[aria-pressed=true]{background:var(--bianco);color:var(--terra)}

/* ---------- Nav ---------- */
nav{
  position:sticky;top:0;z-index:10;
  background:var(--inchiostro);
  overflow-x:auto;
  white-space:nowrap;
  -webkit-overflow-scrolling:touch;
}
nav a{
  display:inline-block;
  color:var(--crema);
  text-decoration:none;
  padding:.75rem 1.1rem;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
nav a:hover,nav a:focus-visible{background:var(--terra)}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--oliva);outline-offset:2px}

main{max-width:1060px;margin:0 auto;padding:0 1rem 3rem}

/* ---------- Sezioni ---------- */
.sezione{margin-top:3rem}
.banda{
  background:var(--terra);
  color:var(--bianco);
  padding:.55rem 1.1rem;
  font-family:'Playfair Display',serif;
  font-weight:900;
  font-size:clamp(1.3rem,3.4vw,1.7rem);
  letter-spacing:.14em;
  text-transform:uppercase;
  display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;
}
.banda small{
  font-family:'Karla',sans-serif;
  font-weight:400;font-size:.8rem;letter-spacing:.04em;text-transform:none;
}

/* ---------- Toolbar ricerca/ordinamento ---------- */
.toolbar{
  display:flex;gap:.7rem;flex-wrap:wrap;align-items:center;
  margin:1rem 0 1.4rem;
}
.toolbar input[type=search]{
  flex:1;min-width:220px;
  padding:.6rem .9rem;
  border:2px solid var(--inchiostro);
  border-radius:0;
  background:var(--bianco);
  font-family:inherit;font-size:1rem;
}
.toolbar .ordina{display:flex;gap:0}
.toolbar button{
  padding:.55rem 1rem;
  border:2px solid var(--inchiostro);
  background:var(--bianco);
  font-family:inherit;font-weight:700;font-size:.85rem;
  letter-spacing:.06em;text-transform:uppercase;
  cursor:pointer;
}
.toolbar button+button{border-left:none}
.toolbar button[aria-pressed=true]{background:var(--inchiostro);color:var(--crema)}
.contatore{font-size:.85rem;color:var(--terra-scuro);font-weight:700}

/* ---------- Griglia pizze ---------- */
.griglia{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:.4rem 2.4rem;
}
.voce{padding:.65rem 0;border-bottom:1px solid var(--crema-scura)}
.voce .riga{
  display:flex;align-items:baseline;gap:.5rem;
}
.voce h3{
  font-size:1rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
}
.puntini{
  flex:1;
  border-bottom:2px dotted var(--terra);
  transform:translateY(-4px);
  min-width:1.2rem;
}
.prezzo{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.voce p{font-size:.9rem;color:#5a4d40;margin-top:.15rem}
.tag{
  display:inline-block;
  font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:.05rem .45rem;
  border:1.5px solid var(--oliva);
  color:var(--oliva);
  border-radius:999px;
  vertical-align:middle;
  margin-left:.35rem;
}
.allerg{
  font-size:.72rem;color:#8a7a68;margin-top:.15rem;
}
.allerg abbr{text-decoration:none;border-bottom:1px dotted #8a7a68;cursor:help}
.nessun-risultato{padding:1.5rem 0;font-style:italic;color:#7a6a58;display:none}

/* ---------- Box supplementi / impasti ---------- */
.duebox{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-top:1.2rem}
.box{
  border:2px solid var(--inchiostro);
  background:var(--bianco);
  padding:1rem 1.2rem;
}
.box h3{
  font-family:'Playfair Display',serif;font-weight:700;
  font-size:1.05rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--terra-scuro);margin-bottom:.5rem;
}
.box ul{list-style:none}
.box li{display:flex;align-items:baseline;gap:.5rem;padding:.2rem 0;font-size:.92rem}

/* ---------- Bevande ---------- */
.bev-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.4rem 2.4rem;margin-top:1.2rem}
.bev h3{
  color:var(--terra-scuro);
  font-family:'Playfair Display',serif;
  font-size:1.05rem;letter-spacing:.06em;
  border-bottom:2px solid var(--terra);
  padding-bottom:.25rem;margin-bottom:.4rem;
}
.bev li{list-style:none;display:flex;align-items:baseline;gap:.5rem;padding:.22rem 0;font-size:.93rem}

/* ---------- Gastronomia ---------- */
.gastro{
  background:var(--terra);
  color:var(--bianco);
  padding:1.6rem 1.4rem;
  margin-top:1.2rem;
}
.gastro p.intro{text-align:center;font-weight:700;max-width:640px;margin:0 auto 1.2rem}
.gastro-griglia{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.2rem}
.gastro h3{
  font-family:'Playfair Display',serif;
  font-size:1rem;letter-spacing:.1em;text-transform:uppercase;
  margin-bottom:.4rem;text-align:center;
}
.gastro ul{list-style:none;text-align:center;font-size:.92rem}
.gastro li{padding:.12rem 0}

/* ---------- Allergeni ---------- */
.tab-allergeni{width:100%;border-collapse:collapse;margin-top:1.2rem;background:var(--bianco);font-size:.88rem}
.tab-allergeni th,.tab-allergeni td{border:1px solid var(--crema-scura);padding:.45rem .7rem;text-align:left;vertical-align:top}
.tab-allergeni th{background:var(--terra);color:var(--bianco);letter-spacing:.06em}
.tab-allergeni td:first-child{font-weight:700;color:var(--terra-scuro);width:2.2rem;text-align:center}

.note{margin-top:1.4rem;font-size:.8rem;color:#7a6a58}
.note p{margin-top:.3rem}

/* ---------- Footer ---------- */
footer{
  background:var(--inchiostro);color:var(--crema);
  text-align:center;padding:2rem 1rem;margin-top:3rem;
  position:relative;
  overflow:hidden;
}
footer>*{position:relative}
footer .logo-piccolo{font-family:'Yellowtail',cursive;font-size:2.2rem}
footer .tel{margin-top:.5rem;font-weight:700;letter-spacing:.08em}
footer .tel a{color:var(--crema);text-decoration:none}
footer .hawaii{margin-top:1.2rem;font-size:.75rem;color:#9d8f7c;font-style:italic}

/* ---------- Stampa ---------- */
@media print{
  @page{ size:A4; margin:12mm; }
  *{ -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  nav, .toolbar, .lingue, .nessun-risultato, iframe{ display:none !important; }
  .fascia-prato, .crinale, .crinale-piede{ display:none !important; }
  body{ line-height:1.35; }
  header{ padding:1.2rem 1rem 1rem; }
  .logo{ font-size:2.6rem; }
  main{ padding:0 .3rem; }
  .sezione{ margin-top:1.6rem; }
  .sezione:first-of-type{ margin-top:.8rem; }
  .banda{ break-after:avoid; }
  .voce, .box, .bev, .gastro-griglia>div, .duebox>*{ break-inside:avoid; }
  .griglia{ gap:.2rem 1.6rem; }
  footer{ margin-top:1.6rem; padding:1.2rem 1rem; }
  a[href]{ color:inherit; text-decoration:none; }
}

/* Prodotti del contadino (stessa griglia delle bevande) */
#contadino .intro{margin-top:.8rem;max-width:60ch}
.contadino-desc{display:block;font-size:.82rem;opacity:.8}
/* "hidden" deve vincere sul display dei link del menu e delle sezioni */
nav a[hidden],.sezione[hidden]{display:none}
