/* Public delivery uses the same design tokens, hero and dish cards as table menus.
   Only the fulfilment, basket and tracking controls differ between channels. */
body.vd-public{background:var(--bg);color:var(--ink)}
#vd-public{--vd-accent:var(--accent);--vd-ink:var(--ink);--vd-muted:var(--muted);--vd-bg:var(--bg);max-width:1190px;padding:24px 24px 110px;font:inherit;color:var(--ink)}
#vd-public .vd-shop{gap:24px;margin-top:20px}
#vd-public .qc-products{grid-template-columns:repeat(2,minmax(0,1fr))}
#vd-public .vd-tools{padding:0;border:0;background:none;margin-bottom:6px}
#vd-public .vd-search{font-weight:400;font-size:11px;color:var(--muted)}
#vd-public .qc-categories{padding:8px 0;margin-bottom:15px;position:sticky;top:0;z-index:8;background:var(--bg);border-bottom:1px solid var(--line)}
#vd-public .vd-panel,#vd-public input,#vd-public select,#vd-public textarea{background:var(--surface);border-color:var(--line);color:var(--ink)}
#vd-public .vd-message,#vd-public .vd-pill{background:var(--soft);color:var(--accent)}
#vd-public .vd-message{margin:16px 0;font-size:12px}
#vd-public .vd-row{border-color:var(--line)}
#vd-public button,#vd-public a.vd-button{border-color:var(--line);background:var(--surface);color:var(--ink)}
#vd-public .qc-product-bottom button{background:var(--soft);border-color:transparent;color:var(--accent)}
#vd-public .vd-primary,#vd-public .qc-categories [aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
#vd-public :focus-visible{outline-color:var(--accent)}
#vd-public .vd-basket{box-shadow:0 7px 24px #00000006}
#vd-public .vd-basket h2{font-family:Georgia,serif;font-weight:400;font-size:27px}
#vd-public .vd-check input{margin:0}
#vd-public .qc-product-open{min-height:0}
#vd-public .qc-description{margin:9px 0 20px}
#vd-public .vd-credit{border:0}
#vd-public .qc-hero-top{flex-wrap:wrap}
#vd-public .vd-shop:has(>.vd-basket[hidden]){grid-template-columns:minmax(0,1fr)}
@media(min-width:761px){#vd-public .vd-shop:has(>.vd-basket[hidden]) .qc-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){#vd-public{padding:10px 14px 110px}#vd-public .vd-shop{margin-top:12px}#vd-public .qc-description{margin:7px 0 14px}#vd-public .vd-panel{padding:18px}#vd-public .qc-categories button{font-size:11px;padding:10px 15px}}

#vd-public .qc-search{display:block;font-size:11px;font-weight:400;color:var(--muted)}
#vd-public .qc-categories{position:static;border:0;margin:0;padding:3px 0}

/* The checkout action stays outside the scrolling fields and items. */
#vd-public .vd-basket{display:flex;flex-direction:column;padding:0;max-height:calc(100dvh - 32px);overflow:hidden;scroll-margin-top:16px}
#vd-public .dc-basket-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--line)}
#vd-public .dc-basket-head h2{margin:2px 0 3px}
#vd-public .dc-basket-head p{font-size:11px;color:var(--muted);margin:0}
#vd-public .dc-basket-head .vd-eyebrow{font-size:9px;margin:0;color:var(--accent)}
#vd-public #dc-close-cart{display:none;padding:8px 11px;min-height:40px;font-size:11px}
#vd-public .dc-basket-scroll{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;padding:0 20px;scroll-padding:16px;scrollbar-width:thin}
#vd-public .dc-basket-footer{flex:none;background:var(--surface);padding:12px 20px 16px;border-top:1px solid var(--line);box-shadow:0 -8px 22px #0000000b}
#vd-public .dc-basket-footer .vd-total{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:0 0 9px;line-height:1.25}
#vd-public .dc-basket-footer .vd-total span{font-size:11px;color:var(--muted);font-weight:600}
#vd-public .dc-basket-footer .vd-total strong{grid-row:1/3;grid-column:2;font-size:20px;white-space:nowrap}
#vd-public .dc-basket-footer .vd-total small{font-size:10px;color:var(--muted);font-weight:400}
#vd-public .dc-basket-footer .vd-muted{font-size:10px;line-height:1.35;margin:8px 0 0;text-align:center}
#vd-public #dc-submit{width:100%;min-height:48px}
#vd-public #dc-open-cart.dc-at-checkout{visibility:hidden;pointer-events:none}

#vd-public .dc-checkout-section{padding:18px 0;border-bottom:1px solid var(--line)}
#vd-public .dc-checkout-section:last-child{border-bottom:0}
#vd-public .dc-checkout-section h3{font:600 14px/1.35 system-ui,-apple-system,sans-serif;margin:0 0 13px;color:var(--ink)}
#vd-public .dc-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}
#vd-public .dc-section-title small{color:var(--muted);font-size:10px;white-space:nowrap}
#vd-public .dc-field-label{font-size:11px;color:var(--muted);margin-bottom:3px}
#vd-public .vd-row{display:block;padding:14px 0}
#vd-public .dc-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
#vd-public .dc-item-head>div{min-width:0}
#vd-public .dc-item-head strong{display:block;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
#vd-public .dc-item-head small{font-size:10px;margin-top:3px}
#vd-public .dc-remove{flex:0 0 38px;width:38px;min-height:38px;padding:8px;border-radius:11px;color:var(--muted)}
#vd-public .dc-remove svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#vd-public .dc-item-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:11px}
#vd-public .dc-item-actions>span{font-size:11px;color:var(--muted)}
#vd-public .dc-stepper{display:grid;grid-template-columns:38px 42px 38px;align-items:center;border:1px solid var(--line);border-radius:13px;overflow:hidden}
#vd-public .dc-stepper button{border:0;border-radius:0;padding:0;min-height:38px;font-size:18px;background:var(--surface2)}
#vd-public .dc-stepper output{text-align:center;font-weight:700;font-size:13px}
#vd-public .dc-note{margin-top:10px}
#vd-public .dc-note summary{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:11px;cursor:pointer;list-style:none;padding:6px 0}
#vd-public .dc-note summary::-webkit-details-marker{display:none}
#vd-public .dc-note label{font-size:10px;color:var(--muted);margin:5px 0 0}
#vd-public .dc-note input{font-size:12px;margin-bottom:0}
#vd-public .dc-consents{padding-top:6px}
#vd-public .dc-consents .vd-check{padding:11px;border:1px solid var(--line);border-radius:13px;margin-bottom:9px;background:color-mix(in srgb,var(--surface) 90%,var(--soft))}
#vd-public .dc-consents .vd-check span{display:block;line-height:1.35}
#vd-public .dc-consents .vd-check strong{display:block;font-size:11px;margin-bottom:3px}
#vd-public .dc-consents .vd-check small{display:block;font-size:10px;color:var(--muted);font-weight:400}
#vd-public .dc-consents>a{display:inline-block;font-size:10px;margin:0 0 7px;color:var(--accent)}
#vd-public .dc-undo{position:absolute;z-index:4;left:16px;right:16px;bottom:118px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:var(--ink);color:var(--bg);box-shadow:0 10px 28px #0004;font-size:11px}
#vd-public .dc-undo button{min-height:34px;padding:6px 10px;background:var(--accent);color:var(--on-accent);border-color:transparent;font-size:11px}
body.dc-checkout-open{overflow:hidden}
@media(max-width:850px){
 #vd-public .vd-basket{position:fixed;z-index:60;inset:0;width:100%;height:var(--dc-vh,100dvh);max-height:none;border:0;border-radius:0;visibility:hidden;opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s}
 #vd-public.dc-cart-open .vd-basket{visibility:visible;opacity:1;transform:none;pointer-events:auto}
 #vd-public #dc-close-cart{display:inline-flex}
 #vd-public .dc-basket-head{padding:max(13px,env(safe-area-inset-top)) 15px 12px}
 #vd-public .dc-basket-head h2{font-size:24px}
 #vd-public .dc-basket-scroll{padding:0 16px;scroll-padding-block:80px 150px}
 #vd-public .dc-basket-footer{padding:10px 16px max(12px,env(safe-area-inset-bottom))}
 #vd-public .dc-undo{position:fixed;bottom:calc(112px + env(safe-area-inset-bottom));left:14px;right:14px}
}
@media(max-width:390px){#vd-public #dc-close-cart span:last-child{display:none}#vd-public #dc-close-cart{width:42px;padding:8px}#vd-public .dc-basket-head{padding-left:14px;padding-right:14px}}
@media(prefers-reduced-motion:reduce){#vd-public .vd-basket{transition:none}}
.dc-location-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:6px 0 14px}.dc-location-head>div{display:grid;gap:3px}.dc-location-head strong{font-size:15px}.dc-location-head small,#dc-location-status{color:var(--muted);font-size:12px;line-height:1.45}.dc-location-head button,.dc-map-actions button{flex:none;border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:12px;background:var(--soft);color:var(--accent);padding:10px 12px;font-weight:700;cursor:pointer}.dc-map-actions{display:flex;align-items:center;gap:12px;margin:-2px 0 12px}.dc-map-actions span{flex:1}.dc-map{height:280px;border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:8px 0 16px;background:linear-gradient(135deg,var(--surface2),var(--surface))}.dc-map[hidden]{display:none}.dc-remember{margin-top:12px!important}.dc-basket-footer #dc-total{display:grid;grid-template-columns:1fr auto;gap:2px 12px}.dc-basket-footer #dc-total strong{grid-column:2;grid-row:1}.dc-basket-footer #dc-total small{grid-column:1/-1;color:var(--muted);font-size:11px;text-align:right}.leaflet-container{font:12px system-ui,-apple-system,sans-serif;color:#2f2940}.leaflet-control-attribution{font-size:9px!important}@media(max-width:560px){.dc-location-head{align-items:stretch;flex-direction:column}.dc-location-head button{width:100%}.dc-map-actions{align-items:flex-start;flex-direction:column}.dc-map{height:240px;width:100%}}
.dc-saved-addresses{margin:0 0 13px}.dc-saved-addresses>span{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dc-saved-addresses>div{display:flex;gap:8px;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:thin}.dc-saved-address{display:flex;flex:0 0 min(220px,82%);border:1px solid var(--line);border-radius:13px;background:var(--surface);overflow:hidden}.dc-saved-address button{min-height:48px;border:0!important;border-radius:0!important;padding:8px 10px!important}.dc-saved-address button:first-child{min-width:0;flex:1;text-align:left}.dc-saved-address button:last-child{flex:0 0 36px;color:var(--muted)!important;font-size:18px}.dc-saved-address strong,.dc-saved-address small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dc-saved-address strong{font-size:11px}.dc-saved-address small{margin-top:2px;color:var(--muted);font-size:9px}
.dc-address-label{display:block}.dc-address-search{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;margin-top:6px}.dc-address-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}#vd-public .dc-address-search input{border:0;border-radius:0;margin:0;box-shadow:none!important;min-width:0}#vd-public .dc-address-search button{display:inline-flex;align-items:center;gap:6px;border:0;border-left:1px solid var(--line);border-radius:0;padding:0 13px;background:var(--soft);color:var(--accent);font-size:11px;font-weight:750}.dc-address-search svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.dc-address-results{margin:-4px 0 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 16px 38px #0002;overflow:hidden}.dc-address-results[hidden]{display:none}.dc-address-results-head{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;background:var(--surface2);font-size:10px}.dc-address-results-head button{min-height:30px!important;padding:4px 9px!important;border:0!important;background:transparent!important;font-size:17px}.dc-address-results>[data-address-result]{display:grid!important;grid-template-columns:22px 1fr;gap:7px;width:100%;min-height:48px;text-align:left;border:0!important;border-top:1px solid var(--line)!important;border-radius:0!important;padding:10px 12px!important;background:var(--surface)!important;color:var(--ink)!important;font-size:10px;line-height:1.35}.dc-address-results>[data-address-result]>span:first-child{color:var(--accent);font-size:16px}.dc-address-results>small{display:block;padding:7px 11px;color:var(--muted);font-size:8px}.dc-address-loading{display:flex;align-items:center;gap:9px;padding:13px;font-size:10px;color:var(--muted)}.dc-address-loading span{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:dc-spin .75s linear infinite}@keyframes dc-spin{to{transform:rotate(360deg)}}#dc-location-status[data-tone=success]{color:#16806f}#dc-location-status[data-tone=warning]{color:#a66716}#dc-location-status[data-tone=pending]{color:var(--accent)}.dc-map-shell{margin:8px 0 16px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface);box-shadow:0 12px 30px #00000012}.dc-map-shell[hidden]{display:none}.dc-map-shell .dc-map{margin:0;border:0;border-radius:0;height:250px}.dc-map-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;background:var(--surface);border-top:1px solid var(--line)}.dc-map-confirm>small{max-width:135px;color:var(--muted);font-size:8px;line-height:1.25}.dc-map-confirm>div{display:flex;gap:6px}.dc-map-confirm button{min-height:38px;padding:7px 10px!important;font-size:10px}.dc-map-shell.dc-map-expanded{position:fixed;z-index:90;inset:12px;display:flex;flex-direction:column;margin:0;border-radius:20px;box-shadow:0 28px 80px #0008}.dc-map-shell.dc-map-expanded .dc-map{flex:1;height:auto;min-height:0}.dc-map-shell.dc-map-expanded .dc-map-confirm{flex:none;padding:max(10px,env(safe-area-inset-top)) 12px max(10px,env(safe-area-inset-bottom))}.dc-map-shell.dc-map-expanded #dc-expand-map{display:none}body.dc-map-open{overflow:hidden}body.dc-map-open:before{content:"";position:fixed;z-index:89;inset:0;background:#1118;backdrop-filter:blur(4px)}@media(max-width:560px){.dc-address-search{grid-template-columns:minmax(0,1fr) 48px}.dc-address-search button span{display:none}.dc-address-search button{justify-content:center;padding:0!important}.dc-map-confirm{align-items:flex-start;flex-direction:column}.dc-map-confirm>small{max-width:none}.dc-map-confirm>div{width:100%;display:grid;grid-template-columns:auto auto 1fr}.dc-map-confirm button{white-space:nowrap}.dc-map-shell.dc-map-expanded{inset:0;border:0;border-radius:0}.dc-map-shell.dc-map-expanded .dc-map-confirm{padding:10px 12px max(12px,env(safe-area-inset-bottom))}}
.dc-coverage-summary{display:flex!important;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 2px;padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));text-align:left!important}.dc-coverage-summary b{color:var(--ink);font-size:10px}.dc-coverage-summary span{color:var(--accent);font-size:9px;font-weight:700;white-space:nowrap}@media(max-width:420px){.dc-coverage-summary{align-items:flex-start;flex-direction:column}.dc-coverage-summary span{white-space:normal}}
