.restaurant { padding-block: clamp(2rem, 6vw, 5rem); }
.restaurant__header { max-width: 48rem; margin-block-end: 2rem; }
.restaurant__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.restaurant__notice { font-weight: 600; }
.restaurant-location-picker form { margin-block: 1rem; }
.restaurant-location-picker [data-restaurant-location-search] { display: flex; flex-wrap: wrap; align-items: end; gap: .75rem; }
.restaurant-location-picker [data-restaurant-location-search] label { flex-basis: 100%; font-weight: 600; }
.restaurant-location-picker [data-restaurant-location-search] input { flex: 1 1 16rem; }
.restaurant-location-picker fieldset { display: grid; gap: .625rem; min-inline-size: 0; margin: 0; padding: 1rem; border: 1px solid var(--color-line, currentColor); border-radius: var(--radius, .5rem); }
.restaurant-location-picker legend { padding-inline: .25rem; font-weight: 600; }
.restaurant-location-picker input, .restaurant-location-picker button { box-sizing: border-box; min-block-size: 44px; min-inline-size: 0; max-inline-size: 100%; padding: .625rem .875rem; border: 1px solid var(--color-line, currentColor); border-radius: var(--radius, .5rem); font: inherit; }
.restaurant-location-picker input { color: var(--color-text, CanvasText); background: var(--color-white, Canvas); }
.restaurant-location-picker button { color: var(--color-white, Canvas); background: var(--color-primary-dark, var(--color-primary, CanvasText)); border-color: var(--color-primary-dark, var(--color-primary, CanvasText)); font-weight: 600; cursor: pointer; }
.restaurant-location-picker button:hover { background: var(--color-primary-dark, var(--color-primary, CanvasText)); border-color: var(--color-primary-dark, var(--color-primary, CanvasText)); }
.restaurant-location-picker input:focus-visible, .restaurant-location-picker button:focus-visible { outline: 3px solid var(--color-primary, Highlight); outline-offset: .25rem; }
@media (max-width: 32rem) {
  .restaurant-location-picker [data-restaurant-location-search] input, .restaurant-location-picker [data-restaurant-location-search] button { flex-basis: 100%; inline-size: 100%; }
}
.restaurant-location-picker__list { display: grid; gap: .75rem; list-style: none; padding: 0; }
.restaurant-location-picker__list a { display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.restaurant-location-badge, .restaurant-menu-navigation ul { display: flex; flex-wrap: wrap; gap: .75rem; list-style: none; padding: 0; }
.restaurant-menu-item { border: 1px solid currentColor; border-radius: .5rem; padding: 1rem; }
.restaurant-configurator, .restaurant-cart__group { border: 1px solid currentColor; border-radius: .5rem; display: grid; gap: 1rem; margin-block: 1.5rem; padding: 1rem; }
.restaurant-configurator form, .restaurant-configurator fieldset { display: grid; gap: .75rem; }
.restaurant-configurator label { display: grid; gap: .35rem; }
.restaurant-cart__lines { display: grid; gap: 1rem; list-style: none; padding: 0; }
.restaurant-cart__lines > li { border-block-start: 1px solid currentColor; padding-block-start: 1rem; }
.restaurant-cart__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.restaurant-cart__fulfillment, .restaurant-cart__fulfillment fieldset { display: grid; gap: .75rem; min-inline-size: 0; margin: 0; padding: 1rem; border: 1px solid var(--color-line, currentColor); border-radius: .5rem; }
.restaurant-cart__fulfillment label { display: grid; gap: .35rem; min-inline-size: 0; }
.restaurant-cart__fulfillment input, .restaurant-cart__fulfillment select, .restaurant-cart button, .restaurant-cart [data-restaurant-checkout-link] { box-sizing: border-box; min-block-size: 44px; min-inline-size: 0; max-inline-size: 100%; padding: .625rem .875rem; font: inherit; border: 1px solid var(--color-line, currentColor); border-radius: .5rem; }
.restaurant-cart__fulfillment input, .restaurant-cart__fulfillment select { inline-size: 100%; color: var(--color-text, CanvasText); background: var(--color-white, Canvas); }
.restaurant-cart button, .restaurant-cart [data-restaurant-checkout-link] { color: var(--color-white, Canvas); background: var(--color-primary-dark, var(--color-primary, CanvasText)); font-weight: 600; cursor: pointer; }
.restaurant-cart [data-restaurant-checkout-link]:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; text-align: center; text-decoration: none; }
.restaurant-cart button:disabled { cursor: not-allowed; opacity: .6; }
.restaurant-cart :focus-visible, .restaurant-checkout-page :focus-visible { outline: 3px solid var(--color-primary, Highlight); outline-offset: .25rem; }
.restaurant-checkout__review { display: flex; align-items: start; gap: .75rem; padding-block: .75rem; }
.restaurant-checkout__review input { inline-size: 1.25rem; block-size: 1.25rem; flex-shrink: 0; }
.restaurant-cart__issues, .restaurant-cart__requote { border-inline-start: .25rem solid currentColor; padding-inline-start: 1rem; }
.restaurant-checkout, .restaurant-order-status { border: 1px solid currentColor; border-radius: .5rem; display: grid; gap: 1rem; margin-block: 1.5rem; padding: 1rem; }
.restaurant-checkout [data-restaurant-checkout-group] { display: grid; gap: .5rem; margin-block-end: 1rem; }
.restaurant-checkout-form { display: grid; gap: 1rem; min-inline-size: 0; max-inline-size: 48rem; margin-inline: auto; }
.restaurant-checkout-form > .restaurant-checkout { min-inline-size: 0; margin: 0; border-color: var(--color-line, currentColor); background: var(--color-white, Canvas); }
.restaurant-checkout-form legend { padding-inline: .35rem; font-weight: 600; }
.restaurant-checkout-form [data-restaurant-checkout-fields] label { display: grid; gap: .35rem; min-inline-size: 0; font-weight: 600; }
.restaurant-checkout-form [data-restaurant-checkout-fields] input { box-sizing: border-box; inline-size: 100%; min-inline-size: 0; min-block-size: 44px; padding: .625rem .875rem; border: 1px solid var(--color-line, currentColor); border-radius: .5rem; font: inherit; font-weight: 400; color: var(--color-text, CanvasText); background: var(--color-white, Canvas); }
.restaurant-checkout-form [data-restaurant-checkout-summary] ul { list-style: none; margin: 0; padding: 0; }
.restaurant-checkout-form [data-restaurant-checkout-money] { min-inline-size: 0; }
.restaurant-checkout-form > button { box-sizing: border-box; min-block-size: 44px; max-inline-size: 100%; padding: .75rem 1rem; border: 1px solid var(--color-primary-dark, var(--color-primary, CanvasText)); border-radius: .5rem; font: inherit; font-weight: 600; color: var(--color-white, Canvas); background: var(--color-primary-dark, var(--color-primary, CanvasText)); cursor: pointer; }
.restaurant-checkout-form > button:disabled { opacity: .6; cursor: not-allowed; }
.restaurant-checkout-form > [data-restaurant-checkout-restart] { color: var(--color-primary-dark, var(--color-primary, CanvasText)); background: var(--color-white, Canvas); }
.restaurant-checkout-form > .restaurant-checkout__status:empty { display: none; }
@media (min-width: 36rem) {
  .restaurant-checkout-form [data-restaurant-checkout-fields] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .restaurant-checkout-form [data-restaurant-checkout-fields] > p, .restaurant-checkout-form [data-restaurant-checkout-fields] > ul { grid-column: 1 / -1; }
}
.restaurant-order-status__lines { display: grid; gap: .75rem; list-style: none; padding: 0; }
.restaurant-order-status__lines > li { display: flex; flex-wrap: wrap; gap: .75rem; justify-content: space-between; }
.restaurant-table-order { border: 1px solid currentColor; border-radius: .5rem; display: grid; gap: 1.5rem; padding: clamp(1rem, 3vw, 2rem); }
.restaurant-table-order__menu, .restaurant-table-order__rounds { display: grid; gap: .75rem; padding-inline-start: 1.5rem; }
.restaurant-table-order__menu > li { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.restaurant-table-order form, .restaurant-table-order form label { display: grid; gap: .75rem; }
.restaurant-table-order button, .restaurant-table-order select { min-block-size: 2.75rem; }
.restaurant-table-order__status:not(:empty) { border-inline-start: .25rem solid currentColor; padding-inline-start: 1rem; }
.restaurant-catering-access, .restaurant-catering-portal { border: 1px solid currentColor; border-radius: .5rem; display: grid; gap: 1.25rem; padding: clamp(1rem, 3vw, 2rem); }
.restaurant-catering-quote__heading, .restaurant-catering-quote__lines > li, .restaurant-catering-quote__totals > div { align-items: baseline; display: flex; flex-wrap: wrap; gap: .5rem 1rem; justify-content: space-between; }
.restaurant-catering-quote__lines { display: grid; gap: 1rem; list-style: none; padding: 0; }
.restaurant-catering-quote__lines > li { border-block-start: 1px solid currentColor; padding-block-start: 1rem; }
.restaurant-catering-quote__totals { display: grid; gap: .5rem; margin-block: 1.5rem; }
.restaurant-catering-quote__totals dd { font-weight: 700; }
.restaurant-catering-quote__change, .restaurant-catering-portal__issues, .restaurant-catering-portal [data-restaurant-catering-message]:not(:empty) { border-inline-start: .25rem solid currentColor; padding-inline-start: 1rem; }
.restaurant-catering-cancellation, .restaurant-catering-cancellation__actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.restaurant-catering-cancellation { align-items: flex-start; border-block-start: 1px solid currentColor; flex-direction: column; padding-block-start: 1rem; }
.restaurant-catering-portal button, .restaurant-catering-access button { min-block-size: 2.75rem; }
.restaurant__issues { border-inline-start: .25rem solid currentColor; padding-inline-start: 1.5rem; }
.restaurant :focus-visible { outline: 3px solid currentColor; outline-offset: .25rem; }
[dir="rtl"] .restaurant-location-picker__list, [dir="rtl"] .restaurant-menu-navigation ul { padding-inline-start: 0; }
