/* ==========================================================================
   Menu digitale (app a colonna singola, senza header/footer del sito)
   Schede a pillola, categorie come accordion con contatore, piatti con prezzo a puntini, badge colorati per i
   tag e chip per gli allergeni. Tema scuro (default) o chiaro: menu.js imposta data-menu-theme su <html>.
   ========================================================================== */
.theme-menu {
    --menu-bg: #050506;
    --menu-surface: #111114;
    --menu-surface-2: #1a1a1f;
    --menu-border: rgba(255, 255, 255, .09);
    --menu-text: #fff;
    --menu-muted: #9c9ca6;
    --menu-active-bg: #fff;
    --menu-active-text: #000;
    --menu-dot: rgba(255, 255, 255, .28);
    --menu-shadow: 0 .5rem 1.5rem rgba(255, 255, 255, .12);
    min-height: 100vh;
    background-color: var(--menu-bg);
    color: var(--menu-text);
    padding-bottom: 3rem;
    color-scheme: dark
}
html[data-menu-theme="light"] .theme-menu {
    --menu-bg: #f3f3f6;
    --menu-surface: #fff;
    --menu-surface-2: #e9e9ee;
    --menu-border: rgba(0, 0, 0, .09);
    --menu-text: #101014;
    --menu-muted: #62626d;
    --menu-active-bg: #101014;
    --menu-active-text: #fff;
    --menu-dot: rgba(0, 0, 0, .3);
    --menu-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .18);
    color-scheme: light
}
html[data-menu-theme="light"],
html[data-menu-theme="light"] body {
    background: #f3f3f6
}
.theme-menu [hidden] {
    display: none !important
}
.theme-menu a {
    color: inherit
}
.theme-menu-content,
.theme-menu-note,
.theme-menu-tabs-track,
.theme-menu-cover-inner {
    max-width: 40rem;
    margin-left: auto;
    margin-right: auto
}

/* Schermata di ingresso */
.theme-menu-splash {
    position: fixed;
    inset: 0;
    z-index: 1050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem;
    background: radial-gradient(circle at 50% 30%, var(--menu-surface-2), var(--menu-bg) 70%);
    text-align: center
}
.theme-menu-splash-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2rem
}
.theme-menu-splash-enter {
    padding: .85rem 2.25rem;
    border: 1px solid var(--menu-text);
    border-radius: 3rem;
    background: transparent;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--menu-text)
}
.theme-menu-splash-enter:hover,
.theme-menu-splash-enter:focus-visible {
    background: var(--menu-active-bg);
    color: var(--menu-active-text)
}
.theme-menu-splash-langs {
    display: flex;
    gap: .5rem;
    margin: 0;
    padding: 0;
    list-style: none
}

