/* Shared customer catalogue composition, informed by the supplied restaurant references.
   Tenant identity and authoritative order/payment rules remain independent. */
#website-app,.guest-app.qr-menu{--restaurant-width:1320px;width:100%;max-width:var(--restaurant-width);margin:0 auto;padding:0 32px 118px;font-family:'DM Sans',Arial,sans-serif}
.restaurant-header,.qr-menu .guest-header{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;min-height:92px;padding:14px 0;margin:0;border-bottom:1px solid var(--line);background:var(--surface)}
.restaurant-brand{display:flex;justify-content:center;align-items:center;min-width:0;font-size:24px;line-height:1.15;text-align:center}.restaurant-brand img{display:block;width:100px;max-height:72px;object-fit:contain}.restaurant-location{display:flex;gap:12px;align-items:center;justify-self:start;text-align:left;padding:10px 16px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:30px;max-width:100%}.restaurant-location span{min-width:0}.restaurant-location small{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.restaurant-location strong{display:block;font-size:13px;line-height:1.4;overflow-wrap:anywhere}.restaurant-header-actions{display:flex;justify-content:flex-end;gap:12px;align-items:center}.restaurant-header .icon-button,.qr-menu .guest-header .icon-button{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;flex-shrink:0;border-radius:50%;padding:10px;color:var(--ink)}.restaurant-header .restaurant-account{border-radius:30px;font-size:12px;gap:8px;min-height:42px;padding:10px 15px}.restaurant-cart{position:relative}.restaurant-cart b{position:absolute;right:-3px;top:-3px;min-width:17px;height:17px;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);border-radius:50%;font-size:10px}.restaurant-hero:empty{display:none}.restaurant-hero{margin:20px 0 0;overflow:hidden;border-radius:16px}.restaurant-hero .website-banner,.restaurant-hero .product-hero{margin:0}.restaurant-hero img{width:100%;max-height:430px;aspect-ratio:3.4/1;object-fit:cover;display:block}.restaurant-menu-toolbar{position:sticky;top:0;z-index:5;background:var(--bg);display:flex;align-items:center;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.restaurant-menu-toolbar .guest-menu-filters{margin:0;display:flex;flex:1;gap:10px;overflow:auto;min-width:0;padding:4px 0;scrollbar-width:thin}.restaurant-search{display:flex;align-items:center;gap:8px;width:250px;flex-shrink:0;border:1px solid var(--line);background:var(--surface);border-radius:30px;padding:10px 14px}.restaurant-search input{min-width:0;width:100%;border:0;background:none;color:var(--ink);font:inherit;font-size:13px;padding:0;outline:0}.restaurant-search:focus-within{outline:2px solid var(--primary);outline-offset:2px}.restaurant-menu-toolbar .category-chip,.qr-menu .guest-menu-filters .category-chip{border:1px solid var(--line);border-radius:30px;white-space:nowrap;background:var(--surface);color:var(--ink);padding:11px 18px;font:600 13px/1.3 'DM Sans',Arial,sans-serif;min-height:42px;display:inline-flex;align-items:center;gap:7px}.restaurant-menu-toolbar .category-chip.active,.qr-menu .guest-menu-filters .category-chip.active{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.restaurant-introduction{padding:32px 0 4px}.restaurant-introduction h1{font-size:30px;line-height:1.2;margin:0;letter-spacing:-.03em}.restaurant-introduction>p{color:var(--muted);line-height:1.6;margin:12px 0 0;max-width:70ch}.restaurant-food-section,.qr-menu .qr-food-section{margin:34px 0 0;scroll-margin-top:110px}.restaurant-food-section h2,.qr-menu .qr-food-section>h2{margin:0 0 22px;font-size:26px;line-height:1.2;font-weight:750;letter-spacing:-.025em}.restaurant-food-section .product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.restaurant-food-section .product-card{display:flex;flex-direction:column;align-items:stretch;min-width:0;width:100%;background:var(--surface);color:var(--ink);padding:0;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:left;cursor:pointer;box-shadow:none}.restaurant-food-section .product-card>img,.restaurant-food-section .product-placeholder{width:100%;height:auto;aspect-ratio:1.55/1;object-fit:cover;display:block;border-radius:0;margin:0}.restaurant-food-section .product-placeholder{display:grid;place-items:center;background:var(--raised);color:var(--muted);font-size:13px}.restaurant-food-section .product-card-copy{width:100%;padding:20px;display:flex;flex-direction:column;flex:1;gap:10px}.restaurant-food-section .product-card-copy>strong{font-size:18px;line-height:1.3}.restaurant-food-section .product-card-copy>p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}.restaurant-food-section .product-card-copy>span{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:15px;font-weight:700;margin-top:auto;padding-top:8px}.restaurant-food-section .product-card-copy b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--primary);color:var(--on-primary);font-size:22px;font-weight:500}.storefront-contact{margin-top:52px}#website-app .workspace-foot{margin-top:36px;display:flex;align-items:center;justify-content:space-between;gap:24px}#website-app .workspace-foot>div{display:flex;gap:20px}#website-app .guest-bottom{max-width:var(--restaurant-width);width:100%;left:50%;right:auto;transform:translateX(-50%);padding:14px 32px;background:var(--surface);border-top:1px solid var(--line);gap:16px}#website-app .guest-bottom .button{border-radius:30px;min-height:48px}#website-app .guest-bottom .button:first-child{font-size:12px}
/* The location picker is a native modal with a centred, reference-sized card. */
.restaurant-location-dialog{width:min(500px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);position:fixed;inset:0;margin:auto;padding:34px 28px 24px;border:0;border-radius:12px;overflow:auto;background:var(--surface);color:var(--ink);box-shadow:0 24px 60px #0003}.restaurant-location-dialog::backdrop{background:#0008;backdrop-filter:blur(4px)}.restaurant-location-dialog .location-close{position:absolute;right:10px;top:10px;width:32px;height:32px;border:0;background:none;color:var(--muted);padding:7px}.restaurant-location-dialog .location-logo{display:block;width:80px;height:62px;object-fit:contain;margin:10px auto 30px}.location-restaurant-name{display:block;text-align:center;font-size:24px;line-height:1.2;margin:14px 0 30px}.restaurant-location-dialog h2{font-size:16px;text-align:center;margin:0 0 14px;letter-spacing:0}.location-modes{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.location-modes button{border:1px solid var(--line);background:var(--surface);color:var(--muted);padding:10px 20px;border-radius:30px;font:600 13px/1.2 'DM Sans',Arial,sans-serif}.location-modes button[aria-pressed=true]{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.restaurant-location-dialog h3{text-align:center;font-size:13px;font-weight:650;margin:26px 0 10px}.location-current{display:flex;gap:8px;align-items:center;margin:0 auto 20px;border:1px solid var(--line);border-radius:30px;padding:8px 18px;background:var(--raised);color:var(--ink);font:600 12px/1.4 'DM Sans',Arial,sans-serif}.location-current .icon{width:17px;height:17px}.restaurant-location-dialog .field{display:grid;gap:7px;margin:15px 0}.restaurant-location-dialog .field>span{font-size:12px;font-weight:650}.restaurant-location-dialog select{width:100%;font:14px 'DM Sans',Arial,sans-serif;min-height:46px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);padding:10px 14px}.location-message{font-size:12px;line-height:1.55;color:var(--muted);margin:12px 0}.location-message:empty{display:none}.restaurant-location-dialog .full{width:100%;margin-top:6px;min-height:46px;border-radius:9px}.restaurant-location-dialog :is(button,select):focus-visible,#website-app :is(button,a):focus-visible,.qr-menu :is(button,a):focus-visible{outline:3px solid var(--primary);outline-offset:3px}
/* QR retains table access, shared bill and staff-only payment semantics. */
.qr-menu .guest-header{grid-template-columns:1fr auto;min-height:92px}.qr-menu .qr-restaurant-identity{justify-content:flex-start}.qr-menu .guest-header h1{font-size:25px;line-height:1.2}.qr-menu .header-actions{justify-content:flex-end}.qr-menu .qr-session{margin:18px 0;border-radius:12px}.qr-menu .qr-carousel{max-width:none;width:100%;border-radius:16px;margin:20px 0}.qr-menu .qr-banner-image{aspect-ratio:3.4/1}.qr-menu .qr-banner-image img{width:100%;height:100%;object-fit:cover}.qr-menu .qr-slide-copy{padding:18px 24px}.qr-menu .qr-browse-tools{display:flex;gap:14px;align-items:center;margin:22px 0}.qr-menu .qr-menu-search{flex:1;max-width:380px;margin-left:auto;border-radius:30px}.qr-menu .qr-catalogue-layout{display:block}.qr-menu .guest-menu-filters{position:sticky;top:0;z-index:4;display:flex;flex-direction:row;flex-wrap:nowrap;gap:10px;overflow:auto;max-height:none;max-width:100%;padding:16px 0;margin:0;background:var(--bg);border-bottom:1px solid var(--line);scrollbar-width:thin}.qr-menu .guest-menu-filters .icon{display:none}.qr-menu .guest-menu-filters .category-chip{width:auto;flex-shrink:0;flex-direction:row}.qr-menu[data-menu-columns='2'] .qr-food-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.qr-menu[data-menu-columns='2'] .qr-food-open{display:flex;flex-direction:column;gap:0;padding:0;align-items:stretch;height:100%;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}.qr-menu[data-menu-columns='2'] .qr-food-image{width:100%;height:auto;aspect-ratio:1.55/1;margin:0;border-radius:0}.qr-menu[data-menu-columns='2'] .qr-food-image img{width:100%;height:100%;object-fit:cover}.qr-menu[data-menu-columns='2'] .qr-food-copy{padding:18px 20px 12px;flex:1}.qr-menu .qr-food-copy h3{font-size:18px;line-height:1.3}.qr-menu .qr-food-copy p{font-size:13px;line-height:1.6;color:var(--muted);display:block;-webkit-line-clamp:unset}.qr-menu[data-menu-columns='2'] .qr-food-purchase{display:flex;flex-direction:row;justify-content:space-between;align-items:center;width:100%;padding:0 20px 20px;gap:12px}.qr-menu .qr-food-add{background:var(--primary);color:var(--on-primary);border-radius:30px;min-width:54px;text-align:center;padding:8px 12px}.qr-menu .qr-food-list{display:grid;gap:16px}.qr-menu .guest-bottom{max-width:1320px;width:100%;left:50%;right:auto;transform:translateX(-50%);padding:14px 32px;background:var(--surface);border-top:1px solid var(--line);gap:14px}.qr-menu .guest-bottom .button{border-radius:30px;min-height:48px}.qr-menu .qr-menu-credit{margin:40px 0 0}.qr-menu .qr-menu-credit .brand-logo{max-width:120px}.qr-menu .qr-layout-choice{flex-shrink:0}
@media(hover:hover){.restaurant-food-section .product-card:hover,.qr-menu .qr-food-open:hover{border-color:var(--primary)}.location-modes button:hover{border-color:var(--primary)}}
@media(max-width:1000px){.restaurant-header{gap:16px}.restaurant-header .restaurant-account span{display:none}.restaurant-header .restaurant-account{padding:10px}.restaurant-food-section .product-grid,.qr-menu[data-menu-columns='2'] .qr-food-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.restaurant-menu-toolbar{flex-direction:column;gap:10px;align-items:stretch}.restaurant-search{width:100%}.restaurant-hero img,.qr-menu .qr-banner-image{aspect-ratio:2.5/1}.restaurant-hero .website-banner{margin:0}}
@media(max-width:600px){#website-app,.guest-app.qr-menu{padding:0 16px 106px}.restaurant-header{grid-template-columns:1fr auto;gap:14px;min-height:100px;padding:12px 0}.restaurant-brand{grid-column:1;grid-row:1;justify-content:flex-start;font-size:22px}.restaurant-brand img{width:72px;max-height:52px}.restaurant-location{grid-column:1/-1;grid-row:2;border:0;padding:0;border-radius:0}.restaurant-location small{display:inline;margin-right:8px;font-size:10px}.restaurant-location strong{display:inline;font-size:12px}.restaurant-location>.icon:first-child{width:17px;height:17px}.restaurant-header-actions{grid-column:2;grid-row:1;gap:8px}.restaurant-header .icon-button{width:36px;height:36px;padding:7px}.restaurant-header .restaurant-account{display:none}.restaurant-brand{font-size:20px}.restaurant-hero{border-radius:12px;margin-top:16px}.restaurant-hero img,.qr-menu .qr-banner-image{aspect-ratio:2/1}.restaurant-menu-toolbar{padding:12px 0;gap:10px}.restaurant-menu-toolbar .category-chip,.qr-menu .guest-menu-filters .category-chip{font-size:12px;padding:10px 16px;min-height:40px}.restaurant-introduction{padding-top:24px}.restaurant-introduction h1{font-size:24px}.restaurant-introduction>p{font-size:14px}.restaurant-food-section,.qr-menu .qr-food-section{margin-top:28px}.restaurant-food-section h2,.qr-menu .qr-food-section>h2{font-size:23px;margin-bottom:16px}.restaurant-food-section .product-grid,.qr-menu[data-menu-columns='2'] .qr-food-list{gap:12px}.restaurant-food-section .product-card>img,.restaurant-food-section .product-placeholder,.qr-menu[data-menu-columns='2'] .qr-food-image{aspect-ratio:1/1}.restaurant-food-section .product-card-copy{padding:12px;gap:8px}.restaurant-food-section .product-card-copy>strong,.qr-menu .qr-food-copy h3{font-size:15px;line-height:1.3;overflow-wrap:anywhere}.restaurant-food-section .product-card-copy>p,.qr-menu .qr-food-copy p{font-size:12px;line-height:1.5}.restaurant-food-section .product-card-copy>span{font-size:13px;padding-top:4px}.restaurant-food-section .product-card-copy b{width:28px;height:28px;font-size:20px}.qr-menu[data-menu-columns='2'] .qr-food-copy{padding:12px 12px 8px}.qr-menu[data-menu-columns='2'] .qr-food-purchase{padding:0 12px 12px;gap:8px;flex-wrap:wrap}.qr-menu .qr-food-purchase>strong{font-size:13px}.qr-menu .qr-food-add{font-size:12px;min-width:40px;padding:7px 10px}.qr-menu .guest-header{min-height:82px;gap:12px}.qr-menu .guest-header h1{font-size:21px}.qr-menu .guest-header .qr-restaurant-logo{width:44px;height:44px}.qr-menu .guest-header .icon-button{width:36px;height:36px;padding:7px}.qr-menu .header-actions{gap:7px}.qr-menu .guest-menu-filters{padding:12px 0}.qr-menu .qr-browse-tools{margin:16px 0;gap:10px}.qr-menu .qr-menu-search{max-width:none;padding:10px 12px}.qr-menu .qr-layout-choice .icon-button{width:32px;min-width:32px;padding:6px}.qr-menu .qr-menu-search input{font-size:13px}.qr-menu .guest-bottom,#website-app .guest-bottom{padding:12px 16px;gap:8px}.qr-menu .guest-bottom .button{font-size:11px;padding:9px 6px;gap:6px;min-height:50px}.qr-menu .guest-bottom .button span{font-size:11px}#website-app .guest-bottom .button:first-child{display:none}#website-app .guest-bottom .button.primary{width:100%}#website-app .workspace-foot{flex-direction:column;align-items:flex-start}.restaurant-location-dialog{padding:30px 22px 22px}.restaurant-location-dialog .location-logo{margin-bottom:24px}.location-restaurant-name{font-size:22px}}
.restaurant-brand{flex-direction:column;gap:6px}.restaurant-brand .website-tagline{font-size:11px;font-weight:400;line-height:1.4;max-width:200px;color:var(--muted)}
.qr-menu .guest-header{grid-template-columns:1fr auto 1fr}.qr-menu .qr-restaurant-identity{grid-column:2;justify-content:center;text-align:center}.qr-menu .header-actions{grid-column:3;justify-self:end}.qr-menu .qr-table-trigger{grid-column:1;max-width:240px}.qr-menu .qr-table-trigger .icon{flex-shrink:0}
@media(max-width:600px){.qr-menu .guest-header{grid-template-columns:1fr auto;padding:14px 0;row-gap:14px}.qr-menu .qr-restaurant-identity{grid-column:1;grid-row:1;text-align:left;justify-content:flex-start}.qr-menu .header-actions{grid-column:2;grid-row:1}.qr-menu .qr-table-trigger{grid-column:1/-1;grid-row:2;justify-self:start}}
.restaurant-brand{color:var(--ink)}.restaurant-location-dialog .icon{display:block;fill:currentColor;flex-shrink:0}.restaurant-header-actions .icon{display:block;fill:currentColor}
.restaurant-banner-carousel{position:relative}.restaurant-banner-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}.restaurant-banner-track::-webkit-scrollbar{display:none}.restaurant-banner-track>.website-banner{flex:0 0 100%;min-width:0;scroll-snap-align:start}.restaurant-banner-carousel>.carousel-previous,.restaurant-banner-carousel>.carousel-next{position:absolute;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--surface);color:var(--ink);padding:10px;cursor:pointer}.restaurant-banner-carousel>.carousel-previous{left:18px}.restaurant-banner-carousel>.carousel-next{right:18px}.restaurant-banner-carousel>.carousel-previous .icon{transform:rotate(180deg)}.restaurant-banner-carousel>button:disabled{opacity:.45;cursor:default}.restaurant-banner-status{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);padding:5px 11px;background:#000a;color:#fff;border-radius:30px;font-size:11px;line-height:1.3}
