/* Carrello e checkout della home pubblica: stessa palette e tipografia di menu.css */

.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- Bottone "+" su pizze e bevande ---------- */
.aggiungi{
  flex:none;
  width:1.9rem;height:1.9rem;
  margin-left:.4rem;
  border:2px solid var(--terra);
  border-radius:50%;
  background:var(--bianco);
  color:var(--terra);
  font-family:inherit;font-weight:700;font-size:1.15rem;line-height:1;
  cursor:pointer;
  align-self:center;
}
.aggiungi:hover,.aggiungi:focus-visible{background:var(--terra);color:var(--bianco)}
.tag-esaurita{border-color:var(--terra-scuro);color:var(--terra-scuro)}
/* Nelle liste bevande il bottone è più piccolo e non sposta la riga */
.bev li .aggiungi{width:1.6rem;height:1.6rem;font-size:1rem;margin-left:.3rem}

/* ---------- Bottone carrello ---------- */
.carrello-btn{
  position:fixed;right:1rem;bottom:1rem;z-index:20;
  display:flex;align-items:center;gap:.6rem;
  padding:.75rem 1.1rem;
  border:2px solid var(--inchiostro);
  background:var(--terra);
  color:var(--bianco);
  font-family:inherit;font-weight:700;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;
  box-shadow:4px 4px 0 var(--inchiostro);
  cursor:pointer;
}
.carrello-btn:hover{background:var(--terra-scuro)}
.carrello-btn[hidden]{display:none}
.carrello-count{
  min-width:1.6rem;padding:.05rem .4rem;
  background:var(--bianco);color:var(--terra);
  border-radius:999px;text-align:center;font-variant-numeric:tabular-nums;
}
.carrello-btn.pulsa{animation:pulsa .45s ease-out}
@keyframes pulsa{50%{transform:scale(1.08)}}
@media (prefers-reduced-motion: reduce){.carrello-btn.pulsa{animation:none}}

/* ---------- Finestre ---------- */
dialog{color:var(--inchiostro);font-family:'Karla',sans-serif}
dialog::backdrop{background:rgba(43,33,24,.55)}

