/* Customer visual foundation. All tokens/components are scoped to public pages. */
.public-menu {
    color-scheme: var(--public-color-scheme);
    --public-cash-app: #00d632;
    --public-cash-app-hover: #00bd2c;
    --public-on-cash-app: #041107;
    --color-background: var(--public-paper);
    --color-surface: var(--public-surface);
    --color-surface-subtle: var(--public-subtle-surface);
    --color-text: var(--public-ink);
    --color-text-muted: var(--public-muted);
    --color-border: var(--public-line);
    --color-link: var(--public-ink);
    --color-focus: var(--public-accent);
    --radius-xl: var(--public-radius);
    --danger-600: var(--public-danger);
    --warning-600: var(--public-warning);
    --success-600: var(--public-accent);
    --info-600: var(--public-info);
    --danger-50: var(--public-danger-surface);
    --warning-50: var(--public-warning-surface);
    --success-50: var(--public-success-surface);
    --info-50: var(--public-info-surface);
    background: var(--public-paper);
    color: var(--public-ink);
    font-family: var(--public-font);
    line-height: 1.6;
    overflow-wrap: anywhere;
    accent-color: var(--public-accent);
}
.public-menu *, .public-menu *::before, .public-menu *::after { box-sizing: border-box; }
.public-menu .container { inline-size: min(calc(100% - 2rem), var(--public-content-width)); }
.public-menu h1, .public-menu h2, .public-menu h3, .public-menu p { margin: 0; overflow-wrap: anywhere; }
.public-menu h1 { font: 500 var(--public-heading-size)/1.08 var(--public-heading-font); letter-spacing: -.04em; }
.public-menu h2 { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.025em; }
.public-menu h3 { font-size: 1.125rem; letter-spacing: -.015em; }
.public-menu a { text-underline-offset: .25em; }
.public-menu :focus-visible { outline: 3px solid var(--public-focus); outline-offset: 4px; }
.public-menu input, .public-menu select, .public-menu textarea { min-inline-size: 0; max-inline-size: 100%; font-size: 1rem; }
.public-menu .button { min-block-size: 3rem; border-radius: var(--public-control-radius); font-weight: 700; padding: .75rem 1.125rem; text-align: center; white-space: normal; }
.public-menu .button--primary { background: var(--public-accent); color: var(--public-on-accent); }
.public-menu .button--primary:hover { background: var(--public-accent); box-shadow: inset 0 0 0 100vmax rgb(0 0 0 / .08); }
.public-menu .button--cash-app { align-self: start; justify-self: start; max-inline-size: 100%; background: var(--public-cash-app); border-color: var(--public-on-cash-app); color: var(--public-on-cash-app); }
.public-menu .button--cash-app:hover { background: var(--public-cash-app-hover); color: var(--public-on-cash-app); }
.public-menu .button--danger { background: var(--public-surface); border-color: var(--public-danger-border); color: var(--public-danger); }
.public-menu .button--danger:hover { background: var(--public-danger-surface); }
.public-menu .input, .public-menu .select, .public-menu .textarea { min-block-size: 3rem; border-radius: var(--public-control-radius); border-color: var(--public-input-border); background: var(--public-surface); }
.public-menu .label, .public-menu legend { color: var(--public-ink); }
.public-menu .help-text, .public-menu .text-muted { color: var(--public-muted); }
.public-menu .card { border-radius: var(--public-radius); box-shadow: none; }
.public-menu .card__body, .public-menu .card__header, .public-menu .card__footer { padding: var(--public-card-padding); }
.public-menu .card__footer { background: var(--public-footer-surface); border-radius: 0 0 var(--public-radius) var(--public-radius); }
.public-menu .card__footer .button--primary { inline-size: 100%; }
.public-menu .split > *, .public-menu .cluster > * { min-inline-size: 0; }
.public-menu .alert { background: var(--public-surface); }
.public-menu .empty-state { background: var(--public-surface); padding: 2rem 1rem; }
.public-menu .public-skip { position: fixed; inset-block-start: .5rem; inset-inline-start: 1rem; z-index: 300; padding: .75rem 1rem; background: var(--public-surface); color: var(--public-ink); transform: translateY(-200%); border-radius: .5rem; }
.public-menu .public-skip:focus { transform: none; }
.public-menu .public-header { background: var(--public-surface); border-block-end: 1px solid var(--public-line); }
.public-menu .public-header__inner { display: flex; align-items: center; justify-content: space-between; gap: .75rem; min-block-size: 5.5rem; padding-block: 1rem; }
.public-menu .public-brand { display: flex; align-items: center; gap: .75rem; min-inline-size: 0; color: var(--public-ink); font-size: 1rem; font-weight: 750; line-height: 1.3; text-decoration: none; }
.public-menu .public-brand > span:last-child { min-inline-size: 0; overflow-wrap: anywhere; }
.public-menu .public-brand small { display: block; margin-block-start: .25rem; color: var(--public-muted); font-size: .75rem; font-weight: 500; }
.public-menu .public-brand__mark, .public-menu .public-brand__logo { flex: 0 0 2.5rem; inline-size: 2.5rem; block-size: 2.5rem; }
.public-menu .public-brand__mark { display: grid; place-items: center; border-radius: 50%; color: var(--public-on-accent); background: var(--public-accent); }
.public-menu .public-brand__mark svg { inline-size: 2rem; block-size: 2rem; }
.public-menu .public-brand__logo { object-fit: contain; }
.public-menu .public-header__cart { flex-shrink: 0; border: 1px solid var(--public-line); background: var(--public-surface); }
.public-menu .cart-count { display: inline-grid; min-inline-size: 1.5rem; min-block-size: 1.5rem; padding-inline: .25rem; place-items: center; border-radius: 50%; background: rgb(127 127 127 / .15); font-size: .75rem; }
.public-menu .menu-hero { padding-block: 2.25rem; background: var(--public-hero); border-block-end: 1px solid var(--public-line); }
.public-menu .menu-hero__inner { display: grid; gap: 1.5rem; }
.public-menu .menu-eyebrow { margin-block-end: .75rem; font-size: .75rem; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; color: var(--public-eyebrow); }
.public-menu .menu-hero__description { font-size: 1.125rem; margin-block-start: .75rem; }
.public-menu .menu-location { display: flex; align-items: baseline; gap: .5rem; margin-block-start: 1.25rem; font-size: .875rem; color: var(--public-muted); }
.public-menu .menu-hero__aside { display: grid; align-content: center; gap: 1rem; }
.public-menu .pickup-label { display: inline-flex; align-items: center; gap: .5rem; inline-size: fit-content; padding: .5rem .75rem; border-radius: 2rem; background: var(--public-surface); border: 1px solid var(--public-line); font-size: .8125rem; font-weight: 650; }
.public-menu .pickup-label::before { content: ""; inline-size: .5rem; block-size: .5rem; border-radius: 50%; background: var(--public-accent); }
.public-menu .location-picker { display: grid; gap: .5rem; }
.public-menu .location-picker label { font-size: .8125rem; font-weight: 650; }
.public-menu .location-picker .button { border: 1px solid var(--public-input-border); background: var(--public-surface); }
.public-menu .category-nav { position: sticky; z-index: 10; inset-block-start: 0; border-block-end: 1px solid var(--public-line); background: var(--public-paper); }
.public-menu .category-nav .container { display: flex; gap: .5rem; overflow-x: auto; padding-block: .75rem; scrollbar-width: thin; }
.public-menu .category-nav a { flex-shrink: 0; display: inline-flex; align-items: center; min-block-size: 3rem; padding: .5rem 1rem; border: 1px solid var(--public-line); border-radius: 2rem; background: var(--public-surface); color: var(--public-ink); font-size: .875rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.public-menu .category-nav a:hover { border-color: var(--public-accent); }
.public-menu .category-nav a[aria-current] { background: var(--public-accent); border-color: var(--public-accent); color: var(--public-on-accent); }
.public-menu .menu-content { padding-block: var(--public-section-space) calc(1.5 * var(--public-section-space)); }
.public-menu .menu-intro { display: grid; gap: .5rem; }
.public-menu .menu-intro .menu-eyebrow { margin: 0; }
.public-menu .menu-intro > p:last-child { color: var(--public-muted); }
.public-menu .menu-category { scroll-margin-block-start: 6rem; }
.public-menu .menu-category > header { display: grid; gap: .5rem; margin-block-end: 1.25rem; }
.public-menu .menu-category > header p { color: var(--public-muted); }
.public-menu .menu-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.public-menu .menu-item-card { display: flex; flex-direction: column; min-inline-size: 0; border: 1px solid var(--public-line); border-radius: var(--public-radius); background: var(--public-surface); overflow: hidden; }
.public-menu .menu-item-image { position: relative; aspect-ratio: var(--public-image-ratio); background: var(--public-image-surface); overflow: hidden; }
.public-menu .menu-item-image img, .public-menu .configurator-media img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }
.public-menu .menu-image-placeholder { display: grid; min-block-size: 100%; block-size: 100%; place-items: center; background: linear-gradient(135deg, var(--public-hero), var(--public-placeholder-end)); color: var(--public-placeholder-ink); font-size: 3rem; }
.public-menu .sold-out-badge { position: absolute; inset-block-start: 1rem; inset-inline-end: 1rem; padding: .375rem .75rem; border-radius: 2rem; background: var(--public-ink); color: var(--public-surface); font-size: .8125rem; font-weight: 700; }
.public-menu .menu-item-card.is-sold-out .menu-item-image img { filter: saturate(.3); }
.public-menu .menu-item-body { display: flex; flex: 1; flex-direction: column; gap: .875rem; padding: var(--public-card-padding); }
.public-menu .menu-item-body .split { align-items: baseline; gap: .5rem; }
.public-menu .menu-item-body .split h3 { flex: 1 1 8rem; }
.public-menu .menu-price { font-size: .9375rem; font-weight: 750; }
.public-menu .menu-item-body p { color: var(--public-muted); font-size: .9375rem; }
.public-menu .menu-item-body .button { margin-block-start: auto; inline-size: 100%; }
.public-menu .menu-configurator { padding-block: 1.5rem 3rem; }
.public-menu .menu-back { display: inline-flex; align-items: center; min-block-size: 3rem; margin-block-end: 1rem; color: var(--public-ink); font-size: .875rem; font-weight: 650; text-decoration: none; }
.public-menu .configurator-layout { display: grid; min-inline-size: 0; border: 1px solid var(--public-line); border-radius: var(--public-radius); background: var(--public-surface); overflow: hidden; }
.public-menu .configurator-media { aspect-ratio: 4 / 3; background: var(--public-image-surface); }
.public-menu .configurator-layout > .stack { min-inline-size: 0; padding: var(--public-card-padding); }
.public-menu .configurator-layout h1 { font-size: clamp(2rem, 4vw, 3rem); }
.public-menu .configurator-layout header p:last-child { margin-block-start: .75rem; }
.public-menu .choice-group { display: grid; gap: .75rem; min-inline-size: 0; margin: 1.5rem 0; padding: 0; border: 0; }
.public-menu .choice-group legend { margin-block-end: .5rem; font-size: 1.125rem; font-weight: 750; }
.public-menu .menu-choice { display: grid; grid-template-columns: 1.25rem minmax(0, 1fr) auto; align-items: center; gap: .75rem; min-block-size: 3.5rem; padding: .875rem; border: 1px solid var(--public-input-border); border-radius: var(--public-control-radius); cursor: pointer; }
.public-menu .menu-choice input { inline-size: 1.25rem; block-size: 1.25rem; margin: 0; }
.public-menu .menu-choice span { overflow-wrap: anywhere; }
.public-menu .menu-choice strong { font-size: .875rem; }
.public-menu .menu-choice:has(input:checked) { border-color: var(--public-accent); box-shadow: inset 0 0 0 1px var(--public-accent); }
.public-menu .menu-choice:has(input:focus-visible) { outline: 3px solid var(--public-focus); outline-offset: 3px; }
.public-menu .menu-choice.is-unavailable { background: var(--public-subtle-surface); color: var(--public-muted); cursor: not-allowed; }
.public-menu .menu-choice small { grid-column: 2 / -1; }
.public-menu .validation-message:empty { display: none; }
.public-menu [data-config-form] > .field { margin-block: 1rem; }
.public-menu input[type="number"] { inline-size: 5rem; }
.public-menu .configuration-actions { position: sticky; inset-block-end: 0; z-index: 5; display: grid; gap: 1rem; margin-block-start: 1.5rem; padding-block: 1rem; border-block-start: 1px solid var(--public-line); background: var(--public-surface); }
.public-menu .configuration-total { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: 1.125rem; }
.public-menu .configuration-actions > .button { inline-size: 100%; }
.public-menu .page-heading { display: grid; gap: .75rem; max-inline-size: 50rem; }
.public-menu .page-heading .menu-eyebrow { margin: 0; }
.public-menu .page-heading p:last-child { color: var(--public-muted); }
.public-menu .order-layout { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.public-menu .order-layout > *, .public-menu .cart-items > * { min-inline-size: 0; }
.public-menu .cart-items h2 { font-size: 1.125rem; }
.public-menu .cart-items .card__body > div { flex: 1 1 10rem; }
.public-menu .cart-items .card__body p { font-size: .875rem; color: var(--public-muted); }
.public-menu .cart-items .card__footer { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; }
.public-menu .cart-items .card__footer .cluster { flex: 1 1 10rem; align-items: end; }
.public-menu .cart-quantity { display: grid; gap: .375rem; font-size: .8125rem; font-weight: 650; }
.public-menu .order-summary .card__body > .split { flex-wrap: nowrap; align-items: baseline; }
.public-menu .order-summary .split > strong { flex-shrink: 0; }
.public-menu .order-summary .card__body > .split:last-child { padding-block-start: .75rem; border-block-start: 1px solid var(--public-line); font-size: 1.125rem; }
.public-menu .checkout-form .card__body { gap: 1.25rem; }
.public-menu .menu-footer { padding-block: 2rem; border-block-start: 1px solid var(--public-line); color: var(--public-muted); font-size: .8125rem; }
.public-menu .menu-footer strong { color: var(--public-ink); }
.public-menu .menu-footer p { margin-block-start: .5rem; }
.public-menu .menu-cart-dock { position: fixed; z-index: 20; inset-inline: 1rem; inset-block-end: max(1rem, env(safe-area-inset-bottom)); display: flex; justify-content: space-between; box-shadow: 0 6px 24px rgb(20 40 25 / .2); }
.public-menu .menu-cart-dock > span:first-child { display: flex; align-items: center; gap: .75rem; }
.public-menu--menu { padding-block-end: calc(5rem + env(safe-area-inset-bottom)); }
/* A configurator already has its own add-to-cart action near the thumb. */
.public-menu--menu:has([data-configurator]) .menu-cart-dock { display: none; }
@media (min-width: 40rem) {
.public-menu .container { inline-size: min(calc(100% - 4rem), var(--public-content-width)); }
.public-menu .public-brand { font-size: 1.125rem; }
.public-menu .menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.public-menu .menu-hero { padding-block: 3rem; }
.public-menu .menu-hero__inner { grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: 2rem; }
.public-menu .menu-content { padding-block: 2.5rem 4rem; }
.public-menu .card__body, .public-menu .card__header, .public-menu .card__footer { padding: 1.5rem; }
}
@media (min-width: 64rem) {
.public-menu .menu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.public-menu .menu-hero { padding-block: 4rem; }
.public-menu .menu-hero__inner { gap: 4rem; }
.public-menu .order-layout { grid-template-columns: minmax(0, 1fr) 23rem; gap: 2rem; }
.public-menu .order-summary { position: sticky; inset-block-start: 1.5rem; }
.public-menu .checkout-layout .checkout-form { grid-column: 1; grid-row: 1; }
.public-menu .checkout-layout .order-summary { grid-column: 2; grid-row: 1; }
.public-menu .configurator-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; overflow: visible; }
.public-menu .configurator-media { position: sticky; inset-block-start: 1.5rem; aspect-ratio: 1; border-radius: var(--public-radius) 0 0 var(--public-radius); overflow: hidden; }
.public-menu .configurator-layout > .stack { padding: 2rem; }
.public-menu .menu-cart-dock { display: none; }
.public-menu--menu { padding-block-end: 0; }
}
@media (prefers-reduced-motion: no-preference) {
.public-menu .menu-item-card { transition: box-shadow 160ms ease; }
.public-menu .menu-item-card:hover { box-shadow: var(--public-shadow); }
}
@media (forced-colors: active) {
.public-menu .menu-choice:has(input:checked), .public-menu .category-nav a[aria-current] { outline: 2px solid Highlight; }
}

