#restaurant-menu-page {
  overflow: clip;
}

#restaurant-menu-page .rm-hero__grid,
#restaurant-menu-page .rm-lingering__grid,
#restaurant-menu-page .rm-menu-guide__grid,
#restaurant-menu-page .rm-shareables__grid,
#restaurant-menu-page .rm-sweets__grid,
#restaurant-menu-page .rm-felt__grid,
#restaurant-menu-page .rm-groups__grid,
#restaurant-menu-page .rm-booking__grid {
  display: grid;
  min-width: 0;
}

#restaurant-menu-page .rm-hero__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-hero__copy { min-width: 0; max-width: 32.5rem; }
#restaurant-menu-page .rm-hero__media { width: 100%; min-width: 0; aspect-ratio: 4 / 3; margin: 0; }
#restaurant-menu-page .rm-hero__media img { width: 100%; height: 100%; object-fit: cover; }
#restaurant-menu-page .rm-hero__actions { display: flex; min-width: 0; flex-wrap: wrap; align-items: center; gap: var(--space-4); margin-top: var(--space-5); }
#restaurant-menu-page .rm-text-link { font-weight: var(--weight-semibold); }
#restaurant-menu-page .rm-hero__proof { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); margin-top: var(--space-5); padding-left: var(--space-4); border-left: 2px solid var(--color-subtle-copper); }
#restaurant-menu-page .rm-hero__proof span { color: var(--color-subtle-copper); font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: .12em; text-transform: uppercase; }
#restaurant-menu-page .rm-hero__proof p { max-width: 35rem; margin: 0; font-size: var(--text-sm); line-height: var(--leading-compact); }

#restaurant-menu-page .rm-lingering__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-lingering__lead { min-width: 0; max-width: 40rem; }
#restaurant-menu-page .rm-lingering__media { width: 100%; min-width: 0; aspect-ratio: 4 / 3; margin: 0; }
#restaurant-menu-page .rm-lingering__media img,
#restaurant-menu-page .rm-shareables__media img,
#restaurant-menu-page .rm-sweets__media img,
#restaurant-menu-page .rm-felt__media img { width: 100%; height: 100%; object-fit: cover; }
#restaurant-menu-page .rm-lingering__company,
#restaurant-menu-page .rm-lingering__lounge { min-width: 0; }
#restaurant-menu-page .rm-lingering__company { max-width: 22.5rem; }
#restaurant-menu-page .rm-lingering__lounge { max-width: 22.5rem; padding: var(--space-5); border: 1px solid var(--color-muted-teal); border-radius: var(--radius-md); background: color-mix(in srgb, var(--color-muted-teal) 7%, var(--color-warm-white)); }

#restaurant-menu-page .rm-menu-guide { border-top: var(--border-subtle); }
#restaurant-menu-page .rm-menu-guide__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
#restaurant-menu-page .rm-menu-guide__intro { min-width: 0; max-width: 38.75rem; }
#restaurant-menu-page .rm-menu-guide__reference { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
#restaurant-menu-page .rm-menu-notice,
#restaurant-menu-page .rm-dietary-legend { min-width: 0; padding: var(--space-4); border: var(--border-subtle); border-radius: var(--radius-sm); background: var(--surface-raised); }
#restaurant-menu-page .rm-menu-notice { background: var(--color-copper-pale); }
#restaurant-menu-page .rm-menu-notice p,
#restaurant-menu-page .rm-dietary-legend p { margin-bottom: 0; }

#restaurant-menu-page .rm-course__inner { max-width: 60rem; margin-left: 0; }
#restaurant-menu-page .rm-course__note { max-width: 32.5rem; }
#restaurant-menu-page .rm-course--mains { background: var(--color-pale-sand); }
#restaurant-menu-page .rm-menu-list { margin: var(--space-5) 0 0; padding: 0; }
#restaurant-menu-page .rm-menu-row { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr) auto; column-gap: var(--space-4); row-gap: var(--space-2); padding: var(--space-4) 0; border-top: var(--border-subtle); }
#restaurant-menu-page .rm-menu-row dt { min-width: 0; font-weight: var(--weight-semibold); }
#restaurant-menu-page .rm-menu-row dd { grid-column: 1; min-width: 0; margin: 0; color: var(--text-muted); font-size: var(--text-sm); line-height: var(--leading-compact); }
#restaurant-menu-page .rm-price { grid-column: 2; grid-row: 1 / span 2; min-width: 4.5rem; align-self: start; color: var(--color-charcoal-ink); font-size: var(--text-sm); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
#restaurant-menu-page .rm-marker { display: inline-block; margin-left: var(--space-2); color: var(--color-teal-deep); font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: .04em; white-space: nowrap; }