.dlg{
  /* il reset di menu.css (margin:0) toglie la centratura nativa di <dialog> */
  margin:auto;
  width:min(30rem,calc(100% - 2rem));
  max-height:calc(100% - 2rem);
  overflow-y:auto;
  padding:0;
  border:2px solid var(--inchiostro);
  background:var(--crema);
  box-shadow:6px 6px 0 var(--inchiostro);
}
.dlg-corpo{padding:1.4rem 1.3rem 1.3rem;position:relative}
.dlg h2,.pannello h2{
  font-family:'Playfair Display',serif;font-weight:900;
  font-size:1.35rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--terra-scuro);
  padding-right:2.2rem;
}
.dlg-ing{margin:.3rem 0 1rem;color:#5a4d40;font-size:.92rem}
.dlg-chiudi{
  position:absolute;top:.7rem;right:.7rem;
  width:2rem;height:2rem;
  border:2px solid var(--inchiostro);background:var(--bianco);
  font-size:1.2rem;line-height:1;cursor:pointer;
}
.dlg fieldset{border:none;margin-bottom:1rem}
.dlg legend{
  font-family:'Playfair Display',serif;font-weight:700;font-size:.95rem;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;
}
.dlg fieldset[hidden]{display:none}
.extra{display:flex;align-items:baseline;gap:.5rem;padding:.3rem 0;cursor:pointer;font-size:.93rem}
.extra input{accent-color:var(--terra);transform:translateY(2px)}

.qta{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;font-weight:700}
.qta button,.rc-qta button{
  width:2rem;height:2rem;
  border:2px solid var(--inchiostro);background:var(--bianco);
  font-weight:700;font-size:1rem;cursor:pointer;
}
.qta button:disabled,.rc-qta button:disabled{opacity:.4;cursor:default}
.qta output{min-width:1.5rem;text-align:center;font-variant-numeric:tabular-nums}

.campo{display:block;margin-bottom:.8rem;font-size:.9rem;font-weight:700}
.campo span{display:block;margin-bottom:.25rem}
.campo input,.campo textarea,.dlg textarea{
  width:100%;
  padding:.55rem .75rem;
  border:2px solid var(--inchiostro);border-radius:0;
  background:var(--bianco);
  font-family:inherit;font-size:1rem;font-weight:400;
}
.dlg label[for]{display:block;font-weight:700;font-size:.9rem;margin-bottom:.25rem}
.dlg textarea{margin-bottom:1rem;resize:vertical}

.btn-primario,.btn-secondario{
  width:100%;
  padding:.8rem 1rem;
  border:2px solid var(--inchiostro);
  font-family:inherit;font-weight:700;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;
  cursor:pointer;
}
.btn-primario{background:var(--terra);color:var(--bianco)}
.btn-primario:hover{background:var(--terra-scuro)}
.btn-primario:disabled{background:#b9a896;cursor:default}
.btn-secondario{background:var(--bianco);color:var(--inchiostro)}
.link{
  border:none;background:none;padding:0;
  color:var(--terra-scuro);font-family:inherit;font-size:inherit;font-weight:700;
  text-decoration:underline;cursor:pointer;
}

/* ---------- Pannello a scomparsa ---------- */
.pannello{
  margin:0 0 0 auto;
  width:min(28rem,100%);
  max-width:100%;
  height:100%;max-height:100%;
  padding:0;
  border:none;border-left:3px solid var(--inchiostro);
  background:var(--crema);
}
.pannello[open]{display:flex;flex-direction:column;animation:entra .25s ease-out}
@keyframes entra{from{transform:translateX(100%)}}
@media (prefers-reduced-motion: reduce){.pannello[open]{animation:none}}

.pannello-testa{
  position:relative;
  display:flex;align-items:center;gap:.6rem;
  padding:1rem 1.1rem;
  background:var(--terra);
}
.pannello-testa h2{color:var(--bianco);font-size:1.15rem;flex:1}
.pannello-testa .dlg-chiudi{position:static;flex:none}
.pannello-indietro{
  flex:none;width:2rem;height:2rem;
  border:2px solid var(--bianco);background:transparent;color:var(--bianco);
  font-size:1.3rem;line-height:1;cursor:pointer;
}
.pannello-indietro[hidden]{display:none}

.passi{display:flex;list-style:none;background:var(--inchiostro)}
.passi li{flex:1;height:5px}
.passi li.attivo{background:var(--oliva)}

.pannello-corpo{flex:1;overflow-y:auto;padding:1.1rem}
.pannello-errore{
  margin:0 1.1rem .6rem;
  padding:.6rem .8rem;
  border:2px solid var(--terra-scuro);
  background:var(--bianco);color:var(--terra-scuro);
  font-weight:700;font-size:.9rem;
}
.pannello-errore[hidden]{display:none}
.pannello-piede{padding:.9rem 1.1rem 1.1rem;border-top:2px solid var(--crema-scura)}

.attesa,.vuoto{font-style:italic;color:#7a6a58;padding:.6rem 0}
.info{margin-top:1rem;font-size:.82rem;color:#7a6a58}

.righe-carrello{list-style:none}
.riga-carrello{
  display:grid;
  grid-template-columns:1fr auto auto auto;
  align-items:center;gap:.5rem .7rem;
  padding:.7rem 0;border-bottom:1px solid var(--crema-scura);
}
.rc-testo strong{display:block;text-transform:uppercase;letter-spacing:.04em;font-size:.95rem}
.rc-testo small{display:block;color:#5a4d40;font-size:.82rem}
.rc-nota{font-style:italic}
.rc-qta{display:flex;align-items:center;gap:.35rem;font-weight:700;font-variant-numeric:tabular-nums}
.rc-qta button{width:1.7rem;height:1.7rem}
.rc-rimuovi{
  width:1.7rem;height:1.7rem;
  border:none;background:none;color:var(--terra-scuro);
  font-size:1.3rem;line-height:1;cursor:pointer;
}
.totale{
  display:flex;align-items:baseline;gap:.5rem;
  margin-top:.9rem;
  font-family:'Playfair Display',serif;font-weight:900;font-size:1.2rem;
  text-transform:uppercase;letter-spacing:.06em;
}

.avviso-carrello{
  margin-top:.6rem;padding:.55rem .7rem;
  border:2px solid var(--terra);
  background:var(--crema);
  font-size:.9rem;font-weight:700;color:var(--terra-scuro);
}

.giorni,.orari{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.chip{
  padding:.45rem .8rem;
  border:2px solid var(--inchiostro);
  background:var(--bianco);
  font-family:inherit;font-weight:700;font-size:.85rem;
  cursor:pointer;font-variant-numeric:tabular-nums;
}
.chip[aria-pressed=true]{background:var(--inchiostro);color:var(--crema)}
.giorni .chip{text-transform:capitalize}

.account{margin-bottom:1rem;font-size:.9rem}
.login{margin-bottom:1.2rem;padding:1rem;border:2px dashed var(--crema-scura)}
.login .dimenticata{margin:.7rem 0 0;font-size:.9rem}

.riepilogo{margin-bottom:1rem;line-height:1.7}
dl.riepilogo{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1rem}
dl.riepilogo dt{font-weight:700}
.payment-element{padding:.9rem;border:2px solid var(--inchiostro);background:var(--bianco);min-height:4rem}
.grazie{
  font-family:'Playfair Display',serif;font-weight:700;font-size:1.15rem;
  color:var(--terra-scuro);margin-bottom:1rem;
}

/* ---------- Footer ---------- */
footer .riservata{margin-top:.9rem;font-size:.8rem;color:#9d8f7c}
footer .riservata a{color:#9d8f7c}

/* ---------- Mappa caricata su richiesta ---------- */
.mappa-consenso{
  min-height:360px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  padding:1.5rem;text-align:center;
  background:var(--crema-scura);
  font-size:.9rem;color:#5a4d40;
}
.mappa-consenso .btn-secondario{width:auto;padding:.6rem 1.2rem}
.info a{color:var(--terra-scuro)}

@media (max-width: 480px){
  .carrello-btn{left:1rem;justify-content:center}
  .riga-carrello{gap:.4rem .5rem}
}

@media print{
  .aggiungi,.carrello-btn,dialog,footer .riservata,.mappa-consenso{display:none !important}
}

/* Punti Unico nel passo "I tuoi dati" */
.punti{margin-bottom:1.2rem;padding:.8rem 1rem;border:2px solid var(--terra);background:var(--crema);font-size:.9rem}
.punti p{margin:0 0 .3rem}
.punti.info{border-style:dashed}
.punti-scelta{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin-top:.4rem;font-weight:700}
.punti-scelta .rc-qta{display:flex;align-items:center;gap:.5rem}
.punti .totale{margin-top:.4rem;font-size:1rem}