/* Post-checkout and payment-choice components reuse the Phase 1 public tokens. */
.public-menu .payment-choices { display: grid; gap: .75rem; min-inline-size: 0; margin: 0; padding: 0; border: 0; }
.public-menu .payment-choices legend { font-weight: 750; margin-block-end: .75rem; }
.public-menu .payment-choices .menu-choice { grid-template-columns: 1.25rem minmax(0, 1fr); }
.public-menu .payment-choices small { display: block; color: var(--public-muted); font-size: .8125rem; margin-block-start: .25rem; }
.public-menu .payment-acknowledgment { padding: 1rem; background: var(--public-warning-surface); border: 1px solid var(--public-warning-border); border-radius: var(--public-control-radius); }
.public-menu .acknowledgment-choice { display: flex; align-items: start; gap: .75rem; cursor: pointer; }
.public-menu .acknowledgment-choice input { flex: 0 0 1.25rem; inline-size: 1.25rem; block-size: 1.25rem; margin-block-start: .25rem; }
.public-menu .tracking-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.public-menu .tracking-layout > * { min-inline-size: 0; }
.public-menu .payment-notice { border-inline-start: .375rem solid var(--public-notice-border); }
.public-menu .payment-notice[data-payment-tone="success"] { border-inline-start-color: var(--public-accent); background: var(--public-success-surface); }
.public-menu .payment-notice[data-payment-tone="pending"] { border-inline-start-color: var(--public-info); background: var(--public-info-surface); }
.public-menu .payment-notice[data-payment-tone="warning"] { border-inline-start-color: var(--public-warning); background: var(--public-warning-surface); }
.public-menu .payment-status { display: inline-flex; align-self: start; font-size: .8125rem; font-weight: 750; letter-spacing: .035em; text-transform: uppercase; }
.public-menu .order-progress { display: grid; gap: 1.25rem; padding: 0; margin: .75rem 0 0; list-style: none; }
.public-menu .order-progress li { display: flex; align-items: center; gap: .75rem; min-inline-size: 0; }
.public-menu .progress-number { flex: 0 0 2.5rem; display: grid; inline-size: 2.5rem; block-size: 2.5rem; place-items: center; border-radius: 50%; border: 1px solid var(--public-progress-border); color: var(--public-progress-ink); background: var(--public-surface); font-weight: 750; }
.public-menu .order-progress strong { display: block; font-size: .875rem; }
.public-menu .order-progress small { display: block; font-size: .75rem; color: var(--public-muted); }
.public-menu .order-progress [data-step-state="current"] .progress-number { background: var(--public-accent); border-color: var(--public-accent); color: var(--public-on-accent); box-shadow: 0 0 0 .25rem var(--public-selected-surface); }
.public-menu .order-progress [data-step-state="complete"] .progress-number { background: var(--public-selected-surface); border-color: var(--public-accent); color: var(--public-accent); }
.public-menu .tracking-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.public-menu .tracking-actions .button { flex: 1 1 13rem; }
.public-menu .tracking-summary { min-inline-size: 0; }
.public-menu .tracking-item { display: grid; gap: .5rem; padding-block-end: 1rem; border-block-end: 1px solid var(--public-line); }
.public-menu .tracking-item .split { align-items: baseline; gap: .5rem; }
.public-menu .tracking-item h3 { flex: 1 1 10rem; }
.public-menu .tracking-item p, .public-menu .tracking-item li { font-size: .875rem; }
.public-menu .tracking-item ul { margin: 0; padding-inline-start: 1.25rem; }
.public-menu .tracking-totals { display: grid; gap: .75rem; margin: 0; }
.public-menu .tracking-totals > div { display: flex; align-items: baseline; justify-content: space-between; gap: .75rem; }
.public-menu .tracking-totals dd { margin: 0; font-weight: 750; }
.public-menu .tracking-totals > div:last-child { border-block-start: 1px solid var(--public-line); padding-block-start: .75rem; font-size: 1.125rem; }
.public-menu [data-refresh-error]:empty { display: none; }
@media (min-width: 48rem) {
.public-menu .order-progress { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.public-menu .order-progress li { flex-direction: column; align-items: start; }
}
@media (min-width: 64rem) {
.public-menu .tracking-layout { grid-template-columns: minmax(0, 1fr) 24rem; gap: 2rem; }
.public-menu .tracking-summary { position: sticky; inset-block-start: 1.5rem; }
}
/* Preserve native hidden states even when component layout rules set display. */
.public-menu [hidden] { display: none; }
.public-menu .public-location-details { margin-block: 2rem; padding-block: 1.25rem; border-block-start: 1px solid var(--color-border); overflow-wrap: anywhere; }
.public-menu .public-location-details address { font-style: normal; margin-block: .5rem; }

/* Shared control states. Behavior remains on data hooks and native semantics. */
.public-menu { --radius-md: var(--public-control-radius); --space-2: calc(2 * var(--public-space-unit)); --space-4: calc(4 * var(--public-space-unit)); --space-6: calc(6 * var(--public-space-unit)); --shadow-sm: var(--public-shadow); }
.public-menu .button { border-radius: var(--public-control-radius); }
.public-menu .button:disabled, .public-menu [aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
.public-menu [aria-busy="true"] { cursor: progress; }
.public-menu .button[aria-busy="true"]::after { content: " …"; }
.public-menu .input[aria-invalid="true"], .public-menu .select[aria-invalid="true"] { border: 2px solid var(--public-danger); }
.public-menu .validation-message--error { color: var(--public-danger); }
.public-menu input[type="checkbox"], .public-menu input[type="radio"] { min-inline-size: 1.25rem; min-block-size: 1.25rem; accent-color: var(--public-accent); }
.public-menu dialog { max-inline-size: min(36rem, calc(100% - 2rem)); color: var(--public-ink); background: var(--color-surface); border: 1px solid var(--public-line); border-radius: var(--public-radius); padding: 1.5rem; }
.public-menu dialog::backdrop { background: rgb(0 0 0 / .6); }
.public-menu .preview-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,18rem),1fr)); gap: 1.5rem; }