#restaurant-menu-page .rm-shareables__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-shareables__intro { min-width: 0; max-width: 37.5rem; }
#restaurant-menu-page .rm-shareables__media { width: 100%; min-width: 0; aspect-ratio: 4 / 3; margin: 0; }
#restaurant-menu-page .rm-shareables__ledgers { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-subledger { min-width: 0; }

#restaurant-menu-page .rm-sweets__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-sweets__heading { min-width: 0; max-width: 43rem; }
#restaurant-menu-page .rm-sweets__media { width: 100%; min-width: 0; aspect-ratio: 3 / 2; margin: 0; }
#restaurant-menu-page .rm-sweets__groups { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }

#restaurant-menu-page .rm-felt { background: var(--color-deep-navy); }
#restaurant-menu-page .rm-felt__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-felt__content { min-width: 0; max-width: 33.75rem; }
#restaurant-menu-page .rm-felt__reassurance { max-width: 40rem; margin-top: var(--space-5); padding: var(--space-4); border-left: 2px solid var(--color-subtle-copper); background: rgb(247 244 236 / 10%); color: var(--color-warm-white); font-size: var(--text-base); font-weight: var(--weight-semibold); line-height: var(--leading-compact); }
#restaurant-menu-page .rm-felt__media { width: 100%; min-width: 0; aspect-ratio: 4 / 3; margin: 0; }
#restaurant-menu-page .rm-felt__paths { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
#restaurant-menu-page .rm-felt__paths article { min-width: 0; }
#restaurant-menu-page .rm-felt__paths h3 { font-size: 1.5rem; }

#restaurant-menu-page .rm-groups { background: var(--color-pale-sand); }
#restaurant-menu-page .rm-groups__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
#restaurant-menu-page .rm-groups__lead { min-width: 0; max-width: 34.5rem; }
#restaurant-menu-page .rm-groups__steps { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); margin: 0; padding: 0; list-style: none; counter-reset: group-steps; }
#restaurant-menu-page .rm-groups__steps li { display: grid; min-width: 0; grid-template-columns: 2rem minmax(0, 1fr); column-gap: var(--space-3); counter-increment: group-steps; }
#restaurant-menu-page .rm-groups__steps li::before { content: counter(group-steps); display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--color-subtle-copper); border-radius: 50%; color: var(--color-charcoal-ink); font-size: var(--text-sm); font-weight: var(--weight-semibold); }
#restaurant-menu-page .rm-groups__steps strong,
#restaurant-menu-page .rm-groups__steps span { grid-column: 2; min-width: 0; }
#restaurant-menu-page .rm-groups__steps span { color: var(--text-muted); font-size: var(--text-sm); line-height: var(--leading-compact); }
#restaurant-menu-page .rm-groups__callout { min-width: 0; max-width: 24rem; padding: var(--space-5); border: var(--border-subtle); border-radius: var(--radius-md); background: var(--surface-raised); }

#restaurant-menu-page .rm-booking__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); align-items: start; }
#restaurant-menu-page .rm-booking__form-wrap { min-width: 0; }
#restaurant-menu-page .rm-booking__intro { max-width: 31.875rem; }
#restaurant-menu-page .rm-booking__form { display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); }
#restaurant-menu-page .rm-required-note { margin: 0; color: var(--text-muted); font-size: var(--text-sm); }
#restaurant-menu-page .rm-booking__fields { display: grid; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
#restaurant-menu-page .rm-field { min-width: 0; }
#restaurant-menu-page .rm-field label { min-width: 0; }
#restaurant-menu-page .rm-field .form-error { margin-bottom: 0; }
#restaurant-menu-page .rm-occasion-details { min-width: 0; }
#restaurant-menu-page .rm-occasion-details summary { color: var(--link-color); font-weight: var(--weight-semibold); cursor: pointer; }
#restaurant-menu-page .rm-occasion-details .rm-field { margin-top: var(--space-4); }
#restaurant-menu-page .rm-consent { display: grid; min-width: 0; grid-template-columns: 1.125rem minmax(0, 1fr); column-gap: var(--space-3); align-items: start; }
#restaurant-menu-page .rm-consent input { grid-column: 1; margin-top: .25rem; }
#restaurant-menu-page .rm-consent label { grid-column: 2; margin: 0; font-size: var(--text-sm); font-weight: var(--weight-regular); }
#restaurant-menu-page .rm-consent .form-error { grid-column: 2; margin-bottom: 0; }
#restaurant-menu-page .rm-error-summary { padding: var(--space-4); border: 1px solid var(--color-error); border-radius: var(--radius-sm); background: var(--color-warm-white); color: var(--color-error); }
#restaurant-menu-page .rm-error-summary p { margin: 0 0 var(--space-2); font-weight: var(--weight-semibold); }
#restaurant-menu-page .rm-error-summary ul { margin: 0; }
#restaurant-menu-page .rm-error-summary a { color: var(--color-error); }
#restaurant-menu-page .rm-booking__aside { min-width: 0; padding: var(--space-5); border-radius: var(--radius-md); }
#restaurant-menu-page .rm-booking__aside p { max-width: 28.75rem; }

