/* Customer menu rows only. Desktop artwork and role workspaces keep their layouts. */
.mobile-basket-bar { display:none; }
.dish-card-copy > .chef-link { order:1; }
@media (max-width:768px) {
  body { padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
  .mobile-bottom-nav {
    display:flex; position:fixed; inset:auto 0 0; z-index:30;
    justify-content:space-around; background:var(--header-bg);
    border-top:1px solid var(--line);
    padding:var(--space-2) var(--space-2) max(var(--space-2), env(safe-area-inset-bottom));
  }
  .mobile-bottom-nav > :is(a,button) {
    display:flex; flex:1; min-width:0; min-height:48px; padding:0;
    flex-direction:column; align-items:center; justify-content:center;
    gap:var(--space-1); color:var(--muted); font-size:12px;
  }
  .mobile-bottom-nav > a.active { color:var(--copper); font-weight:600; }
  .mobile-bottom-nav .icon { width:24px; height:24px; }
  .storefront-route .site-header { height:auto; }
  .storefront-route .header-inner { min-height:56px; gap:var(--space-2); }
  .storefront-route .wordmark.brand-link { width:124px; flex-shrink:0; }
  .storefront-route .header-search,
  .storefront-route .header-user,
  .storefront-route .header-cta { display:none; }
  .storefront-route .header-actions { margin-left:auto; gap:0; }
  .storefront-route .header-actions :is(.icon-button,.language-button) {
    min-width:48px; width:48px; min-height:48px; height:48px; padding:0;
  }
  .storefront-route :is(.food-catalog,.cook-catalog) { padding-top:var(--space-3); }
  .storefront-route :is(.food-catalog,.cook-catalog) > .page-heading {
    padding:0; margin:0 0 var(--space-1);
  }
  .storefront-route :is(.food-catalog,.cook-catalog) > .page-heading :is(.eyebrow,p) { display:none; }
  .storefront-route :is(.food-catalog,.cook-catalog) > .page-heading h1 {
    font:600 26px/1.3 var(--font); margin:0;
  }
  .storefront-route :is(.food-category-filter,.filter-bar) {
    display:flex; flex-direction:column; align-items:stretch;
    gap:var(--space-2); margin-bottom:var(--space-3); padding:var(--space-2) 0;
  }
  .storefront-route .search-box { order:-1; width:100%; max-width:none; min-height:48px; }
  .storefront-route .search-box input { min-width:0; font-size:16px; }
  .storefront-route .search-box button { min-width:48px; min-height:48px; }
  .storefront-route :is(.category-primary,.category-secondary,.filter-chips) {
    display:flex; flex-wrap:nowrap; gap:var(--space-2); width:100%;
    overflow-x:auto; overscroll-behavior-inline:contain; margin:0;
    padding:var(--space-1) 0; scrollbar-width:thin;
  }
  .storefront-route :is(.category-primary,.category-secondary,.filter-chips) .chip {
    flex:0 0 auto; min-height:48px; padding:var(--space-2) var(--space-3);
    font-size:14px; white-space:nowrap; border-radius:var(--radius);
  }
  .storefront-route .results-line { margin:0 0 var(--space-2); padding:0; font-size:12px; gap:var(--space-2); }
  .storefront-route .dish-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-4); align-items:stretch; }
  .storefront-route .dish-card { position:relative; display:flex; flex-direction:column; padding:0; gap:0; min-width:0; }
  .storefront-route .dish-image-link { display:block; width:100%; border-radius:0; overflow:hidden; }
  .storefront-route .dish-image-link .food-photo { display:block; width:100%; height:auto; max-height:176px; aspect-ratio:4/3; }
  .storefront-route .dish-image-link :is(.dish-image-action,.dish-tag) { display:none; }
  .storefront-route .dish-card[data-demo="true"] .dish-tag {
    display:block; top:var(--space-2); left:var(--space-2); max-width:calc(100% - 64px);
    padding:var(--space-1); font-size:12px; line-height:1.3;
  }
  .storefront-route .dish-card-copy { padding:var(--space-3); min-width:0; flex:1; }
  .storefront-route .dish-title-row { display:block; }
  .storefront-route .dish-title-row h3 {
    font:600 16px/1.35 var(--font); margin:0; min-height:0;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }
  .storefront-route .dish-title-row .price { display:block; font:600 18px/1.4 var(--font); margin:var(--space-1) 0; }
  .storefront-route .dish-card-copy > .dish-description { display:none; }
  .storefront-route .dish-card .chef-link { order:0; border:0; padding:0; margin:0 0 var(--space-1); min-height:20px; gap:0; font-size:12px; }
  .storefront-route .dish-card .chef-link :is(.portrait,small,.icon) { display:none; }
  .storefront-route .dish-card .chef-link > span { min-width:0; }
  .storefront-route .dish-card .chef-link strong { display:block; font-weight:400; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .storefront-route .dish-card-copy > :is(.dish-supply-summary,.dish-basket-status) { margin:var(--space-1) 0; font-size:12px; line-height:1.5; }
  .storefront-route .dish-basket-status[data-service-date="false"] { display:none; }
  .storefront-route .dish-shopping-actions { margin-top:auto; padding:var(--space-1) 0 0; min-height:52px; gap:0; justify-content:flex-end; }
  /* The visible add circle is 36px; its independent hit target remains 48px. */
  .storefront-route .dish-shopping-actions .quick-add { position:relative; width:48px; min-width:48px; height:48px; min-height:48px; padding:0; flex:0 0 48px; border:0; background:transparent; box-shadow:none; justify-content:center; border-radius:50%; }
  .storefront-route .quick-add::before { content:''; position:absolute; inset:6px; border-radius:50%; background:var(--copper); }
  .storefront-route .dish-shopping-actions .quick-add .icon { position:relative; z-index:1; width:22px; height:22px; color:var(--on-accent); }
  .storefront-route .quick-add-label { display:none; }
  .storefront-route .dish-shopping-actions > .text-button { position:absolute; top:var(--space-1); right:var(--space-1); z-index:2; width:48px; min-width:48px; height:48px; min-height:48px; padding:0; justify-content:center; border-radius:50%; }
  .storefront-route .dish-shopping-actions > .text-button::before { content:''; position:absolute; inset:6px; border-radius:50%; background:var(--surface); box-shadow:0 1px 6px #4931261f; }
  .storefront-route .dish-shopping-actions > .text-button .icon { position:relative; z-index:1; width:20px; height:20px; }
  .storefront-route .dish-shopping-actions > .text-button span { display:none; }
  .storefront-route .card-quantity { display:flex; width:100%; min-width:0; gap:0; justify-content:space-between; align-items:center; border:1px solid var(--line); border-radius:24px; background:var(--surface-raised); }
  .storefront-route .card-quantity button { width:48px; min-width:48px; height:48px; min-height:48px; padding:0; border:0; background:transparent; color:var(--copper); }
  .storefront-route .card-quantity output { min-width:20px; font-size:14px; }
  .storefront-route .shopping-unavailable { font-size:12px; line-height:1.5; min-height:48px; }
  .has-mobile-basket { padding-bottom:calc(140px + env(safe-area-inset-bottom)); }
  .mobile-basket-bar {
    position:fixed; display:flex; align-items:center; justify-content:space-between;
    gap:var(--space-2); left:auto; right:var(--space-4); max-width:calc(100% - 32px);
    bottom:calc(80px + env(safe-area-inset-bottom)); z-index:29;
    min-height:48px; padding:var(--space-2) var(--space-3);
    color:var(--on-accent); background:var(--copper); border:0; border-radius:24px;
    font:600 14px/1.4 var(--font); box-shadow:0 4px 16px #49312626;
  }
  .mobile-basket-bar > span { display:flex; align-items:center; gap:var(--space-2); }
  .mobile-basket-bar strong { text-align:right; margin-left:auto; font-variant-numeric:tabular-nums; }
  .mobile-basket-bar small { display:none; font:400 12px/1.3 var(--font); }
  .mobile-basket-bar:focus-visible { outline:2px solid var(--text); outline-offset:3px; }
  .has-mobile-basket :is(.support-chat,#toast) { bottom:calc(140px + env(safe-area-inset-bottom)); }
  .storefront-route .support-launcher { display:none; }
}

.cart-flight { position:fixed; z-index:1000; width:36px; height:36px; border-radius:50%; overflow:hidden; pointer-events:none; background:var(--copper); color:var(--on-accent); display:grid; place-items:center; box-shadow:0 2px 8px #49312633; font-size:24px; }
.cart-flight img { width:100%; height:100%; object-fit:cover; }
@media(max-width:360px) { .storefront-route .dish-card-copy { padding:var(--space-2); } }

/* Explicit save keeps quantity selection separate from persisted basket contents. */
.dish-purchase-controls { display:flex; flex-wrap:nowrap; align-items:center; gap:var(--space-2); min-width:0; }
.dish-purchase-controls .quantity { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; }
.dish-purchase-controls .quantity button { min-width:48px; min-height:48px; }
.dish-purchase-controls .quantity output { min-width:20px; text-align:center; }
.dish-purchase-controls .save-dish-cart { min-height:48px; gap:var(--space-1); }
.dish-purchase-controls:has(.shopping-unavailable) { flex-wrap:wrap; }
.dish-purchase-controls .shopping-unavailable { flex-basis:100%; }
.dish-purchase-controls .save-dish-cart:disabled { background:var(--status-neutral-bg); color:var(--status-neutral); border-color:var(--line); opacity:1; }
@media(max-width:768px) {
 .storefront-route .dish-shopping-actions { justify-content:stretch; }
 .storefront-route .dish-purchase-controls { display:grid; width:100%; grid-template-columns:64px minmax(0,1fr); gap:var(--space-1); align-items:center; }
 /* User-requested single-row controls in two-column menu cards: quantity targets
    are 24px wide × 48px high (not overlapping). Other controls retain 48px width.
    Review this scoped exception whenever card columns or footer labels change. */
 .storefront-route .dish-purchase-controls .quantity { display:grid; grid-template-columns:24px 16px 24px; width:64px; min-width:0; border:0; gap:0; }
 .storefront-route .dish-purchase-controls .quantity button { width:24px; min-width:24px; height:48px; min-height:48px; padding:0; }
 .storefront-route .dish-purchase-controls .quantity button .icon { width:16px; height:16px; }
 .storefront-route .dish-purchase-controls .quantity output { min-width:0; font-size:12px; font-variant-numeric:tabular-nums; }
 .storefront-route .dish-purchase-controls .save-dish-cart { width:100%; min-width:0; height:48px; min-height:48px; padding:var(--space-1) 2px; font-size:12px; line-height:16px; white-space:normal; overflow-wrap:normal; }
 .storefront-route .save-dish-cart .icon { display:none; }
 .storefront-route .dish-purchase-controls .shopping-unavailable { grid-column:1 / -1; }
 .buy-row .dish-purchase-controls { width:100%; }
}
@media(max-width:360px) {
 /* Keep both columns and the complete add label; give the footer the card width
    instead of shrinking text or overlapping neighbouring targets. */
 .storefront-route .dish-card-copy { padding:var(--space-2) 0; }
 .storefront-route .dish-card-copy > :not(.dish-shopping-actions) { margin-left:var(--space-2); margin-right:var(--space-2); }
}

@media(max-width:768px) {
 /* Compact 36px visual, retaining the 48px-high press target and full label. */
 .storefront-route .dish-purchase-controls .save-dish-cart,
 .storefront-route .dish-purchase-controls .save-dish-cart:hover,
 .storefront-route .dish-purchase-controls .save-dish-cart:disabled { position:relative; isolation:isolate; justify-self:end; max-width:76px; background:transparent; border:0; box-shadow:none; line-height:14px; }
 .storefront-route .save-dish-cart::before { content:''; position:absolute; z-index:-1; inset:6px 0; border-radius:var(--radius-small); background:var(--copper); border:1px solid transparent; }
 .storefront-route .save-dish-cart:hover:not(:disabled)::before { background:var(--accent-hover); }
 .storefront-route .save-dish-cart:disabled::before { background:var(--status-neutral-bg); border-color:var(--line); }
}

/* Sign-out remains available when the workspace navigation is collapsed. */
@media(max-width:768px) {
 .workspace .workspace-sidebar > .account-signout { grid-column:1 / -1; margin:0; padding-top:var(--space-2); }
 .workspace .workspace-sidebar > .account-signout button { display:flex; width:100%; min-height:48px; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:var(--radius); background:var(--surface); color:var(--text); }
}