/* Copertina */
.theme-menu-cover {
    position: relative;
    padding: 3.5rem 1.25rem 2rem;
    background: linear-gradient(180deg, var(--menu-surface-2), var(--menu-bg));
    text-align: center
}
.theme-menu-lang {
    position: absolute;
    top: .85rem;
    right: .85rem;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .35rem
}
.theme-menu-lang-link {
    display: inline-block;
    min-width: 2.4rem;
    padding: .3rem .6rem;
    border: 1px solid var(--menu-border);
    border-radius: .7rem;
    background: var(--menu-surface);
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-align: center;
    text-decoration: none;
    color: var(--menu-muted) !important
}
.theme-menu-lang-link:hover,
.theme-menu-lang-link:focus-visible {
    color: var(--menu-text) !important
}
.theme-menu-lang-link.is-current {
    background: var(--menu-active-bg);
    border-color: var(--menu-active-bg);
    color: var(--menu-active-text) !important
}
.theme-menu-brand {
    display: inline-block;
    margin-bottom: 1rem;
    text-decoration: none
}
.theme-menu-brand img {
    width: auto;
    max-width: 14rem;
    height: 3.5rem;
    object-fit: contain
}
.theme-menu-brand-text {
    font-size: 1.1rem;
    font-weight: 800;
    letter-spacing: .25em;
    text-transform: uppercase
}
.theme-menu-title {
    margin: 0 0 .35rem;
    font-size: clamp(1.4rem, 5vw, 1.9rem);
    font-weight: 600;
    line-height: 1.1
}
.theme-menu-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
    margin-top: 1.1rem
}
.theme-menu-action {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    min-height: 2.5rem;
    padding: .45rem 1.1rem;
    border: 1px solid var(--menu-border);
    border-radius: 3rem;
    background: var(--menu-surface);
    font-size: .85rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--menu-text) !important
}
.theme-menu-action-icon {
    flex: 0 0 auto
}
.theme-menu-action:hover,
.theme-menu-action:focus-visible {
    background: var(--menu-active-bg);
    border-color: var(--menu-active-bg);
    color: var(--menu-active-text) !important
}
.theme-menu-action-compact .theme-menu-action-label {
    display: inline
}
@media (max-width: 767.98px) {
    /* Su mobile Raggiungici e Chiamaci mostrano solo l'icona; l'etichetta resta per i lettori di schermo. */
    .theme-menu-action-compact {
        position: relative;
        justify-content: center;
        width: 2.5rem;
        padding: .45rem
    }
    .theme-menu-action-compact .theme-menu-action-label {
        position: absolute;
        width: 1px;
        height: 1px;
        margin: -1px;
        padding: 0;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0
    }
}
/* Conto (cuore): scheda bianca con icona scura, cuore sui piatti, riepilogo con coperto e totale */
/* Doppia classe: la scheda del cuore resta bianca con icona scura in ogni stato e tema, anche se le regole base delle pillole vengono dopo */
.theme-menu-pill.theme-menu-pill-heart,
.theme-menu-pill.theme-menu-pill-heart:hover,
.theme-menu-pill.theme-menu-pill-heart:focus-visible,
.theme-menu-pill.theme-menu-pill-heart.is-active {
    position: relative;
    background: #fff;
    border-color: #fff;
    color: #101014 !important
}
.theme-menu-pill-heart .theme-menu-heart-icon {
    fill: currentColor
}
.theme-menu-pill.theme-menu-pill-heart.is-active {
    box-shadow: 0 0 0 2px var(--menu-text)
}
.theme-menu-pill-count {
    position: absolute;
    top: -.2rem;
    right: -.2rem;
    min-width: 1.2rem;
    height: 1.2rem;
    padding: 0 .3rem;
    border-radius: 1rem;
    background: #d9304f;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1.2rem;
    text-align: center;
    color: #fff
}
.theme-menu-heart {
    flex: 0 0 auto;
    align-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    margin-left: .5rem;
    padding: 0;
    border: 1px solid var(--menu-border);
    border-radius: 50%;
    background: var(--menu-surface-2);
    color: var(--menu-muted)
}
.theme-menu-heart .theme-menu-heart-icon {
    fill: none
}
.theme-menu-heart[aria-pressed="true"] {
    background: #fff;
    border-color: #fff;
    color: #101014
}
.theme-menu-heart[aria-pressed="true"] .theme-menu-heart-icon {
    fill: currentColor
}
.theme-menu-heart:hover,
.theme-menu-heart:focus-visible {
    color: var(--menu-text)
}
.theme-menu-heart[aria-pressed="true"]:hover,
.theme-menu-heart[aria-pressed="true"]:focus-visible {
    color: #101014
}
.theme-menu-bill-list {
    margin: 0;
    padding: 0;
    list-style: none
}
.theme-menu-bill-row {
    padding: .5rem 0
}
/* Una porzione = un list-group di Bootstrap con i colori del tema (chiaro/scuro) */
.theme-menu-bill-card {
    --bs-list-group-bg: var(--menu-surface-2);
    --bs-list-group-color: var(--menu-text);
    --bs-list-group-border-color: var(--menu-border);
    --bs-list-group-border-radius: .9rem;
    margin: 0;
    padding: 0
}
.theme-menu-bill-card .list-group-item {
    padding: .65rem .9rem
}
.theme-menu-bill-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .75rem
}
.theme-menu-bill-title {
    display: flex;
    flex-direction: column;
    min-width: 0
}
.theme-menu-bill-name {
    font-weight: 800;
    overflow-wrap: anywhere
}
.theme-menu-bill-original {
    font-size: .9rem;
    color: var(--menu-muted)
}
.theme-menu-bill-actions {
    display: flex;
    flex: 0 0 auto;
    gap: .35rem
}
/* Pulsanti solo icona (Modifica, Duplica: btn-outline-dark nel tema chiaro e btn-outline-light nello scuro; Elimina: btn-outline-danger) */
.theme-menu-bill-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    border-radius: 50%
}
.theme-menu-bill-final {
    display: flex;
    justify-content: flex-end
}
.theme-menu-bill-line {
    font-weight: 800;
    white-space: nowrap
}
.theme-menu-bill-totals {
    margin: 1rem 0 0
}
.theme-menu-bill-totals > div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .35rem 0
}
.theme-menu-bill-totals dt,
.theme-menu-bill-totals dd {
    margin: 0
}
.theme-menu-bill-totals small {
    color: var(--menu-muted);
    font-weight: 600
}
.theme-menu-bill-totals .is-total {
    margin-top: .4rem;
    padding-top: .75rem;
    border-top: 2px solid var(--menu-surface-2);
    font-size: 1.25rem;
    font-weight: 800
}
.theme-menu-bill-note {
    margin: 1rem 0 0;
    font-size: .85rem;
    color: var(--menu-muted)
}
.theme-menu-bill .theme-menu-reset {
    margin-top: .75rem
}
/* Schede a pillola */
.theme-menu-tabs {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: .75rem 1rem;
    background: color-mix(in srgb, var(--menu-bg) 92%, transparent);
    backdrop-filter: blur(10px)
}
/* Schede: Home, Ricerca e Cuore restano fermi; le altre (da "Piatti del giorno") scorrono in orizzontale (touch e trackpad) */
.theme-menu-tabs-track {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .25rem .1rem
}
.theme-menu-tabs-fixed {
    display: flex;
    flex: 0 0 auto;
    gap: .6rem
}
.theme-menu-tabs-scroll {
    display: flex;
    flex: 1 1 auto;
    gap: .6rem;
    min-width: 0;
    padding: .25rem;
    margin: -.25rem;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none
}
.theme-menu-tabs-scroll::-webkit-scrollbar {
    display: none
}
/* Trascinabile con il mouse (menu.js) */
@media (hover: hover) and (pointer: fine) {
    .theme-menu-tabs-scroll {
        cursor: grab;
        user-select: none
    }
    .theme-menu-tabs-scroll a {
        -webkit-user-drag: none
    }
    .theme-menu-tabs-scroll.is-dragging {
        cursor: grabbing;
        user-select: none
    }
}
/* Sfumatura sul lato dove ci sono altre schede (classi messe da menu.js) */
.theme-menu-tabs-scroll.has-more-end {
    -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent);
    mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent)
}
.theme-menu-tabs-scroll.has-more-start {
    -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 2rem), transparent);
    mask-image: linear-gradient(to left, #000 calc(100% - 2rem), transparent)
}
.theme-menu-tabs-scroll.has-more-start.has-more-end {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 2rem, #000 calc(100% - 2rem), transparent);
    mask-image: linear-gradient(to right, transparent, #000 2rem, #000 calc(100% - 2rem), transparent)
}
.theme-menu-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .5rem 1.25rem;
    border: 1px solid var(--menu-border);
    border-radius: 3rem;
    background: var(--menu-surface);
    font-size: .95rem;
    font-weight: 800;
    letter-spacing: .02em;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--menu-muted) !important;
    transition: background-color .2s, color .2s, box-shadow .2s
}
.theme-menu-pill-icon {
    width: 2.75rem;
    padding: 0
}
.theme-menu-pill:hover,
.theme-menu-pill:focus-visible {
    color: var(--menu-text) !important
}
.theme-menu-pill.is-active {
    background: var(--menu-active-bg);
    border-color: var(--menu-active-bg);
    color: var(--menu-active-text) !important;
    box-shadow: var(--menu-shadow)
}
/* Piatti del giorno: scheda e card in un colore diverso dalle altre */
.theme-menu {
    --menu-daily: #f2b705;
    --menu-daily-text: #1a1400;
    --menu-daily-soft: rgba(242, 183, 5, .12)
}
html[data-menu-theme="light"] .theme-menu {
    --menu-daily: #e0a000;
    --menu-daily-soft: rgba(224, 160, 0, .14)
}
.theme-menu-pill-daily {
    border-color: var(--menu-daily);
    background: var(--menu-daily-soft);
    color: var(--menu-daily) !important
}
.theme-menu-pill-daily:hover,
.theme-menu-pill-daily:focus-visible {
    color: var(--menu-daily-text) !important;
    background: var(--menu-daily)
}
.theme-menu-pill-daily.is-active {
    background: var(--menu-daily);
    border-color: var(--menu-daily);
    color: var(--menu-daily-text) !important;
    box-shadow: 0 .5rem 1.5rem var(--menu-daily-soft)
}
.theme-menu-daily-card {
    border-color: var(--menu-daily);
    background: linear-gradient(180deg, var(--menu-daily-soft), var(--menu-surface) 60%)
}
.theme-menu-theme-toggle {
    position: absolute;
    top: .85rem;
    left: .85rem;
    min-height: 2.4rem;
    width: 2.4rem
}
.theme-menu-icon-sun {
    display: none
}
html[data-menu-theme="light"] .theme-menu-icon-moon {
    display: none
}
html[data-menu-theme="light"] .theme-menu-icon-sun {
    display: block
}