@media (max-width: 24.9375rem) {
  #restaurant-menu-page .rm-hero__actions { flex-direction: column; align-items: stretch; }
  #restaurant-menu-page .rm-hero__actions > * { width: 100%; }
}

@media (min-width: 47.5rem) {
  #restaurant-menu-page .rm-menu-guide__grid { grid-template-columns: minmax(0, 7fr) minmax(18.75rem, 5fr); gap: var(--space-7); align-items: start; }
  #restaurant-menu-page .rm-menu-guide__intro { grid-column: 1; }
  #restaurant-menu-page .rm-menu-guide__reference { grid-column: 2; }
  #restaurant-menu-page .rm-shareables__ledgers { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); }
  #restaurant-menu-page .rm-sweets__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #restaurant-menu-page .rm-sweets__groups > :last-child { grid-column: 1 / -1; }
  #restaurant-menu-page .rm-booking__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 50rem) {
  #restaurant-menu-page .rm-lingering__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: start; }
  #restaurant-menu-page .rm-lingering__lead { grid-column: 1; }
  #restaurant-menu-page .rm-lingering__media { grid-column: 2; }
  #restaurant-menu-page .rm-lingering__company { grid-column: 1; }
  #restaurant-menu-page .rm-lingering__lounge { grid-column: 2; }
  #restaurant-menu-page .rm-groups__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: start; }
  #restaurant-menu-page .rm-groups__lead { grid-column: 1; }
  #restaurant-menu-page .rm-groups__steps { grid-column: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
  #restaurant-menu-page .rm-groups__steps li { grid-template-columns: minmax(0, 1fr); row-gap: var(--space-2); }
  #restaurant-menu-page .rm-groups__steps li::before,
  #restaurant-menu-page .rm-groups__steps strong,
  #restaurant-menu-page .rm-groups__steps span { grid-column: 1; }
  #restaurant-menu-page .rm-groups__callout { grid-column: 2; justify-self: end; width: min(100%, 24rem); }
}

@media (min-width: 60rem) {
  #restaurant-menu-page .rm-hero__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-7); align-items: center; min-height: 37.5rem; }
  #restaurant-menu-page .rm-hero__copy { grid-column: 1; }
  #restaurant-menu-page .rm-hero__media { grid-column: 2; aspect-ratio: 3 / 2; }
}

@media (min-width: 64rem) {
  #restaurant-menu-page .rm-lingering__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  #restaurant-menu-page .rm-lingering__lead { grid-column: 1 / span 6; }
  #restaurant-menu-page .rm-lingering__media { grid-column: 8 / span 5; margin-top: var(--space-7); }
  #restaurant-menu-page .rm-lingering__company { grid-column: 2 / span 4; }
  #restaurant-menu-page .rm-lingering__lounge { grid-column: 7 / span 5; max-width: none; }
  #restaurant-menu-page .rm-shareables__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  #restaurant-menu-page .rm-shareables__intro { grid-column: 1 / span 7; }
  #restaurant-menu-page .rm-shareables__media { grid-column: 9 / span 4; }
  #restaurant-menu-page .rm-shareables__ledgers { grid-column: 1 / -1; }
  #restaurant-menu-page .rm-sweets__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  #restaurant-menu-page .rm-sweets__heading { grid-column: 1 / span 7; }
  #restaurant-menu-page .rm-sweets__media { grid-column: 9 / span 4; }
  #restaurant-menu-page .rm-sweets__groups { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #restaurant-menu-page .rm-sweets__groups > :last-child { grid-column: auto; }
  #restaurant-menu-page .rm-felt__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); align-items: start; }
  #restaurant-menu-page .rm-felt__content { grid-column: 1; }
  #restaurant-menu-page .rm-felt__media { grid-column: 2; grid-row: 1 / span 2; }
  #restaurant-menu-page .rm-felt__paths { grid-column: 1; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
  #restaurant-menu-page .rm-booking__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-7); }
  #restaurant-menu-page .rm-booking__form-wrap { grid-column: 1; }
  #restaurant-menu-page .rm-booking__aside { grid-column: 2; }
}

@media (prefers-reduced-motion: no-preference) {
  #restaurant-menu-page .frame img { transition: transform var(--transition-slow); }
  #restaurant-menu-page .frame:hover img { transform: scale(1.015); }
}
