/* ------------------------------------------------------------------ */
/*  Restaurant Public Menu — mobile-first, zero framework dependency   */
/* ------------------------------------------------------------------ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --rm-bg:          #fafaf8;
  --rm-surface:     #ffffff;
  --rm-border:      #e8e4df;
  --rm-text:        #1a1a1a;
  --rm-muted:       #6b6560;
  --rm-accent:      #c8392b;
  --rm-nd:          #a0a0a0;
  --rm-radius:      8px;
  --rm-font:        'Segoe UI', system-ui, -apple-system, sans-serif;
}

body.rm-public {
  background: var(--rm-bg);
  color: var(--rm-text);
  font-family: var(--rm-font);
  font-size: 16px;
  line-height: 1.5;
}
ul, ul {
  padding-left: 0 !important;
}
/* HEADER */
.rm-header {
  background: var(--rm-surface);
  border-bottom: 1px solid var(--rm-border);
  padding: 1.5rem 1rem;
  text-align: center;
}
.rm-header__nome  { font-size: 1.6rem; font-weight: 700; }
.rm-header__citta { color: var(--rm-muted); font-size: .9rem; margin-top: .25rem; }
.rm-header__tel   { color: var(--rm-accent); font-size: .9rem; margin-top: .25rem; display: block; }

/* MAIN */
.rm-main { max-width: 90%; margin: 0 auto; padding: 1rem; }

/* MENU SECTION */
.rm-menu { margin-bottom: 2rem; }
.rm-menu__titolo { font-size: 1.2rem; font-weight: 600; margin: 1.5rem 0 .5rem; color: var(--rm-accent); }
.rm-menu__note   { font-size: .85rem; color: var(--rm-muted); margin-bottom: 1rem; font-style: italic; }

/* CATEGORIA */
.rm-categoria { margin-bottom: 1.5rem; }
.rm-categoria__titolo {
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .5rem 0;
  border-bottom: 2px solid var(--rm-border);
  margin-bottom: .75rem;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.rm-categoria__icona { font-size: 1.2rem; }
.rm-categoria__desc  { font-size: .85rem; color: var(--rm-muted); margin-bottom: .75rem; }

/* VOCI */
.rm-voci { list-style: none; display: flex; flex-direction: column; gap: .5rem; }

.rm-voce {
  background: var(--rm-surface);
  border: 1px solid var(--rm-border);
  border-radius: var(--rm-radius);
  padding: .75rem 1rem;
  transition: opacity .2s;
}
.rm-voce--non-disponibile { opacity: .5; }

.rm-voce__header {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem;
}
.rm-voce__nome   { font-weight: 600; font-size: 1rem; }
.rm-voce__prezzo { font-weight: 700; color: var(--rm-accent); white-space: nowrap; }
.rm-voce__desc   { font-size: .85rem; color: var(--rm-muted); margin-top: .25rem; }

/* ATTRIBUTI */
.rm-attributi {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .5rem;
}
.rm-attributo {
  display: flex;
  align-items: center;
  gap: .2rem;
  background: var(--rm-bg);
  border: 1px solid var(--rm-border);
  border-radius: 20px;
  padding: .15rem .5rem;
  font-size: .75rem;
  color: var(--rm-muted);
}
.rm-attributo__icona { font-size: .9rem; }
.rm-attributo__nota  { font-style: italic; }

/* NON DISPONIBILE BADGE */
.rm-voce__badge-nd {
  display: inline-block;
  margin-top: .35rem;
  font-size: .7rem;
  background: var(--rm-border);
  color: var(--rm-nd);
  border-radius: 4px;
  padding: .1rem .4rem;
  text-transform: uppercase;
  letter-spacing: .05em;
}

/* FOOTER */
.rm-footer {
  text-align: center;
  font-size: .75rem;
  color: var(--rm-muted);
  padding: 2rem 1rem;
  border-top: 1px solid var(--rm-border);
}

/* ALERT (riusabile in tutto il modulo) */
.rm-alert {
  padding: 1rem;
  border-radius: var(--rm-radius);
  margin: 1rem;
  font-size: .9rem;
}
.rm-alert--warning { background: #fff8e1; border: 1px solid #ffe082; color: #5d4037; }
.rm-alert--success { background: #e8f5e9; border: 1px solid #a5d6a7; color: #1b5e20; }
.rm-alert--error   { background: #ffebee; border: 1px solid #ef9a9a; color: #b71c1c; }

/* RESPONSIVE */
@media (min-width: 480px) {
  .rm-header { padding: 2rem; }
  .rm-header__nome { font-size: 2rem; }
  .rm-main { padding: 1.5rem; }
}