/* Pannelli (con JavaScript ne resta uno solo visibile) */
.theme-menu-content {
    padding: 1.25rem 1rem 0
}
.theme-menu.is-enhanced [data-menu-panel]:not(.is-active) {
    display: none
}
.theme-menu-panel-title {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0
}
.theme-menu-section {
    margin-bottom: 2rem
}
.theme-menu-section-description {
    margin: 0 0 1rem;
    color: var(--menu-muted)
}
.theme-menu-card,
.theme-menu-acc {
    overflow: hidden;
    margin-bottom: .9rem;
    border: 1px solid var(--menu-border);
    border-radius: 1.5rem;
    background: var(--menu-surface)
}
.theme-menu-card {
    padding: .25rem 1.25rem
}

/* Accordion delle categorie */
.theme-menu-acc-summary {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 1.25rem 1.25rem 1.25rem 1.5rem;
    list-style: none;
    cursor: pointer
}
.theme-menu-acc-summary::-webkit-details-marker {
    display: none
}
.theme-menu-acc-summary::before {
    content: "";
    flex: 0 0 .3rem;
    align-self: stretch;
    border-radius: .3rem;
    background: var(--menu-surface-2)
}
.theme-menu-acc-summary:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: -4px;
    border-radius: 1.5rem
}
.theme-menu-acc-summary .theme-menu-section-title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 1.35rem;
    font-weight: 800
}
.theme-menu-acc-count {
    min-width: 2.2rem;
    padding: .2rem .6rem;
    border-radius: 1rem;
    background: var(--menu-surface-2);
    font-size: .9rem;
    font-weight: 800;
    text-align: center;
    color: var(--menu-muted)
}
.theme-menu-acc-chevron {
    flex: 0 0 auto;
    color: var(--menu-muted);
    transition: transform .2s
}
.theme-menu-acc[open] .theme-menu-acc-chevron {
    transform: rotate(180deg)
}
.theme-menu-acc-body {
    padding: 0 1.25rem 1rem
}
.theme-menu-subsection {
    margin-top: 1.25rem
}
.theme-menu-subsection-title {
    margin: 0 0 .25rem;
    padding-bottom: .35rem;
    border-bottom: 2px solid var(--menu-surface-2);
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--menu-muted)
}

