/* Shared restaurant menu and shop catalogue. */
body:has(.content-page-restaurant) { overflow-y: hidden; background-color: #f5f6f8; }
/* Clipped images and cards must pass scrolling to the menu column. */
.content-page-restaurant * { overscroll-behavior: auto; }
.content-page-restaurant { max-width: 1900px; height: calc(100dvh - var(--header-h, 58px) - 40px); margin: calc(var(--header-h, 58px) + 20px) auto 0; padding: 0 24px !important; overflow: hidden; color: #253244; background: transparent; box-shadow: none; }
.content-page-restaurant .menu-page-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; height: 100%; min-height: 0; }
.menu-page-layout > div { width: auto; min-width: 0; min-height: 0; }
.content-page-restaurant #center-nav-anker { position: relative; height: 100%; min-height: 0; background: #f5f6f8; border-radius: 16px; overflow-y: auto !important; overflow-x: hidden; padding: 0 4px calc(var(--bottom-gap, 0px) + 24px); overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #d2d8e0 transparent; container-type: inline-size; }
.content-page-restaurant #right-nav-fixed { position: static; display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100%; min-height: 0; width: auto; overflow: hidden; border: 1px solid #e0e4eb; border-radius: 16px; background: #fff; box-shadow: 0 3px 14px rgb(22 35 57 / 3%); }
.content-page-restaurant #right-nav-fixed > h4 { margin: 0; padding: 20px 16px !important; border-bottom: 1px solid #eef0f3; color: #253244; font-size: .95rem; font-weight: 700; }
.content-page-restaurant #right-nav-fixed > h4 i { margin-right: 5px; color: #7b8796; }
.content-page-restaurant .nav-scroll { min-height: 0; overflow-y: auto; padding: 8px !important; scrollbar-width: thin; scrollbar-color: #d2d8e0 transparent; overscroll-behavior: contain; }
.menu-tools { position: sticky; top: 0; z-index: 6; display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: center; gap: 12px; padding: 12px 0; margin-bottom: 14px; background: #f5f6f8; }
.menu-product-search { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; padding: 0 12px; border: 1px solid #e0e4eb; border-radius: 10px; background: #fff; color: #8994a3; }
.menu-product-search input { width: 100%; min-width: 0; padding: 10px 0; border: 0; outline: 0; background: transparent; color: #253244; font-size: .82rem; }
.menu-product-search:focus-within { border-color: #536f94; box-shadow: 0 0 0 2px #e1e9f3; }
.content-page-restaurant #left-nav-fixed { position: static; display: flex; align-items: center; gap: 8px; min-width: 0; width: auto; height: auto; background: transparent; }
.content-page-restaurant #left-nav-fixed .nav-scroll { flex: 1; min-width: 0; }
.menu-nav-arrow { display: grid; flex: 0 0 34px; place-items: center; width: 34px; height: 38px; padding: 0; border: 1px solid #d7e1ec; border-radius: 9px; background: #fff; color: #405d7e; cursor: pointer; }
.menu-nav-arrow:hover:not(:disabled) { background: #edf2f7; border-color: #b9cadd; }
.menu-nav-arrow:disabled { opacity: .35; cursor: default; }
.menu-nav-arrow:focus-visible { outline: 2px solid #536f94; outline-offset: 2px; }
.content-page-restaurant #left-nav-fixed > h4 { display: none; }
.content-page-restaurant #left-nav-fixed .nav-scroll { display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; padding: 4px 0 !important; scrollbar-width: none; scroll-padding-inline: 8px; }
.content-page-restaurant #left-nav-fixed .nav-scroll::-webkit-scrollbar { display: none; }
.content-page-restaurant #left-nav-fixed .nav-scroll > div { flex: 0 0 auto; padding: 0 !important; }
.content-page-restaurant .new-nav-link { display: flex; align-items: center; gap: 5px; min-height: 38px; padding: 8px 12px; border: 1px solid #e0e4eb; border-radius: 9px; background: #fff; color: #526071; text-align: left; white-space: nowrap; font-size: .73rem; font-weight: 650; line-height: 1.4; cursor: pointer; }
.content-page-restaurant .new-nav-link:hover, .content-page-restaurant .new-nav-link.is-selected { border-color: #c9d6e5; background: #edf2f7; color: #405d7e; }
.content-page-restaurant .new-nav-link .badge { color: #854b53 !important; background: #f3e1e2 !important; }
.menu-product-empty[hidden], .menu-section[hidden], .menu-product-card[hidden] { display: none !important; }
.content-page-restaurant #orderBasket { border: 0 !important; border-radius: 10px !important; }
.content-page-restaurant #orderBasket .alert-danger { border: 0; border-radius: 10px; background: #f3f5f8; color: #718096; font-size: .85rem; padding: 24px 10px; }
.menu-partner-header { position: relative; padding: 18px; margin-bottom: 18px; border: 1px solid #e0e4eb; border-radius: 16px; background: #fff; box-shadow: 0 3px 14px rgb(22 35 57 / 3%); }
.menu-section { margin: 24px 0 32px; }
.content-page-restaurant .menu-carte-cat-title { display: flex; align-items: center; gap: 8px; padding: 0 0 12px; background: transparent; color: #253244; font-size: 1.1rem; font-weight: 800; line-height: 1.4; text-align: left; }
.content-page-restaurant .menu-carte-cat-title sup { top: auto; padding: 4px 7px; border-radius: 6px; background: #f3e1e2; }
.content-page-restaurant .menu-carte-cat-title sup i { color: #854b53 !important; font-style: normal; }
.menu-category-banner { overflow: hidden; border-radius: 12px; margin-bottom: 14px; }
.menu-category-banner img { max-height: 220px !important; object-fit: cover; object-position: center; }
.menu-category-description { margin: 0 0 14px; color: #718096; font-size: .85rem; line-height: 1.6; text-align: left; }
.menu-products-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; align-items: start; }
@container (min-width: 620px) { .menu-products-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@container (min-width: 1050px) { .menu-products-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.menu-product-card { min-width: 0; overflow: visible; border: 1px solid #e0e4eb; border-radius: 14px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.menu-product-card:hover { border-color: #bfcddd; box-shadow: 0 4px 16px rgb(22 35 57 / 5%); }
.menu-product-content { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto 1fr; min-height: 96px; gap: 0 7px; padding: 9px 10px 10px 11px; }
.menu-product-content.has-image { grid-template-columns: minmax(0, 1fr) auto; padding-right: 96px; }
.menu-product-copy, .menu-product-actions { display: contents; }
.menu-product-name { grid-column: 1; grid-row: 1; min-width: 0; margin: 0; color: #253244; font-size: .85rem; line-height: 1.4; font-weight: 750; overflow-wrap: anywhere; text-align: left; }
.menu-product-description { grid-column: 1 / 3; grid-row: 2; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; margin: 4px 0 0; color: #718096; font-size: .75rem; line-height: 1.45; text-align: left; overflow-wrap: anywhere; }
.menu-product-tags { grid-column: 1 / 3; grid-row: 3; display: flex; align-items: start; flex-wrap: wrap; align-content: start; gap: 5px; margin-top: 7px; }
.menu-product-tags:not(:has(> *)) { display: none; }
.menu-product-tags > span { border-radius: 5px; padding: 3px 6px; font-size: .62rem; font-weight: 650; line-height: 1.3; }
.menu-product-promo { background: #f3e1e2; color: #854b53; }
.menu-product-new, .menu-product-popular { background: #e9f1eb; color: #42654d; }
.menu-product-dietary-icons { display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; vertical-align: middle; }
.menu-product-dietary-icons:empty { display: none; }
.menu-product-dietary-icons img { width: 16px; height: 16px; object-fit: contain; }
.menu-product-price { grid-column: 2; grid-row: 1; color: #253244; font-size: .83rem; font-weight: 750; line-height: 1.4; white-space: nowrap; text-align: right; }
.menu-product-price-from { font-weight: 500; font-size: .7rem; color: #718096; }
.menu-product-price.is-reduced { color: #42654d; }
.menu-product-price del { display: block; color: #8994a3; font-size: .7rem; font-weight: 500; }
.menu-product-image { position: absolute; top: 0; right: 0; bottom: 0; width: 88px; height: 100%; margin: 0; padding: 0; border: 0; border-left: 1px solid #eef0f3; overflow: hidden; background: #f8f9fb; }
.menu-product-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.menu-product-add { position: absolute; right: 8px; bottom: 8px; z-index: 2; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: #536f94; color: #fff; box-shadow: 0 2px 6px rgb(22 35 57 / 12%); font-size: .85rem; cursor: pointer; }
.menu-product-add:hover { background: #405d7e; }
.menu-product-content:not(.has-image) { padding-right: 48px; }
.menu-product-variants { border-top: 1px solid #e6ebf1; background: #f7f9fb; }
.menu-product-variant + .menu-product-variant { border-top: 1px solid #e6ebf1; }
.menu-product-variant .menu-product-content, .menu-product-variant .menu-product-content.has-image { grid-template-columns: minmax(0, 1fr) auto 32px; grid-template-rows: auto; align-items: center; min-height: 0; padding: 11px 13px; gap: 10px; }
.menu-product-variant .menu-product-copy { display: block; grid-column: 1; }
.menu-product-variant .menu-product-image { display: none; }
.menu-product-variant .menu-product-add { position: static; grid-column: 3; grid-row: 1; }
.menu-product-variant .menu-product-price { align-self: center; }
.content-page-restaurant button:focus-visible { outline: 2px solid #536f94; outline-offset: 2px; }
.content-page-restaurant #mobile-category-selection { position: static; height: auto !important; padding: 0; background: transparent; }
.content-page-restaurant #category-select { min-height: 44px; padding: 10px 14px; border: 1px solid #e0e4eb; border-radius: 10px; color: #405d7e; background-color: #fff; font-size: .85rem; }
@media (max-width: 1199.98px) { .content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr) 250px; gap: 16px; } }
@media (max-width: 991.98px) {
  body:has(.content-page-restaurant) { background-image: none; }
  .content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767.98px) {
  .content-page-restaurant { margin-top: calc(var(--header-h, 58px) + 12px); padding: 0 12px !important; height: calc(100dvh - var(--header-h, 58px) - 12px); }
  .content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .content-page-restaurant #center-nav-anker { padding-inline: 0; }
  .menu-partner-header { position: relative; padding: 12px; }
  .menu-tools { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .menu-product-content.has-image { padding-right: 88px; }
  .menu-product-image { width: 80px; }
  .menu-section { margin: 20px 0 26px; }
}
@media (prefers-reduced-motion: reduce) { .menu-product-card { transition: none; } }


/* Basket: a scrollable item list and a persistent desktop summary. */
.content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr) 320px; }
.content-page-restaurant #order-basket-scroll { padding: 0 !important; overflow: hidden; }
.content-page-restaurant #orderBasket { height: 100%; min-height: 0; }
.menu-basket { color: #253244; font-variant-numeric: tabular-nums; }
#orderBasket .menu-basket { display: flex; flex-direction: column; height: 100%; min-height: 0; }
#orderBasket .menu-basket-items { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #d2d8e0 transparent; padding: 4px 16px 16px; }
.menu-basket .basket-category-name { margin: 16px 0 8px !important; padding: 0 !important; background: transparent; color: #7b8796; font: 700 .66rem/1.4 Helvetica, sans-serif; letter-spacing: .07em; text-align: left !important; }
.menu-basket-items > hr { display: none; }
.menu-basket .basket-line { display: block; margin: 0 0 8px !important; padding: 10px; border: 1px solid #e8ecf1; border-radius: 11px; background: #fafbfc; }
.menu-basket .basket-line > tbody { display: block; }
.menu-basket .basket-line tr { display: flex; width: 100%; }
.menu-basket .basket-line td { min-width: 0; font-size: .73rem !important; line-height: 1.5; color: #718096; }
.menu-basket .basket-line-heading { align-items: flex-start; gap: 8px; }
.menu-basket .basket-line-quantity { flex: 0 0 30px; display: grid; place-items: center; min-height: 30px; padding: 4px 0 !important; border: 1px solid #dce5ee; border-radius: 7px; background: #edf2f7; color: #405d7e !important; font-size: .75rem !important; }
.menu-basket .basket-line-name { flex: 1; padding: 0 !important; }
.menu-basket .basket-edit-button, .menu-basket .basket-line-name > div { display: block !important; width: 100% !important; margin: 0 !important; padding: 5px 0 !important; border: 0; border-radius: 4px; background: transparent; color: #253244; box-shadow: none; font-size: .76rem; font-weight: 650; line-height: 1.45; text-transform: none; overflow-wrap: anywhere; }
.menu-basket .basket-edit-button:hover { color: #405d7e; text-decoration: underline; text-underline-offset: 3px; }
.menu-basket .basket-line-remove { flex: 0 0 30px; padding: 0 !important; }
.menu-basket .basket-delete-button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; border-radius: 7px; background: transparent; color: #919baa; font-size: .75rem; box-shadow: none; }
.menu-basket .basket-delete-button:hover { background: #f6e7e9; color: #a44653; }
.menu-basket .basket-line-price { flex: 1; margin-top: 4px; padding: 0 !important; font-size: .78rem !important; font-weight: 700; color: #253244 !important; text-align: right !important; }
.menu-basket .basket-line cite { font-style: normal; }
.menu-basket .basket-line tr:not(.basket-line-heading) > td[colspan="3"] { flex: 1; }
.menu-basket-summary { padding: 14px 16px 16px; border-top: 1px solid #e6ebf1; background: #fff; }
.menu-basket-summary .basket-totals { width: 100%; border-collapse: collapse; }
.menu-basket-summary .basket-totals td { padding: 4px 0 !important; font-size: .76rem !important; line-height: 1.5; color: #64748b; vertical-align: top; }
.menu-basket-summary .basket-totals td[colspan="2"] { text-align: left !important; }
.menu-basket-summary .basket-totals td:last-child:not([colspan]) { color: #253244; white-space: nowrap; }
.menu-basket-summary .basket-totals hr { display: none; }
.menu-basket-summary .basket-total-row td { padding: 10px 0 12px !important; color: #253244 !important; font-size: 1rem !important; font-weight: 750; }
.menu-basket-summary .btn-primary, #newBasketModalButton .btn-primary { min-height: 44px; display: flex; align-items: center; justify-content: center; border: 1px solid #536f94; border-radius: 10px; background: #536f94; color: #fff; font-size: .82rem; font-weight: 700 !important; line-height: 1.4; text-transform: none !important; box-shadow: 0 3px 8px rgb(40 63 92 / 10%); }
.menu-basket-summary .btn-primary:hover, #newBasketModalButton .btn-primary:hover { background: #405d7e; border-color: #405d7e; }
.menu-basket .btn:focus-visible, #newBasketModalButton .btn:focus-visible { outline: 2px solid #536f94; outline-offset: 3px; }
.content-page-restaurant #orderBasket .menu-basket-summary .alert-danger, #newBasketModalButton .alert-danger { padding: 10px 12px; border: 1px solid #e8dcc5; border-radius: 10px; background: #f7f2e8; color: #806940; font-size: .75rem; line-height: 1.5; }
#newBasketModal .modal-content { overflow: hidden; border: 1px solid #e0e4eb; border-radius: 16px; box-shadow: 0 12px 48px rgb(22 35 57 / 15%); }
#newBasketModal .modal-header { padding: 18px 20px; border-bottom: 1px solid #eef0f3; }
#newBasketModalLabel { font: 700 1rem/1.4 Helvetica, sans-serif !important; text-align: left !important; color: #253244; }
#newBasketModalBody { padding: 0 16px; background: #fff; }
#newBasketModalBody .menu-basket-items { padding-bottom: 8px; }
#newBasketModalBody .menu-basket-summary { padding: 12px 0; }
#newBasketModal .modal-footer { height: auto !important; min-height: 72px; padding: 12px 16px; border-top: 1px solid #eef0f3; background: #fff !important; }
@media (max-width: 1199.98px) and (min-width: 992px) { .content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr) 290px; } }
@media (max-width: 991.98px) { .content-page-restaurant .menu-page-layout { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 767.98px) {
  #newBasketModal .basket-line-heading { gap: 10px; }
  #newBasketModal .basket-line-remove { flex-basis: 40px; }
  #newBasketModal .basket-delete-button { width: 40px; height: 40px; }
  #newBasketModal .basket-line-name .basket-edit-button { min-height: 40px; }
  #newBasketModal .basket-line-price { padding-right: 0 !important; }
}
.menu-basket .basket-edit-icon { margin-left: 5px; color: #9aa6b5; font-size: .58rem; vertical-align: middle; }
.menu-basket-summary .basket-fee-row td { color: #64748b !important; }
.menu-basket .basket-edit-button { --bs-btn-hover-bg: #edf2f7; --bs-btn-hover-color: #405d7e; --bs-btn-active-bg: #edf2f7; --bs-btn-active-color: #405d7e; --bs-btn-active-border-color: transparent; }
.menu-basket .basket-edit-button:active, .menu-basket .basket-edit-button:focus { background: #edf2f7 !important; color: #405d7e !important; box-shadow: none !important; }

/* Search results stay near the search field, above the fixed mobile basket. */
.menu-is-filtering .menu-partner-header,
.menu-is-filtering .menu-category-banner,
.menu-is-filtering .menu-category-description { display: none; }
@media (max-width: 991.98px) {
  .content-page-restaurant { height: calc(100dvh - var(--header-h, 58px) - 20px - var(--bottom-gap, 0px)); }
  .content-page-restaurant #center-nav-anker { padding-bottom: 24px; }
}
@media (max-width: 767.98px) {
  .content-page-restaurant { height: calc(100dvh - var(--header-h, 58px) - 12px - var(--bottom-gap, 0px)); }
}

/* Compact identity and connected navigation from the previous DEV hero. */
.menu-partner-header:has(.menu-hero) { padding: 0; overflow: hidden; }
.menu-hero { color: #253244; background: #fafbfc; }
.menu-hero-context { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 38px; padding: 8px 16px; border-bottom: 1px solid #e8ecf1; background: #fafbfc; }
.menu-hero-context a, .menu-hero-context button { min-width: 0; padding: 0; border: 0; background: transparent; color: #64748b; font: 500 .72rem/1.5 Helvetica, sans-serif; text-decoration: none; cursor: pointer; }
.menu-hero-context button { margin-left: auto; }
.menu-hero-context i { margin-right: 5px; color: #8290a2; }
.menu-hero-context a:hover, .menu-hero-context button:hover { color: #405d7e; }
.menu-hero-identity { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; gap: 20px; }
.menu-hero-logo { position: relative; align-self: stretch; min-height: 144px; background: transparent; }
.menu-hero-logo-preview { display: grid; place-items: center; width: 100%; height: 100%; padding: 8px; border: 0; background: transparent; }
.menu-hero-logo-preview img { width: 100%; height: 100%; max-height: 170px; object-fit: contain; }
.menu-partner-header .menu-hero-logo #favoriteButton { position: absolute !important; top: 8px !important; right: 8px !important; left: auto; margin: 0; }
.menu-partner-header .menu-hero-logo #favoriteButton button { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border-radius: 8px; font-size: .75rem; line-height: 1; background: #fff; }
.menu-partner-header .menu-hero-logo #favoriteButton button i { display: block; margin: 0; line-height: 1; }
.menu-partner-header .menu-hero-logo #favoriteButton .btn-danger { color: #d63c50; border-color: #e5ccd1; }
.menu-hero-details { min-width: 0; padding: 16px 18px 16px 0; }
.menu-hero-details h1 { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; margin: 0 0 8px; font-size: clamp(1.15rem, 1.6vw, 1.65rem); font-weight: 800; line-height: 1.2; }
.menu-hero-badges { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-bottom: 8px; }
.menu-hero-badges > span { padding: 3px 7px; border-radius: 6px; background: #edf2f7; color: #60758e; font-size: .65rem; font-weight: 650; line-height: 1.4; }
.menu-hero-badges .menu-hero-status { background: #f3e7e8; color: #854b53; }
.menu-hero-badges .menu-hero-status.is-open { background: #e5efe8; color: #42654d; }
.menu-hero-today { margin-bottom: 7px; color: #718096; font-size: .73rem; line-height: 1.4; }
.menu-hero-today i { margin-right: 4px; }
.menu-hero-rating { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 9px; color: #718096; font-size: .75rem; text-decoration: none; }
.menu-hero-rating > span:first-child { display: flex; gap: 2px; color: #bd914d; font-size: .75rem; }
.menu-hero-rating strong { color: #40536c; }
.menu-hero-rating:hover { color: #405d7e; }
.menu-hero-payments { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.menu-hero-payments img { width: auto; height: 18px; max-width: 30px; object-fit: contain; }
.menu-hero-hours { display: none; margin: 16px 20px 16px 0; padding-left: 20px; border-left: 1px solid #e6ebf1; }
.menu-hero-hours h2 { margin: 0 0 8px; color: #52657d; font-size: .75rem; font-weight: 700; }
.menu-hero-hours dl { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 5px 14px; margin: 0; font-size: .67rem; line-height: 1.45; }
.menu-hero-hours dt { color: #718096; font-weight: 500; }
.menu-hero-hours dd { margin: 0; color: #40536c; font-variant-numeric: tabular-nums; }
@container (min-width: 850px) {
  .menu-hero-identity { grid-template-columns: clamp(200px, 24cqw, 300px) minmax(0, 1fr); gap: 28px; }
  .menu-hero-identity.has-hours { grid-template-columns: clamp(200px, 24cqw, 300px) minmax(0, 1fr) auto; }
  .menu-hero-logo { min-height: 200px; }
  .menu-hero-logo-preview { padding: 16px 24px; }
  .menu-hero-logo-preview img { max-height: 200px; }
  .menu-partner-header .menu-hero-logo #favoriteButton { top: 12px !important; right: 12px !important; }
  .menu-hero-hours { display: block; }
}
.menu-hero-tabs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid #e6ebf1; background: #fff; }
.menu-hero-tab { display: flex; align-items: center; justify-content: center; gap: 8px; min-width: 0; min-height: 48px; padding: 10px; border: 0; border-right: 1px solid #e6ebf1; border-radius: 0; background: transparent; color: #718096; font: 650 .75rem/1.4 Helvetica, sans-serif; text-decoration: none; cursor: pointer; }
.menu-hero-tab i { flex: 0 0 auto; font-size: .95rem; }
.menu-hero .menu-hero-tab.is-active { background: #edf2f7 !important; color: #405d7e !important; box-shadow: inset 0 -3px #536f94; }
.menu-hero-tab:hover { color: #405d7e; background: #f5f7fa; }
.menu-hero-tab:last-child { border-right: 0; }
.menu-hero-offers:not(:disabled) { color: #42654d; background: #e9f1eb; }
.menu-hero-tab:disabled { color: #adb5c0; background: #fafbfc; cursor: default; }
.menu-hero-delivery { display: flex; align-items: center; justify-content: flex-end; gap: 20px; grid-column: 1 / -1; padding: 9px 16px; border-top: 1px solid #e6ebf1; background: #fafbfc; color: #718096; font-size: .68rem; }
.menu-hero-delivery strong { color: #40536c; margin-left: 4px; font-weight: 700; }
.menu-hero-delivery i { margin-right: 4px; color: #8290a2; }
@container (min-width: 1050px) {
  .menu-hero-tabs:has(.menu-hero-delivery) { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
  .menu-hero-delivery { flex-direction: column; align-items: flex-start; justify-content: center; grid-column: auto; gap: 3px; border-top: 0; padding: 8px 16px; }
}
.menu-hero button:focus-visible, .menu-hero a:focus-visible { outline: 2px solid #536f94; outline-offset: -3px; }
@media (max-width: 767.98px) {
  .menu-hero-context { gap: 8px; padding: 8px 12px; }
  .menu-hero-context a, .menu-hero-context button { font-size: .65rem; }
  .menu-hero-identity { grid-template-columns: 92px minmax(0, 1fr); gap: 12px; }
  .menu-hero-logo { min-height: 140px; }
  .menu-hero-details { padding: 14px 12px 14px 0; }
  .menu-hero-details h1 { font-size: 1.1rem; }
  .menu-hero-today { font-size: .68rem; }
  .menu-hero-tab { min-height: 46px; padding: 10px 8px; }
  .menu-hero-tab > span { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .menu-hero-delivery { justify-content: space-between; gap: 10px; padding: 8px 12px; font-size: .62rem; }
}

.menu-basket-items:has(.menu-basket-empty) { display: grid; place-items: center; }
.menu-basket-empty { max-width: 250px; margin: auto; padding: 36px 12px; text-align: center; }
.menu-basket-empty-icon { display: grid; place-items: center; width: 76px; height: 76px; margin: 0 auto 18px; border-radius: 50%; background: #edf2f7; color: #7a91ad; font-size: 1.8rem; }
.menu-basket-empty h3 { margin: 0 0 10px; color: #40536c; font-size: .95rem; line-height: 1.4; font-weight: 700; }
.menu-basket-empty p { text-align: center; margin: 0; color: #8290a2; font-size: .8rem; line-height: 1.7; }
.menu-basket:has(.menu-basket-empty) .menu-basket-summary:not(:has(.alert, .btn)) { display: none; }
#newBasketModalBody .menu-basket-empty { padding-block: 48px; }

/* Large variant groups use the same charcoal palette as Add to Basket. */
#menuVariantsModal { z-index: 2000; }
#menuVariantsModal .modal-dialog { max-width: 560px; }
#menuVariantsModal .modal-content { background: #212529; border: 1px solid #444; border-radius: 14px; overflow: hidden; max-height: calc(100dvh - 3.5rem); }
#menuVariantsModal .modal-header { flex-shrink: 0; padding: 16px 20px; border-bottom: 1px solid #444; }
#menuVariantsModal .modal-title { color: #f8f9fa; font-size: 1.05rem; font-weight: 750; }
#menuVariantsModal .menu-variants-hint { margin-top: 4px; color: #adb5bd; font-size: .8rem; }
#menuVariantsModal .modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
#menuVariantsModal .menu-variants-image { height: 220px; background: #fff; overflow: hidden; }
#menuVariantsModal .menu-variants-image img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
#menuVariantsModal .menu-product-variant + .menu-product-variant { border-color: #41464b; }
#menuVariantsModal .menu-product-content { padding: 16px 20px; grid-template-columns: minmax(0, 1fr) auto 36px; }
#menuVariantsModal .menu-product-name, #menuVariantsModal .menu-product-price { color: #f8f9fa; }
#menuVariantsModal .menu-product-description { display: block; color: #adb5bd; }
#menuVariantsModal .menu-product-add { width: 36px; height: 36px; border-color: #536f94; }
#menuVariantsModal .menu-product-add:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@media (max-width: 577px) {
  #menuVariantsModal .menu-product-content { padding: 14px 16px; gap: 8px; }
}

/* Prices belong to the purchase action; variant groups retain their starting price. */
.menu-product-content.has-price-button .menu-product-name { grid-column: 1 / 3; }
.menu-product-card > .menu-product-content.has-price-button:not(.has-image) { padding-right: 11px; }
.menu-product-add.menu-product-add-priced {
  position: relative; right: auto; bottom: auto; grid-column: 1 / 3; grid-row: 4;
  justify-self: end; display: inline-flex; align-items: center; justify-content: center;
  gap: 6px; width: auto; min-height: 30px; height: auto; margin-top: 10px;
  padding: 4px 7px; border-radius: 10px; font-size: .78rem; line-height: 1.3;
  font-weight: 700; white-space: nowrap;
}
/* Purchase buttons share the image or heading row rather than adding a row. */
.menu-product-card > .menu-product-content.has-image .menu-product-add-priced { position: absolute; grid-column: auto; grid-row: auto; right: -6px; bottom: -6px; margin: 0; }
.menu-product-card > .menu-product-content.has-price-button:not(.has-image) .menu-product-name { grid-column: 1 / 3; }
.menu-product-card > .menu-product-content.has-price-button:not(.has-image) .menu-product-add-priced { position: absolute; grid-column: auto; grid-row: auto; right: -6px; bottom: -6px; margin: 0; }

.menu-product-add-priced del { font-size: .64rem; font-weight: 400; opacity: .75; }
.menu-product-button-prices { display: inline-flex; align-items: center; gap: 4px; }
.menu-product-button-prices:has(del) { flex-direction: column; gap: 1px; }
.menu-product-variant .menu-product-content.has-price-button { grid-template-columns: minmax(0, 1fr) auto; }
.menu-product-variant .has-price-button .menu-product-copy { grid-column: 1; }
.menu-product-variant .menu-product-add.menu-product-add-priced { grid-column: 2; grid-row: 1; margin: 0; }
#menuVariantsModal .menu-product-add.menu-product-add-priced { width: auto; height: auto; }

/* Variant images are hidden: keep purchase buttons inside the row, including dialogs. */
.menu-product-variant .has-price-button .menu-product-copy { min-width: 0; }
#menuVariantsModal .menu-product-content.has-price-button { grid-template-columns: minmax(0, 1fr) auto; }
.menu-product-variant .menu-product-add.menu-product-add-priced { margin-right: 0; }

#menuVariantsModal .menu-variants-image { position: relative; }
#menuVariantsModal .menu-variants-image-label { position: absolute; top: 5px; left: 5px; color: #6c757d; }

/* Desktop dialog structure; mobile keeps the original stacked layout. */
.item-extras-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.item-extras-group { min-width: 0; }
#addItemToBasketModal #plat-image-div { position: relative; }
/* Shared menu-dialog palette; control sizes remain device-specific. */
#addItemToBasketModal .modal-title { font-family: Helvetica, sans-serif !important; font-weight: 700; }
#addItemToBasketModal .item-dialog-summary h5 { color: #f8f9fa !important; font-family: Helvetica, sans-serif !important; font-weight: 700 !important; }
#addItemToBasketModal .item-dialog-summary cite { font-style: normal; color: #adb5bd; }
#addItemToBasketModal .item-dialog-summary h6 span[style] { color: #9dcaac !important; }
#addItemToBasketModal .order-checkbox { accent-color: #6984a6; }
#addItemToBasketModal .quantity button, #addItemToBasketModal #itemAmount_minus, #addItemToBasketModal #itemAmount_plus { background: #3b4859; border: 1px solid #536173; border-radius: 6px; color: #fff; text-shadow: none; }
#addItemToBasketModal .quantity button:disabled { opacity: .4; }
#addItemToBasketModal #addItemModalSave { background: #536f94; border-color: #536f94; text-shadow: none; }
#addItemToBasketModal textarea { background: #2b3036 !important; color: #eee; border-color: #525960; }
#addItemToBasketModal .calc-extra-multi, #addItemToBasketModal [id$="_xfeld"] { color: #9bb4d3 !important; }
#addItemToBasketModal .item-extras-group td { vertical-align: middle; }
/* Compact desktop dialogs, with independently flowing option groups. */
@media (min-width: 992px) {
  #addItemToBasketModal .modal-dialog, #menuVariantsModal .modal-dialog { width: calc(100% - 64px); max-width: 880px; }
  #addItemToBasketModal .modal-dialog { max-width: 880px; height: auto !important; }
  #addItemToBasketModal .modal-dialog:not(:has(.item-extras-group)) { max-width: 680px; }
  #addItemToBasketModal .modal-header, #menuVariantsModal .modal-header { padding: 16px 20px; }
  #addItemToBasketModal .modal-title { font-family: Helvetica, sans-serif !important; font-size: 1rem !important; font-weight: 700; }
  #addItemToBasketModal .modal-body { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-content: start; }
  #addItemToBasketModal #plat-image-div { width: calc(100% - 20px); height: 170px; margin: 20px 0 0 20px; border-radius: 14px; overflow: hidden; background-size: contain; box-shadow: 0 3px 12px rgb(0 0 0 / 12%); }
  #addItemToBasketModal .item-dialog-summary { padding: 20px !important; }
  #addItemToBasketModal .item-dialog-summary h5 { color: #f8f9fa !important; font-family: Helvetica, sans-serif !important; font-size: 1.05rem !important; font-weight: 700 !important; max-width: none !important; }
  #addItemToBasketModal .item-dialog-summary cite { font-style: normal; color: #adb5bd; font-size: .85rem; line-height: 1.5; }
  #addItemToBasketModal .modal-body:not(:has(#plat-image-div)) .item-dialog-summary { grid-column: 1 / -1; }
  #addItemToBasketModal #addItemForm { grid-column: 1 / -1; padding: 0 20px 20px !important; }
  #addItemToBasketModal .item-extras-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; margin-top: 14px; }
  #addItemToBasketModal .item-extras-group { display: inline-block; width: 100%; margin: 0 0 14px; padding: 12px 14px; border: 1px solid #41464b; border-radius: 12px; background: #272c31; break-inside: avoid; vertical-align: top; }
  #addItemToBasketModal .item-extras-group > .row { margin-inline: 0; }
  #addItemToBasketModal .item-extras-group hr { display: none; }
  #addItemToBasketModal .item-extras-group table { width: 100% !important; margin: 8px 0 0 !important; }
  #addItemToBasketModal .item-extras-group > .row > .col-12 { padding: 0 !important; }
  #addItemToBasketModal .item-extras-group .row.g-3 { --bs-gutter-y: 0; margin: 0 !important; }
  #addItemToBasketModal .item-extras-group label { font-size: .8rem; letter-spacing: .02em; font-weight: 700; }
  #addItemToBasketModal .item-extras-group td { padding-block: 6px !important; font-size: .8rem !important; vertical-align: middle; overflow-wrap: anywhere; }
  #addItemToBasketModal .order-checkbox { width: 18px !important; height: 18px !important; min-width: 18px !important; margin: 0 !important; accent-color: #6984a6; }
  #addItemToBasketModal .quantity { gap: 4px; }
  #addItemToBasketModal .modal-footer { height: auto !important; flex-basis: auto !important; padding: 12px 16px !important; }
  #addItemToBasketModal #addItemModalSave { font-size: 1rem; }
  #addItemToBasketModal textarea { min-height: 72px; }
  #addItemToBasketModal .item-extras-group { margin-bottom: 0; }
  #addItemToBasketModal .item-extras-group:is(:only-child, :has(tr:nth-child(10))) { grid-column: 1 / -1; }
  /* Long groups have room for two readable option columns across the whole dialog. */
  #addItemToBasketModal .item-extras-group:has(tr:nth-child(10)) table > tbody { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 32px; position: relative; }
  #addItemToBasketModal .item-extras-group:has(tr:nth-child(10)) table > tbody::before { content: ""; position: absolute; left: 50%; top: 6px; bottom: 6px; width: 1px; background: #41464b; pointer-events: none; }
  #addItemToBasketModal .item-extras-group:has(tr:nth-child(10)) tr { display: flex; align-items: center; min-width: 0; gap: 6px; }
  #addItemToBasketModal .item-extras-group:has(tr:nth-child(10)) td:first-child { flex: 1; width: auto !important; min-width: 0; }
  #addItemToBasketModal .item-extras-group:has(tr:nth-child(10)) td:not(:first-child) { flex-shrink: 0; }
  #menuVariantsModal .modal-dialog { max-width: 880px; }
  #menuVariantsModal .menu-variants-image { height: 170px; }
  #menuVariantsModal .menu-variants-image img { object-fit: contain; }
  #menuVariantsModal .menu-variants-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 16px; align-items: stretch; }
  #menuVariantsModal .menu-product-variant { min-width: 0; border: 1px solid #41464b; border-radius: 10px; }
  #menuVariantsModal .menu-product-content { padding: 14px; }
}

@media (max-width: 991.98px) {
  #addItemToBasketModal .quantity { gap: 8px; height: auto !important; }
  #addItemToBasketModal .quantity button { width: 36px; min-width: 36px; height: 40px; }
  #addItemToBasketModal .item-extras-group td:has(> .quantity) { width: 80px !important; }
  #addItemToBasketModal .item-extras-group table { width: 100% !important; margin-inline: 0 !important; }
  #addItemToBasketModal #addItemFooter > .col-6:first-child > div { display: inline-flex !important; align-items: center; gap: 8px; }
}

/* Price actions overlap the card edge without changing its layout height. */
.menu-product-card > .menu-product-content .menu-product-add-priced { box-shadow: 0 3px 8px rgb(22 35 57 / 18%); }
.menu-product-card > .menu-product-content .menu-product-image { border-top-right-radius: 13px; border-bottom-right-radius: 13px; }
.menu-product-card > .menu-product-variants { border-radius: 0 0 13px 13px; overflow: hidden; }
.menu-products-grid { padding-right: 8px; padding-bottom: 8px; }

.menu-product-card.is-search-target, .menu-product-variant.is-search-target { position: relative; outline: none; }
.menu-product-card.is-search-target::after, .menu-product-variant.is-search-target::after {
  content: "";
  position: absolute;
  inset: 0;
  border: 2px solid #6984a6;
  border-radius: inherit;
  pointer-events: none;
  z-index: 2;
}

/* Keep the purchase action compact while preserving its 48px touch target. */
#addItemToBasketModal #addItemModalSave {
  width: auto !important;
  min-width: min(140px, 100%);
  max-width: 100%;
  margin-left: auto !important;
  padding-left: 16px;
  padding-right: 16px;
  white-space: nowrap;
}

.menu-product-card.is-search-target .menu-product-add,
.menu-product-variant.is-search-target .menu-product-add { z-index: 3; }

/* Let mobile overscroll reach the browser for native pull-to-refresh. */
@media (max-width: 991.98px) {
  body:has(.content-page-restaurant):not(.modal-open) { overflow-y: auto; }
  .content-page-restaurant #center-nav-anker { overscroll-behavior-y: auto; }
}

/* Compact attribution; avoid the site's generic footer sizing. */
.menu-translation-footer { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; margin: 10px 0 0; padding: 0; background: transparent; border: 0; color: #65758a; font-size: 11px; line-height: 16px; text-align: center; }
.menu-translation-footer .menu-translation-badge { display: inline-flex; align-items: center; flex: none; height: 18px; margin: 0; padding: 0; }
.menu-translation-footer .menu-translation-badge img { display: block; width: auto; height: 14px; max-width: 100%; object-fit: contain; }
.menu-translation-footer > a:last-child { display: block; height: 16px; margin: 0; padding: 0; color: inherit; font-size: inherit; line-height: 16px; text-decoration: underline; white-space: nowrap; }

/* Smaller plus glyphs; preserve the full button hit areas and price typography. */
.menu-product-add .fa-plus { font-size: .72em; }
#addItemToBasketModal #addItemModalSave .fa-plus { font-size: 12px !important; }
#addItemToBasketModal .quantity .plus { font-size: 14px; }
#addItemToBasketModal #itemAmount_plus { font-size: 16px; }

/* No image column: give titles the full card width, reserving only lower-row actions. */
.menu-product-card > .menu-product-content:not(.has-image) { padding-right: 11px; }
.menu-product-card > .menu-product-content:not(.has-image) .menu-product-name { grid-column: 1 / -1; }
.menu-product-card > .menu-product-content.has-price-button:not(.has-image) .menu-product-tags { padding-right: 84px; }
.menu-product-card > .menu-product-content.has-price-button:not(.has-image):has(.menu-product-description) { padding-bottom: 42px; }
.menu-product-card > .menu-product-content:not(.has-image):not(.has-price-button) .menu-product-price { grid-row: 3; align-self: end; margin-right: 38px; }
.menu-product-card > .menu-product-content:not(.has-image):not(.has-price-button) .menu-product-tags { padding-right: 130px; }
