.vm-public {
    --vm-ink: #201d1a;
    --vm-panel: #2b2622;
    --vm-card: #342e29;
    --vm-paper: #fff4df;
    --vm-muted: #dfcdb9;
    --vm-accent: #ffae91;
    --vm-line: #665347;
    --vm-font: ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
    background: var(--vm-ink);
    color: var(--vm-paper);
    font: 400 1rem/1.55 var(--vm-font);
}
.vm-public *, .vm-public *::before, .vm-public *::after { box-sizing: border-box; }
.vm-public [hidden] { display: none !important; }
.vm-public h2, .vm-public h3, .vm-public h4, .vm-public p { margin: 0; padding: 0; color: inherit; font-family: var(--vm-font); }
.vm-public a:focus-visible, .vm-public input:focus-visible, .vm-public summary:focus-visible {
    outline: 2px solid var(--vm-accent);
    outline-offset: 3px;
}
.vm-public [id] { scroll-margin-top: var(--vm-scroll-offset, 6rem); }
.vm-public .vm-anchor { display: block; }

.vm-public .vm-hero {
    text-align: center;
    padding: clamp(2.8rem, 9vw, 6rem) 1rem clamp(2.4rem, 7vw, 4.5rem);
    background: radial-gradient(ellipse at top, #713427, #2f211b 67%, var(--vm-ink));
}
.vm-public .vm-hero img { display: block; margin: 0 auto; width: min(72%, 23rem); height: auto; }
.vm-public .vm-hero-place {
    margin-top: 1.15rem;
    color: var(--vm-muted);
    font: 650 .72rem/1.4 var(--vm-font);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.vm-public .vm-hero-title {
    margin-top: .85rem;
    font: 900 clamp(2.6rem, 10vw, 6.25rem)/.95 var(--vm-font);
    letter-spacing: -.075em;
    text-transform: uppercase;
}
.vm-public .vm-nav-slot { position: sticky; top: var(--vm-sticky-top, 0px); z-index: 20; }
body.admin-bar .vm-public .vm-nav-slot { --vm-sticky-top: 32px; }
@media (max-width: 782px) {
    body.admin-bar .vm-public .vm-nav-slot { --vm-sticky-top: 46px; }
}
.vm-public .vm-nav-slot.is-ready { position: relative; top: auto; min-height: var(--vm-nav-height); }
.vm-public .vm-nav-slot.is-fixed .vm-nav-panel {
    position: fixed;
    top: var(--vm-nav-top);
    left: var(--vm-nav-left);
    width: var(--vm-nav-width);
    box-shadow: 0 8px 22px #160f0b66;
}
.vm-public .vm-nav-panel { background: #241b16; }
.vm-public .vm-public-nav {
    display: flex;
    align-items: center;
    gap: .45rem;
    padding: .65rem clamp(.7rem, 2vw, 1.3rem);
    margin: 0;
    border-bottom: 1px solid var(--vm-line);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scrollbar-color: #9e7561 #241b16;
}
.vm-public .vm-public-nav a:first-child { margin-inline-start: auto; }
.vm-public .vm-public-nav a:last-child { margin-inline-end: auto; }
.vm-public .vm-public-nav a {
    flex: none;
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: .35rem clamp(.7rem, 1.7vw, 1.15rem);
    border: 1px solid var(--vm-line);
    border-radius: 2rem;
    color: var(--vm-paper);
    font-family: var(--vm-font);
    font-size: .81rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}
.vm-public .vm-public-nav a:hover { border-color: var(--vm-accent); }
.vm-public .vm-public-nav a[aria-current] {
    border-color: var(--vm-accent);
    background: var(--vm-accent);
    color: #271914;
}
.vm-public .vm-public-nav a:focus-visible { outline-offset: -4px; outline-color: var(--vm-paper); }
.vm-public .vm-public-nav a[aria-current]:focus-visible { outline-color: #271914; }

.vm-public .vm-menu-content {
    max-width: 70rem;
    margin-inline: auto;
    padding: clamp(.85rem, 3vw, 2rem);
}
.vm-public .vm-public-section {
    margin-bottom: clamp(1rem, 4vw, 2.4rem);
    padding: clamp(1.1rem, 4vw, 2.7rem);
    border: 1px solid var(--vm-line);
    border-radius: 1.15rem;
    background: var(--vm-panel);
}
.vm-public .vm-public-section:last-child { margin-bottom: 0; }
.vm-public .vm-public-section > h2 {
    margin-bottom: 1.15rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--vm-line);
    font: 850 clamp(1.8rem, 5.5vw, 3.85rem)/1.02 var(--vm-font);
    letter-spacing: -.05em;
    text-transform: uppercase;
}
.vm-public h3, .vm-public h4 { font: 750 clamp(1.08rem, 3vw, 1.5rem)/1.2 var(--vm-font); }
.vm-public h3 { letter-spacing: -.02em; }
.vm-public .vm-public-group + .vm-public-group, .vm-public .vm-parent { margin-top: 1.55rem; }
.vm-public .vm-group-novita > h3 { color: var(--vm-accent); }
.vm-public .vm-public-note { margin: .55rem 0 .9rem; color: var(--vm-muted); font-size: .9rem; }
.vm-public .vm-allergy-notice { max-width: 60ch; border-left: 2px solid var(--vm-accent); padding-inline-start: .7rem; }
.vm-public .vm-public-list { margin: .35rem 0 0; padding: 0; list-style: none; }
.vm-public .vm-public-item {
    display: flex;
    align-items: flex-start;
    gap: .8rem;
    padding: .8rem 0;
    border-bottom: 1px dashed var(--vm-line);
    list-style: none;
}
.vm-public .vm-public-item:last-child { border-bottom: 0; }
.vm-public .vm-public-copy { flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
.vm-public .vm-public-copy strong { font-family: var(--vm-font); font-weight: 700; }
.vm-public .vm-public-copy p { margin-top: .23rem; color: var(--vm-muted); font-size: .92rem; }
.vm-public .vm-public-copy .vm-meta { font-weight: 600; }
.vm-public .vm-public-copy .vm-allergen { margin-top: .4rem; font-size: .76rem; }
.vm-public .vm-allergen a { color: var(--vm-accent); text-decoration: underline; text-underline-offset: .15em; }
.vm-public .vm-public-prices {
    flex: 0 0 auto;
    max-width: 40%;
    color: var(--vm-accent);
    text-align: right;
    font: 700 .96rem/1.4 var(--vm-font);
    font-variant-numeric: tabular-nums;
    overflow-wrap: anywhere;
}
.vm-public .vm-public-prices div + div { margin-top: .35rem; }
.vm-public .vm-public-prices span { display: block; color: var(--vm-muted); font: .76rem/1.4 var(--vm-font); }
.vm-public .vm-public-photo {
    width: clamp(2.4rem, 10vw, 4.5rem);
    height: clamp(3.4rem, 13vw, 5.75rem);
    object-fit: cover;
    border-radius: .4rem;
}
.vm-public [data-tab="pizze"] .vm-public-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin-top: .65rem;
}
.vm-public [data-tab="pizze"] .vm-public-item {
    padding: .85rem;
    background: var(--vm-card);
    border: 1px solid var(--vm-line);
    border-radius: .65rem;
}
.vm-public summary { padding: .5rem 0; color: var(--vm-accent); cursor: pointer; font-weight: 700; }
.vm-public .vm-wine-search { display: block; margin-bottom: 1rem; font-weight: 650; }
.vm-public .vm-wine-search input {
    display: block;
    width: min(100%, 32rem);
    min-height: 44px;
    margin-top: .35rem;
    padding: .65rem .8rem;
    border: 1px solid var(--vm-line);
    border-radius: .45rem;
    background: var(--vm-ink);
    color: var(--vm-paper);
    font: inherit;
    font-weight: 400;
}
.vm-public .vm-wine-search input::placeholder { color: var(--vm-muted); }
@media (max-width: 640px) {
    .vm-public [data-tab="pizze"] .vm-public-list { grid-template-columns: minmax(0, 1fr); }
    .vm-public .vm-public-section { border-radius: .8rem; }
}
@media print {
    .vm-public { --vm-ink: white; --vm-panel: white; --vm-card: white; --vm-paper: black; --vm-muted: #333; --vm-accent: #333; }
    .vm-public .vm-nav-slot, .vm-public .vm-wine-search, .vm-public .vm-hero img { display: none; }
    .vm-public .vm-hero { background: white; }
}