/* Piatti */
.theme-menu-items {
    margin: 0;
    padding: 0;
    list-style: none
}
.theme-menu-item {
    display: flex;
    flex-direction: column;
    gap: .75rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--menu-border)
}
.theme-menu-item:last-child {
    border-bottom: 0
}
.theme-menu-item-media {
    display: block;
    margin: 0 -1.25rem;
    width: auto;
    overflow: hidden
}
.theme-menu-item.has-image {
    padding-top: 0
}
.theme-menu-item.has-image:first-child .theme-menu-item-media {
    margin-top: -.25rem
}
.theme-menu-item-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 10;
    object-fit: cover
}
.theme-menu-item-body {
    width: 100%;
    min-width: 0
}
.theme-menu-item-head {
    display: flex;
    align-items: baseline;
    gap: .6rem
}
.theme-menu-item-name {
    flex: 0 1 auto;
    margin: 0;
    font-size: 1.1rem;
    font-weight: 800;
    line-height: 1.25
}
.theme-menu-item-leader {
    flex: 1 1 1rem;
    min-width: 1rem;
    border-bottom: 2px dotted var(--menu-dot);
    transform: translateY(-.25rem)
}
.theme-menu-item-price {
    flex: 0 0 auto;
    font-size: 1.1rem;
    font-weight: 800;
    white-space: nowrap
}
.theme-menu-item-badge {
    margin-left: auto;
    padding: .1rem .65rem;
    border-radius: 1rem;
    background: var(--menu-surface-2);
    font-size: .75rem;
    font-weight: 700;
    color: var(--menu-muted)
}
.theme-menu-item-description {
    margin: 0;
    font-size: .95rem;
    line-height: 1.45;
    color: var(--menu-muted)
}
.theme-menu-item-tags,
.theme-menu-item-allergens {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .6rem 0 0;
    padding: 0;
    list-style: none
}
.theme-menu-item-tag {
    padding: .15rem .65rem;
    border-radius: 1rem;
    background: #f2c200;
    font-size: .75rem;
    font-weight: 800;
    color: #1a1400
}
.theme-menu-item-extras {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: .25rem .75rem;
    margin-top: .6rem;
    font-size: .85rem
}
.theme-menu-item-extras-label {
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-size: .72rem;
    color: var(--menu-muted)
}
.theme-menu-item-extras ul {
    display: flex;
    flex-wrap: wrap;
    gap: .25rem .9rem;
    margin: 0;
    padding: 0;
    list-style: none
}
.theme-menu-item-extra-price {
    font-weight: 800
}
/* Modale di modifica del piatto */
.theme-menu-modal {
    width: min(34rem, calc(100% - 1.5rem));
    max-height: calc(100% - 2rem);
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--menu-border);
    border-radius: 1.5rem;
    background: var(--menu-surface);
    color: var(--menu-text)
}
.theme-menu-modal::backdrop {
    background: rgba(0, 0, 0, .6)
}
.theme-menu-modal-box {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 2rem);
    max-height: calc(100dvh - 2rem)
}
.theme-menu-modal-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.25rem .75rem 1.5rem
}
.theme-menu-modal-title {
    flex: 1 1 auto;
    margin: 0;
    font-size: 1.3rem;
    font-weight: 800
}
.theme-menu-modal-close {
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 50%;
    background: var(--menu-surface-2);
    font-size: 1.4rem;
    line-height: 1;
    color: var(--menu-text)
}
.theme-menu-modal-body {
    overflow-y: auto;
    padding: 0 1.5rem 1rem
}
.theme-menu-modal-heading {
    margin: 1rem 0 .25rem;
    font-size: .8rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--menu-muted)
}
.theme-menu-modal-hint {
    margin: 0 0 .5rem;
    font-size: .85rem;
    color: var(--menu-muted)
}
.theme-menu-modal-list {
    margin: 0;
    padding: 0;
    list-style: none
}
.theme-menu-modal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--menu-border)
}
.theme-menu-modal-row:last-child {
    border-bottom: 0
}
.theme-menu-modal-choice {
    display: flex;
    align-items: center;
    gap: .6rem;
    cursor: pointer
}
.theme-menu-modal-choice input {
    width: 1.25rem;
    height: 1.25rem;
    margin: 0;
    accent-color: var(--menu-active-bg);
    cursor: pointer
}
.theme-menu-modal-choice input:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: 2px
}
.theme-menu-modal-price {
    font-weight: 800;
    white-space: nowrap
}
/* Chip degli ingredienti nella modale (come nel conto: tolto = badge danger, aggiunta = badge success) */
.theme-menu-chips {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin: .5rem 0 1rem
}
.theme-menu-ingchip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    margin: 0;
    padding: .3rem .7rem;
    border: 1px solid var(--menu-border);
    border-radius: 3rem;
    background: var(--menu-surface-2);
    font-size: .9rem;
    font-weight: 600;
    line-height: 1.3;
    color: var(--menu-text);
    white-space: normal;
    cursor: pointer
}
.theme-menu-ingchip.badge {
    border-color: transparent;
    font-weight: 700
}
.theme-menu-ingchip input {
    flex: 0 0 auto;
    width: .9rem;
    height: .9rem;
    margin: 0;
    accent-color: var(--menu-active-bg);
    cursor: pointer
}
.theme-menu-ingchip.badge input {
    accent-color: #fff
}
.theme-menu-ingchip input:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px
}
/* Aggiunte: select multipla con ricerca (in flusso, senza menu flottante) */
.theme-menu-multi-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    min-height: 2.75rem;
    padding: .55rem 1rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg);
    font-size: .95rem;
    text-align: left;
    color: var(--menu-text)
}
.theme-menu-multi-toggle[aria-expanded="true"] .theme-menu-order-type-chevron {
    transform: rotate(-135deg)
}
.theme-menu-multi-toggle:focus-visible,
.theme-menu-multi-search:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: 2px
}
.theme-menu-multi-panel {
    margin-top: .5rem;
    padding: .6rem .8rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg)
}
.theme-menu-multi-search {
    width: 100%;
    margin-bottom: .4rem;
    padding: .5rem .8rem;
    border: 1px solid var(--menu-border);
    border-radius: .8rem;
    background: var(--menu-surface);
    font-size: .95rem;
    color: var(--menu-text)
}
.theme-menu-multi-panel .theme-menu-modal-list {
    max-height: 12rem;
    overflow-y: auto
}
.theme-menu-modal-foot {
    background: transparent;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--menu-border)
}
.theme-menu-modal-total {
    flex: 1 1 100%;
    display: flex;
    justify-content: space-between;
    margin: 0;
    font-size: 1.05rem
}
/* Ordine da asporto */
.theme-menu-takeaway {
    display: block;
    width: 100%;
    min-height: 3rem;
    margin-top: 1rem;
    padding: .6rem 1.25rem;
    border: 1px solid var(--menu-active-bg);
    border-radius: 3rem;
    background: var(--menu-active-bg);
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--menu-active-text)
}
.theme-menu-takeaway:hover,
.theme-menu-takeaway:focus-visible {
    box-shadow: var(--menu-shadow)
}
.theme-menu-order-summary {
    margin: 0 0 .5rem;
    padding: 0;
    list-style: none
}
.theme-menu-order-line {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    padding: .5rem 0;
    border-bottom: 1px solid var(--menu-border)
}
.theme-menu-order-line-text {
    display: flex;
    flex-direction: column;
    min-width: 0
}
.theme-menu-order-line-details {
    font-size: .85rem;
    color: var(--menu-muted)
}
.theme-menu-order-line-price {
    font-weight: 800;
    white-space: nowrap
}
.theme-menu-order-total {
    margin: .5rem 0 1rem
}
.theme-menu-order-fee {
    margin: .5rem 0 0
}
.theme-menu-order-types {
    display: flex;
    flex-direction: column;
    gap: .6rem
}
.theme-menu-order-type {
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    overflow: hidden
}
.theme-menu-order-type.is-open {
    border-color: var(--menu-text)
}
.theme-menu-order-type-title {
    margin: 0;
    font-size: 1rem
}
.theme-menu-order-type-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    min-height: 3rem;
    padding: .6rem 1rem;
    border: 0;
    background: transparent;
    font-weight: 800;
    letter-spacing: .04em;
    text-align: left;
    text-transform: uppercase;
    color: var(--menu-text)
}
.theme-menu-order-type-head:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: -2px
}
.theme-menu-order-type-chevron {
    width: .6rem;
    height: .6rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s
}
.theme-menu-order-type.is-open .theme-menu-order-type-chevron {
    transform: rotate(-135deg)
}
.theme-menu-order-type-panel {
    padding: 0 1rem 1rem
}
.theme-menu-order-table-text {
    margin: 0;
    font-size: 1rem
}
.theme-menu-field select {
    width: 100%;
    padding: .65rem .9rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg);
    font-size: 1rem;
    color: var(--menu-text)
}
.theme-menu-field select[aria-invalid="true"] {
    border-color: #dc3545
}
.theme-menu-order-wait {
    margin: 0 0 1rem;
    padding: .7rem .9rem;
    border: 1px solid var(--menu-daily);
    border-radius: 1rem;
    background: var(--menu-daily-soft);
    font-size: .92rem
}
.theme-menu-order-wait:empty {
    display: none
}
.theme-menu-field {
    margin-bottom: .8rem
}
.theme-menu-field label {
    display: block;
    margin-bottom: .25rem;
    font-size: .85rem;
    font-weight: 700;
    color: var(--menu-muted)
}
.theme-menu-field input,
.theme-menu-field textarea {
    width: 100%;
    padding: .65rem .9rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg);
    font-size: 1rem;
    color: var(--menu-text)
}
.theme-menu-field input:focus-visible,
.theme-menu-field textarea:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: 2px
}
.theme-menu-field input[aria-invalid="true"] {
    border-color: #dc3545
}
.theme-menu-field-hp {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden
}
.theme-menu-field-check {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    margin: 0 0 .8rem;
    font-size: .9rem
}
.theme-menu-field-check input {
    flex: 0 0 auto;
    width: 1.25rem;
    height: 1.25rem;
    margin-top: .1rem;
    accent-color: var(--menu-active-bg)
}
.theme-menu-order-code {
    margin: 0 0 .5rem;
    font-size: 1.5rem;
    font-weight: 800;
    letter-spacing: .08em
}
.theme-menu-order-feedback {
    min-height: 1.4rem;
    margin: .5rem 0;
    font-size: .9rem;
    font-weight: 700;
    color: #dc3545
}
.theme-menu-order-submit,
.theme-menu-order-done-close {
    width: 100%
}
.theme-menu-modal-remove,
.theme-menu-modal-apply {
    min-height: 2.75rem;
    padding: .5rem 1.25rem;
    border-radius: 3rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .03em
}
/* Rimuovi: stile btn-outline-danger di Bootstrap (colori e stati), qui solo forma e misure */
.theme-menu-modal-remove {
    flex: 0 0 auto
}
.theme-menu-modal-apply {
    flex: 1 1 auto;
    border: 1px solid var(--menu-active-bg);
    background: var(--menu-active-bg);
    color: var(--menu-active-text)
}
/* Ingredienti nel conto: nomi del piatto separati da virgola; tolti ("- nome") e aggiunti ("+ nome") in un badge Bootstrap
   danger/success (colori con contrasto garantito in entrambi i temi) */
