/* Mobile refinements shared by the shop, kitchen desk and rider page. */
.mobile-search-toggle, .mobile-search-slot, #mobile-menu-mount { display: none; }
#menu-search-field[hidden] { display: none !important; }
.bh-map-marker > span { position: relative; left: 6px; top: 6px; }
@media (max-width: 800px), (pointer: coarse) and (max-width: 1024px) {
  html { scroll-padding-top: 132px; -webkit-text-size-adjust: 100%; }
  button, a, summary, label, input, select, textarea { -webkit-tap-highlight-color: transparent; }
  button, a, summary { touch-action: manipulation; }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea {
    font-size: 16px !important;
    min-height: 48px;
    scroll-margin-block: 96px 100px;
  }
  textarea { line-height: 1.55; }
  input[type="checkbox"], input[type="radio"] { accent-color: #ec3153; }
  :focus-visible { outline: 3px solid #b91e44; outline-offset: 3px; }
  .button, .bh-button, .bh-link-button, .desk-button, .desk-button.small, .filter-button,
  .category, .recipe-start button, .builder-nav button, .offer-code,
  .coupon-form button, .applied-code button, .bh-auth-tabs button,
  .bh-address-card button, .filter-chip, .desk-nav-item, .mode-switch button,
  .tip-options button, .cart-upsell button, .cart-content .mode-switch button,
  .cart-modal .mode-switch button, .checkout-layout .mode-switch button,
  .overview-banner .desk-button, .dialog-actions .desk-button, .page-actions .desk-button,
  .bh-section-heading .bh-button, .bh-coordinate-fields .bh-button,
  .bh-auth-buttons .bh-button, .bh-pin-confirm .bh-button,
  .history-actions .button, .studio-presets button, .studio-confirm button {
    min-height: 48px;
  }
  .icon-button, .bh-modal-close, .desk-icon, .desk-top-actions .desk-icon,
  .favorite, .add-product, .cart-line-remove, .stepper button,
  .cart-lines .stepper button, .customizer-bottom .stepper button,
  .studio-palette header > button {
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
  }
  .stepper { gap: 2px; }
  .stepper strong { font-size: 14px; min-width: 20px; }
  .customizer-bottom .stepper { min-width: 112px; }
  .language-switch a, .desk-language button, .bh-rider-header button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    font-size: 12px;
  }
  .bh-account-trigger { width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
  .header-cart { min-height: 44px; }
  .desk-button.small { font-size: 12px; }
  .modal, .bh-account-dialog, .desk-dialog, .studio-palette, .studio-confirm {
    max-height: calc(100dvh - max(12px, env(safe-area-inset-top)) - max(12px, env(safe-area-inset-bottom)));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    scroll-padding-block: 80px 96px;
  }
  .bh-account-body { max-height: none; overflow: visible; }
  .bh-password-input button { min-width: 56px; min-height: 48px; font-size: 12px; }
  .bh-check, .consent, .check-chip, .toggle-control, .editor-checks label {
    min-height: 44px;
    align-items: center;
  }
  .bh-check input, .consent input { width: 22px; height: 22px; flex-basis: 22px; }
  .bh-help, .bh-auth-disclaimer, .bh-inline-error, .fine-print,
  .bh-map-consent p, .bh-tracking-map-consent p { font-size: 12px !important; line-height: 1.65; }
  .bh-coordinates summary, .custom-allergy summary, .faq-list summary {
    min-height: 48px;
    display: flex;
    align-items: center;
  }
  .bh-coordinate-fields label { font-size: 12px; }
  .bh-map-actions .bh-link-button { font-size: 13px; }
  .bh-place-results button { min-height: 48px; font-size: 13px; }
  .leaflet-bar a { width: 44px !important; height: 44px !important; line-height: 44px !important; }
  .bh-map-marker > span { position: relative; left: 6px; top: 6px; }
  .modal-header { background: #fffcf9; }
  .bh-account-dialog, #product-dialog.premium-customizer,
  #checkout-dialog.bh-checkout-v4, #track-dialog.bh-journey-dialog {
    max-height: calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
  }
  .cart-modal .cart-lines { max-height: none; overflow: visible; }
  .cart-line { min-width: 0; padding-block: 17px; }
  .cart-line-title { padding-right: 40px; }
  .cart-line-title button { min-height: 44px; text-align: left; }
  .cart-line-remove { top: 12px; }
  .cart-line-bottom { flex-wrap: wrap; gap: 10px; }
  .cart-line small { font-size: 12px; line-height: 1.5; }
  .cart-line-bottom > b { font-size: 14px; }
  .cart-modal .cart-checkout, #submit-order { min-height: 52px; font-size: 14px; }
  .cart-modal .cart-demo, .cart-minimum { font-size: 12px; line-height: 1.6; }
  .bh-journey-footer .bh-button { min-height: 48px; font-size: 13px; }
  .bh-map-heading p, .bh-tile-status, .bh-gps-explain, .bh-coordinate-note { font-size: 12px; line-height: 1.6; }
  .desk-icon, .table-actions .desk-icon, .ticket-bottom .desk-icon { min-width: 44px; min-height: 44px; }
  .desk-nav-item { font-size: 13px; }
  .desk-field > span, .desk-field > small, .desk-table td { font-size: 12px; }
  .desk-field input, .desk-field textarea, .desk-field select { min-height: 48px; }
  .desk-table th { font-size: 10px; }
  .table-wrap { overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
  .desk-dialog-head { padding: 15px 18px; }
  .desk-sidebar { padding-bottom: calc(20px + env(safe-area-inset-bottom)); }
  .bh-rider-header button, .bh-rider-gps .bh-button { min-height: 48px; font-size: 14px; }
  .bh-rider-content { padding-bottom: calc(28px + env(safe-area-inset-bottom)); }
  .bh-rider-intro > p, .bh-rider-destination p, .bh-rider-gps p { font-size: 14px; }
  .bh-rider-test, .bh-rider-gps > small, .bh-rider-eta p, .bh-rider-instructions { font-size: 12px; line-height: 1.65; }
  .bh-rider-gps > div .bh-button { flex: 1 1 130px; }
  .bh-rider-header > div { flex-shrink: 0; }
}

@media (max-width: 700px) {
  body:not(.desk-body):not(.bh-rider-app) { padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
  body:has(#mobile-cart:not([hidden])) { padding-bottom: calc(160px + env(safe-area-inset-bottom)); }
  .site-header .header-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px 44px auto;
    gap: 8px;
    height: auto;
    padding-block: 10px;
  }
  .site-header .brand { grid-column: 1 / 3; grid-row: 1; font-size: 34px; min-width: 0; }
  .site-header .brand { min-height: 44px; }
  .announcement-inner, .preview-label { min-height: 44px; }
  .site-header .brand-symbol { width: 32px; height: 36px; }
  .site-header .header-actions { display: contents; }
  .site-header .location-button { display: none; }
  .site-header .language-switch { grid-column: 3 / 5; grid-row: 1; justify-self: end; gap: 2px; }
  .site-header .language-switch a.active { background: #ffe482; border-radius: 10px; }
  .site-header .motion-toggle { grid-column: 1; grid-row: 2; justify-self: start; }
  .site-header .track-button { grid-column: 2; grid-row: 2; display: grid; }
  .site-header .bh-account-trigger { grid-column: 3; grid-row: 2; width: 44px; min-width: 44px; height: 44px; }
  .site-header .header-cart { grid-column: 4; grid-row: 2; min-height: 44px; padding: 10px 13px; gap: 7px; }
  .site-header .header-cart-label { display: inline; font-size: 12px; }
  .hero, .menu-section, .combo-section, .story-section, .seo-local { scroll-margin-top: 132px; }
  .menu-tools { grid-template-columns: minmax(0, 1fr) 48px; gap: 8px; }
  .menu-tools .search-field { grid-column: 1 / -1; min-height: 50px; }
  .menu-tools #veggie-filter { grid-column: 1; grid-row: 2; justify-content: flex-start; font-size: 13px; }
  .menu-tools #favourites-filter { grid-column: 2; grid-row: 2; width: 48px; }
  .menu-tools select { grid-column: 1 / -1; width: 100%; max-width: none; height: 48px; margin: 0; padding: 0 12px; border: 1px solid var(--line); background: white; }
  .categories { gap: 9px; scroll-padding-inline: 18px; }
  .category { min-height: 52px; padding: 8px 13px; font-size: 12px; }
  .product-grid { gap: 16px 12px; }
  .product-card .product-body { padding: 13px 11px; }
  .product-name { min-height: 44px; font-size: 17px; line-height: 1.2; }
  .product-description { font-size: 12px; line-height: 1.6; min-height: 38px; margin-bottom: 10px; }
  .product-meta { font-size: 10px; }
  .product-card .favorite { width: 44px; height: 44px; right: 11px; top: 11px; }
  .product-price { font-size: 21px; white-space: nowrap; }
  .product-bottom { align-items: end; gap: 6px; }
  .product-bottom > div { min-width: 0; }
  .product-customize { min-height: 44px; font-size: 11px; text-align: left; }
  .product-badge { font-size: 10px; max-width: calc(100% - 24px); }
  .menu-disclaimer, .sample-menu, .result-description { font-size: 12px; line-height: 1.6; }
  .result-description { margin: 8px 0 14px; max-width: none; min-height: 20px; }
  .story-card p, .story-title > p, .faq-list p { font-size: 14px; }
  .faq-list summary { font-size: 15px; line-height: 1.5; }
  .footer-links a, .footer-links button, .footer-bottom button { min-height: 44px; display: inline-flex; align-items: center; font-size: 12px; }
  .footer-bottom > div { flex-wrap: wrap; gap: 6px 20px; }
  .footer-bottom { font-size: 11px; line-height: 1.6; }
  .studio-dock { height: calc(68px + env(safe-area-inset-bottom)); min-height: calc(68px + env(safe-area-inset-bottom)); padding: 8px 12px calc(8px + env(safe-area-inset-bottom)); }
  .studio-dock > a, .studio-dock > button { min-height: 50px; min-width: 56px; }
  .studio-dock small { font-size: 11px; }
  .mobile-cart-bar { left: 16px !important; right: 16px !important; width: auto !important; transform: none !important; bottom: calc(80px + env(safe-area-inset-bottom)) !important; min-height: 60px; padding: 13px 16px; }
  .mobile-cart-bar > strong, .mobile-cart-bar #mobile-total { font-size: 14px; }
  .toast, .studio-notice { bottom: calc(82px + env(safe-area-inset-bottom)); }
  .studio-notice button { min-width: 44px; min-height: 44px; }
  body:has(#mobile-cart:not([hidden])) .toast,
  body:has(#mobile-cart:not([hidden])) .studio-notice { bottom: calc(151px + env(safe-area-inset-bottom)); }
  body:has(dialog[open]) .studio-dock,
  body:has(dialog[open]) .mobile-cart-bar { visibility: hidden; pointer-events: none; }
  .modal, .bh-account-dialog { width: calc(100% - 16px); max-width: calc(100% - 16px); }
  .modal-header { position: sticky; top: 0; z-index: 15; padding: 18px 18px 12px; border-bottom: 1px solid #eee3e7; }
  .product-modal > .modal-close { position: sticky; float: right; top: 12px; right: 12px; margin: 12px 12px -56px 0; z-index: 20; }
  .customizer-form { scroll-padding-block: 86px 120px; }
  .customizer-bottom { gap: 10px; padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  .customizer-bottom .stepper { min-width: 112px; height: 54px; }
  .customizer-bottom .button { font-size: 13px; min-height: 54px; padding-inline: 12px; gap: 6px; }
  .customizer-bottom .button b { white-space: nowrap; }
  .builder-nav { scroll-padding-inline: 4px; }
  .builder-nav button { min-height: 44px; font-size: 11px; }
  .recipe-start > div > button { min-height: 48px; font-size: 12px; }
  .choice-card { min-height: 64px; }
  .choice-card > span:not(.choice-check) { font-size: 13px; }
  .choice-card > b { font-size: 11px; }
  .custom-note > span, .bh-field, .field > span { font-size: 13px; }
  .bh-auth-buttons { gap: 8px; margin-left: 0; }
  .bh-auth-buttons .bh-button, .bh-auth-buttons .bh-link-button { min-height: 44px; font-size: 12px; }
  .bh-checkout-account { gap: 10px; }
  .bh-checkout-account > div:nth-child(2) { min-width: 0; flex: 1; }
  .bh-checkout-v4 .checkout-layout { padding-inline: 18px; }
  .bh-checkout-v4 .field-row { grid-template-columns: minmax(0, 1fr); gap: 0; }
  #submit-order { position: sticky; bottom: 0; z-index: 9; box-shadow: 0 -8px 20px #fffcf9cc; margin-top: 10px; }
  .bh-pin-picker { padding: 13px; }
  .bh-place-search input { flex-basis: 100%; }
  .bh-place-search .bh-button { width: 100%; font-size: 13px; }
  .bh-pin-confirm .bh-button { min-height: 48px; font-size: 13px; }
  .bh-coordinate-fields { gap: 8px; }
  .bh-coordinate-fields input { padding: 10px 8px; }
  .bh-map-canvas { height: clamp(220px, 34dvh, 300px); }
  .desk-topbar { height: auto; min-height: 114px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 9px 16px; }
  .desk-breadcrumb { min-height: 44px; }
  .desk-breadcrumb strong { font-size: 13px; }
  .desk-top-actions { max-width: 100%; width: 100%; overflow-x: auto; overscroll-behavior-x: contain; gap: 8px; padding-bottom: 3px; scrollbar-width: thin; }
  .desk-top-actions > *, .studio-desk-controls { flex-shrink: 0; }
  .studio-desk-controls { gap: 8px; }
  .desk-language { gap: 2px; }
  .desk-top-actions .desk-search { display: none; }
  .desk-dialog { max-width: calc(100vw - 16px); }
  .desk-button { font-size: 12px; white-space: normal; }
  .hours-row { grid-template-columns: minmax(0, 1fr) 12px minmax(0, 1fr); gap: 7px; }
  .hours-row > label { grid-column: 1 / -1; min-height: 44px; }
  .hours-row input[type="time"] { width: 100%; min-width: 0; font-size: 16px; }
  .bh-rider-header { flex-wrap: wrap; padding-inline: 16px; gap: 8px; }
  .bh-rider-header > small { order: 3; max-width: none; flex-basis: 100%; font-size: 10px; }
  .bh-rider-destination { padding: 16px; gap: 10px; }
  .bh-rider-order-head { flex-wrap: wrap; }
  .bh-rider-order-head code { font-size: 12px; overflow-wrap: anywhere; }
  .bh-rider-gps { padding: 18px; }
}

@media (max-width: 360px) {
  .site-header .header-cart-label { display: none; }
  .site-header .brand { font-size: 32px; }
  .product-grid { gap: 14px 10px; }
  .product-card .product-body { padding-inline: 9px; }
  .product-name { font-size: 16px; }
  .product-price { font-size: 19px; }
  .product-customize { font-size: 10px; }
  .customizer-bottom { flex-wrap: wrap; }
  .customizer-bottom .stepper { min-width: 112px; }
  .customizer-bottom .button { min-width: 0; flex-basis: 120px; font-size: 12px; }
}

@media (max-height: 500px) and (max-width: 1024px) and (orientation: landscape) {
  .announcement { display: none; }
  .site-header .header-inner { min-height: 62px; height: auto; padding-block: 8px; }
  .modal, .bh-account-dialog, .desk-dialog, #product-dialog.premium-customizer,
  #checkout-dialog.bh-checkout-v4, #track-dialog.bh-journey-dialog { max-height: calc(100dvh - 12px); }
  .bh-account-art, .customizer-visual { display: none; }
  .bh-account-layout, .customizer-layout { display: block; min-height: 0; height: auto; }
  .customizer-form { height: auto; max-height: none; overflow: visible; }
  #product-dialog.premium-customizer { height: auto; overflow-y: auto; }
  .bh-account-body { padding-top: 22px; }
  .modal-header { padding-block: 12px; }
  .modal-header .eyebrow { display: none; }
  .modal-header h2 { font-size: 24px; }
  .customizer-bottom { position: static; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}

/* A single menu strip moves below the header on small/touch screens. */
@media (max-width: 700px), (pointer: coarse) and (max-width: 1024px) {
  html { scroll-padding-top: var(--mobile-menu-offset, 190px); }
  .hero, .menu-section, .combo-section, .story-section, .seo-local { scroll-margin-top: 0; }
  #menu, #combos, #story { scroll-margin-top: 0 !important; }
  #mobile-menu-mount {
    display: block;
    position: sticky;
    top: var(--mobile-header-height, 116px);
    z-index: 29;
    background: #fffcf8;
    border-bottom: 1px solid #ece5e0;
    box-shadow: 0 6px 16px #37252908;
  }
  #mobile-menu-mount:empty { display: none; }
  #mobile-menu-mount .menu-navigation {
    max-width: 1280px;
    margin-inline: auto;
    padding: 8px max(14px, env(safe-area-inset-right)) 8px max(14px, env(safe-area-inset-left));
  }
  .mobile-menu-row { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 9px; align-items: center; }
  .mobile-search-toggle {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid #e6dadd;
    border-radius: 13px;
    background: white;
    color: #30262c;
  }
  .mobile-search-toggle .icon { width: 21px; height: 21px; }
  .mobile-search-toggle[aria-expanded="true"] { border-color: #e72f53; background: #fff0f4; color: #b91e44; }
  .mobile-search-dot { display: none; position: absolute; right: 5px; top: 5px; width: 7px; height: 7px; border-radius: 50%; background: #e72f53; }
  .mobile-search-toggle.has-query .mobile-search-dot { display: block; }
  #mobile-menu-mount .categories { margin: 0; padding: 2px 0 4px; gap: 7px; min-width: 0; scroll-padding-inline: 2px; overscroll-behavior-x: contain; }
  #mobile-menu-mount .category { flex-shrink: 0; min-height: 44px; padding: 8px 11px; gap: 7px; border-radius: 12px; font-size: 12px; white-space: nowrap; }
  #mobile-menu-mount .category img, #mobile-menu-mount .category-symbol { width: 24px; height: 24px; min-width: 24px; }
  #mobile-menu-mount .category-symbol .icon { width: 18px; height: 18px; }
  .mobile-search-slot { display: block; }
  #mobile-menu-mount .search-field { margin-top: 8px; height: 48px; min-height: 48px; width: 100%; padding: 0 12px; }
  #mobile-menu-mount .search-field input { min-height: 44px; font-size: 16px; scroll-margin: 0; }
  #mobile-menu-mount .search-field kbd { display: none; }
  .menu-tools { grid-template-columns: minmax(0, 1fr) 48px; }
  .menu-tools #veggie-filter { grid-column: 1; grid-row: 1; }
  .menu-tools #favourites-filter { grid-column: 2; grid-row: 1; }
  .menu-tools select { grid-column: 1 / -1; grid-row: 2; max-width: none; width: 100%; }
  body:has(dialog[open]) #mobile-menu-mount { visibility: hidden; pointer-events: none; }
}

@media (max-width: 700px), (pointer: coarse) and (max-width: 1024px) {
  .site-header .header-actions .bh-account-trigger { order: 10; }
  .site-header .header-inner .brand { grid-column: 1; grid-row: 1 / 3; max-width: 100%; }
  .site-header .header-inner .brand .bh-logo { max-width: 100%; }
  .site-header .header-inner .language-switch { grid-column: 2 / 4; grid-row: 1; width: 94px; gap: 6px; }
  .site-header .header-inner .language-switch > span { display: none; }
  .site-header .header-inner .header-cart {
    position: relative;
    grid-column: 4;
    grid-row: 1;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 44px;
    min-height: 44px;
    padding: 0;
    gap: 0;
    border-radius: 13px;
    overflow: visible;
  }
  .site-header .header-inner .header-cart-label { display: none; }
  .site-header .header-inner .header-cart .icon { width: 20px; height: 20px; }
  .site-header .header-inner .header-cart .cart-count {
    position: absolute;
    top: -5px;
    right: -5px;
    display: grid;
    place-items: center;
    width: auto;
    min-width: 20px;
    height: 20px;
    padding-inline: 4px;
    border: 2px solid #fffcf8;
    border-radius: 12px;
    font-size: 10px;
    line-height: 1;
  }
  .site-header .header-inner .header-cart[data-count="0"] .cart-count { display: none; }
  .site-header .header-inner .bh-account-trigger { grid-column: 5; grid-row: 1; justify-self: end; width: 44px; min-width: 44px; height: 44px; min-height: 44px; }
  .site-header .header-inner #motion-toggle { grid-column: 4; grid-row: 2; justify-self: end; }
  .site-header .header-inner .track-button { grid-column: 5; grid-row: 2; justify-self: end; }
}

@media (max-width: 700px) {
  body .site-header .header-inner {
    grid-template-columns: minmax(78px, 1fr) repeat(4, 44px);
    grid-template-rows: 44px 44px;
    gap: 6px;
    height: 110px;
    min-height: 110px;
    padding-block: 8px;
    align-items: center;
  }
}
