.ln-menu { padding: clamp(3rem, 7vw, 6rem) var(--ln-gutter); display: grid; gap: 2.5rem; }
.ln-menu__aside p { margin-top: 1rem; color: var(--ln-ink-muted); max-width: 30rem; }
.ln-menu__key { list-style: none; padding: 0; margin: 1.5rem 0; display: grid; gap: .5rem; font-size: .9rem; }
.ln-menu__key li { display: flex; align-items: center; gap: .6rem; }
.ln-key { width: 2.25rem; height: .7rem; border-radius: 999px; }
.ln-menu__photo img { width: 100%; max-width: 26rem; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--ln-arch); }
.ln-menu__card { background: var(--ln-paper); border: 1px solid var(--ln-rule); border-radius: 1.25rem; padding: clamp(1.25rem, 4vw, 2.75rem); display: grid; gap: 2rem; }
.ln-menu__group h3 { padding-bottom: .6rem; border-bottom: 1px solid var(--ln-ink); }
.ln-menu__lines, .ln-menu__extras { list-style: none; padding: 0; margin: 0; }
.ln-line { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; column-gap: .6rem; row-gap: .35rem; padding: .9rem 0; border-bottom: 1px solid var(--ln-rule); }
.ln-line__name { font-weight: 600; }
.ln-line__leader { border-bottom: 1px dotted var(--ln-ink-muted); transform: translateY(-.3rem); min-width: 1rem; }
.ln-line__price { font: 400 1.25rem/1 var(--ln-display); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ln-line__time { grid-column: 1; font-size: .85rem; color: var(--ln-ink-muted); }
.ln-line .ln-timebar { grid-column: 2 / -1; align-self: center; }
.ln-line__note { grid-column: 1 / -1; font-size: .85rem; color: var(--ln-ink-muted); }
.ln-timebar { display: flex; gap: 2px; height: .45rem; width: calc(var(--ln-bar, 1) * 100%); }
.ln-timebar__part { flex: var(--ln-minutes) 1 0; border-radius: 999px; }
.ln-menu__extras { display: grid; gap: .5rem; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); margin-top: 1rem; }
.ln-menu__extras li { display: flex; justify-content: space-between; gap: .5rem; padding: .55rem .8rem; background: var(--ln-milk); border-radius: .75rem; }
.ln-menu__extra-time { color: var(--ln-ink-muted); font-variant-numeric: tabular-nums; }
@media (min-width: 64rem) {
  .ln-menu { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 4rem; align-items: start; }
  .ln-menu__aside { position: sticky; top: 6rem; }
  .ln-menu__card { grid-template-columns: 1fr 1fr; column-gap: 3rem; }
  .ln-menu__group--extras { grid-column: 1 / -1; }
}