.theme-menu-bill-ingredients {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .25rem .4rem;
    margin: 0;
    font-size: .9rem;
    color: var(--menu-muted);
    overflow-wrap: anywhere
}
.theme-menu-bill-ingredient {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .01em;
    text-transform: none
}
.theme-menu-item-allergen {
    padding: .3rem .8rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg);
    font-size: .8rem;
    font-weight: 600;
    color: var(--menu-text)
}
.theme-menu-item.is-unavailable .theme-menu-item-media,
.theme-menu-item.is-unavailable .theme-menu-item-name,
.theme-menu-item.is-unavailable .theme-menu-item-description {
    opacity: .5
}

/* Colori dei badge dei tag (anche nei chip del filtro) */
.theme-menu-badge-vegan { background: #1f9d55; color: #fff }
.theme-menu-badge-vegetarian { background: #7cb518; color: #101400 }
.theme-menu-badge-gluten_free { background: #f2c200; color: #1a1400 }
.theme-menu-badge-lactose_free { background: #1d9bd1; color: #fff }
.theme-menu-badge-spicy { background: #d9304f; color: #fff }
.theme-menu-badge-house_special { background: #f2c200; color: #1a1400 }
.theme-menu-badge-organic { background: #14958f; color: #fff }

/* Ricerca e filtri (guida alle icone) */
.theme-menu-search-panel {
    padding: 1.25rem;
    border: 1px solid var(--menu-border);
    border-radius: 1.5rem;
    background: var(--menu-surface)
}
.theme-menu-search-title {
    margin: 0 0 .75rem;
    font-size: 1.35rem;
    font-weight: 800
}
.theme-menu-search-input {
    width: 100%;
    padding: .8rem 1.25rem;
    border: 1px solid var(--menu-border);
    border-radius: 2rem;
    background: var(--menu-bg);
    font-size: 1rem;
    color: var(--menu-text)
}
.theme-menu-search-input::placeholder {
    color: var(--menu-muted)
}
.theme-menu-search-input:focus-visible {
    outline: 2px solid var(--menu-text);
    outline-offset: 2px
}
.theme-menu-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    margin: 1rem 0 0;
    padding: 0;
    border: 0
}
.theme-menu-filter-legend {
    float: none;
    width: 100%;
    margin: 0;
    padding: 0;
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--menu-muted)
}
.theme-menu-chip {
    position: relative;
    cursor: pointer
}
.theme-menu-chip input {
    position: absolute;
    opacity: 0;
    pointer-events: none
}
.theme-menu-chip span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .4rem .9rem;
    border: 1px solid var(--menu-border);
    border-radius: 1rem;
    background: var(--menu-bg);
    font-size: .85rem;
    font-weight: 700;
    color: var(--menu-text);
    transition: box-shadow .2s, opacity .2s
}
.theme-menu-chip span[class*="theme-menu-badge-"] {
    border-color: transparent
}
.theme-menu-chip-count {
    min-width: 1.4rem;
    padding: 0 .35rem;
    border-radius: 1rem;
    background: rgba(0, 0, 0, .25);
    font-size: .75rem;
    text-align: center
}
.theme-menu-chip input:not(:checked) + span[class*="theme-menu-badge-"] {
    opacity: .75
}
.theme-menu-chip input:checked + span {
    box-shadow: 0 0 0 2px var(--menu-text)
}
.theme-menu-chip-exclude input:checked + span {
    background: #7a2a2a;
    border-color: #b84a4a;
    color: #fff;
    text-decoration: line-through
}
.theme-menu-chip input:focus-visible + span {
    outline: 2px solid var(--menu-text);
    outline-offset: 2px
}
.theme-menu-toolbar-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 1.75rem;
    margin-top: 1rem
}
.theme-menu-results {
    margin: 0;
    font-size: .9rem;
    color: var(--menu-muted)
}
.theme-menu-reset {
    padding: 0;
    border: 0;
    background: none;
    font-size: .85rem;
    text-decoration: underline;
    color: var(--menu-text)
}
.theme-menu-results-list .theme-menu-item-path {
    margin: 0 0 .15rem;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--menu-muted)
}
.theme-menu-empty {
    padding: 1.5rem 0;
    text-align: center;
    color: var(--menu-muted)
}

/* Nota finale */
.theme-menu-note {
    background: transparent;
    padding: 1.5rem 1rem 0;
    text-align: center;
    font-size: .85rem;
    color: var(--menu-muted)
}
.theme-menu-back {
    text-decoration: underline
}
@media (min-width: 768px) {
    .theme-menu {
        max-width: 44rem;
        margin: 0 auto
    }
}
@media (prefers-reduced-motion: reduce) {
    .theme-menu-pill,
    .theme-menu-acc-chevron,
    .theme-menu-chip span {
        transition: none
    }
}