.public-menu .menu-choice:has(input:disabled) { color: var(--public-muted); background: var(--public-subtle-surface); cursor: not-allowed; }
.public-menu .menu-choice:not(:has(input:disabled)):hover { border-color: var(--public-accent); }
.public-menu input[role="switch"] { appearance: none; flex: 0 0 2.75rem; inline-size: 2.75rem; block-size: 1.5rem; border: 1px solid var(--public-input-border); border-radius: 2rem; background: radial-gradient(circle at .65rem center, var(--public-ink) .45rem, transparent .5rem), var(--public-surface); cursor: pointer; }
.public-menu input[role="switch"]:checked { background: radial-gradient(circle at 2.05rem center, var(--public-on-accent) .45rem, transparent .5rem), var(--public-accent); }

.public-menu .menu-category__image { inline-size: 10rem; block-size: 6.25rem; object-fit: contain; background: var(--public-subtle-surface); border-radius: var(--public-control-radius); }

/* Menu overview: identity, cart and ordering context share one compact header. */
.public-menu .public-header__inner--menu { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding-block: .75rem; gap: .75rem 1rem; }
.public-menu .public-header__inner--menu > .public-header__cart { justify-self: end; }
.public-menu .public-header__context { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; min-inline-size: 0; }
.public-menu .public-header__location { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem .75rem; min-inline-size: 0; }
.public-menu .public-header__place { color: var(--public-muted); font-size: .8125rem; overflow-wrap: anywhere; }
.public-menu .public-header__context .pickup-label { padding: .25rem .5rem; font-size: .75rem; }
.public-menu .public-header__context .location-picker { grid-template-columns: minmax(0, 1fr) auto; gap: .25rem .5rem; flex: 1 1 17rem; min-inline-size: 0; max-inline-size: 24rem; }
.public-menu .public-header__context .location-picker label { grid-column: 1 / -1; }
.public-menu .public-header__context .select { min-inline-size: 0; inline-size: 100%; }
@media (min-width: 64rem) {
    .public-menu .public-header__inner--menu { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr) auto; }
    .public-menu .public-header__inner--menu > .public-header__cart { grid-column: 3; grid-row: 1; }
    .public-menu .public-header__context { grid-column: 2; grid-row: 1; justify-content: end; }
}

/* Small cart welcome component: behavior and business content are skin-independent. */
.public-menu .cart-welcome .card__body { padding:1rem; gap:.75rem; }
.public-menu .cart-welcome__actions, .public-menu .cart-welcome__phone, .public-menu .cart-welcome__greeting { display:flex; flex-wrap:wrap; align-items:end; gap:.75rem; }
.public-menu .cart-welcome__phone { flex:1 1 22rem; }
.public-menu .cart-welcome__phone .field { flex:1 1 12rem; }
.public-menu .cart-welcome__greeting { align-items:center; justify-content:space-between; }
.public-menu .cart-welcome__greeting p { font-weight:700; }
.public-menu .cart-welcome__greeting .button { min-block-size:2.75rem; padding:.5rem .75rem; font-size:.875rem; }
