/* Shopping navigation and readable basket; tenant colours remain configurable. */
body.url-mode{--nav-height:100px;--categories-height:64px}
body.url-mode .url-nav-inner{min-height:100px}
body.url-mode .url-brand img{max-width:240px;height:78px}
body.url-mode .menu-categories{position:sticky;top:var(--nav-height);z-index:20;display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:12px 2px;background:#fff;border-bottom:1px solid var(--line);scrollbar-width:thin}
.menu-categories a{flex:0 0 auto;padding:10px 16px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;font-weight:700;white-space:nowrap}
.menu-categories a:hover,.menu-categories a[aria-current]{background:var(--ink);color:#fff;border-color:var(--ink)}
.menu-categories a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
body.url-mode .menu-tools{position:static}
body.url-mode .category-block,body.url-mode #menu-form{scroll-margin-top:calc(var(--nav-height) + var(--categories-height) + 20px)}
body.url-mode .url-hero{background:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;align-items:center}
body.url-mode .url-hero-inner{display:flex;align-items:center;padding:clamp(32px,5vw,80px);min-width:0}
body.url-mode .url-hero-photo{display:block;width:auto;max-width:100%;min-width:0;height:auto;min-height:0;max-height:460px;aspect-ratio:auto;object-fit:contain;object-position:center;justify-self:center}
body.url-mode .url-hero-copy h1{font-size:clamp(2.6rem,4.7vw,5rem)}
body.url-mode .url-hero:not(:has(>.url-hero-photo)){grid-template-columns:1fr;text-align:center}
body.url-mode .url-hero:not(:has(>.url-hero-photo)) .url-hero-inner{justify-content:center}
body.url-mode .url-hero:not(:has(>.url-hero-photo)) .url-hero-copy{max-width:780px}
body.url-mode .url-hero:not(:has(>.url-hero-photo)) .url-hero-copy>p{margin-inline:auto}
/* Fratelli Noordwijk: keep the photographic introduction aligned with the menu width. */
body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero{
 width:min(var(--site-max),calc(100% - 48px));
 margin:24px auto;
 grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
 border-radius:24px;
 overflow:hidden;
 background:#faf8f3;
}
body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero-inner{width:100%;max-width:100%;box-sizing:border-box;padding:clamp(32px,4vw,56px)}
body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero-copy h1{font-size:clamp(2.35rem,4vw,4.25rem)}
body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero-photo{width:100%;height:100%;max-height:390px;object-fit:cover}
body.url-mode .url-footer-grid{grid-template-columns:minmax(0,1.1fr) repeat(2,minmax(0,1fr));align-items:start;gap:40px}
body.url-mode .url-footer-grid>section{text-align:left}
body.url-mode .url-footer h3{margin:0 0 20px;line-height:1.25;min-height:1.25em;text-align:left}
body.url-mode .url-footer table{table-layout:fixed}
body.url-mode .url-footer td{padding:7px 0;vertical-align:top;text-align:left;font-variant-numeric:tabular-nums}
body.url-mode .url-footer td:first-child{width:45%}
body.url-mode .url-footer td:last-child{text-align:left;white-space:nowrap}
body.url-mode #cart-panel{position:fixed;top:calc(var(--nav-height) + 12px);right:24px;left:auto;bottom:auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - var(--nav-height) - 150px);padding:22px;border-radius:18px;overscroll-behavior:contain}
body.url-mode .cart-line{padding:16px 0;gap:8px 16px;align-items:start}
body.url-mode .cart-line>strong{font-size:15px;line-height:1.5}
body.url-mode .cart-line>span{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
body.url-mode .cart-line>small{grid-column:1/-1;line-height:1.6;color:#59645e}
body.url-mode .cart-quantity-actions{margin:0;gap:10px}
body.url-mode .cart-quantity-actions .cart-remove{font-size:16px;border:0;text-decoration:none;min-width:38px}
.choice-limit{display:block;font-size:14px;font-weight:400;color:#59645e;margin:6px 0 12px}
.compose-body label:has(input:disabled){opacity:.45;cursor:not-allowed}
.product-photo-dialog{border:0;border-radius:18px;padding:18px;width:min(960px,calc(100vw - 24px));max-height:94dvh;background:#fff;color:var(--ink)}
.product-photo-dialog::backdrop{background:#000b}
.product-photo-dialog header{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}
.product-photo-dialog h2{font-size:22px;margin:0}
.product-photo-dialog button{background:none;border:0;font-size:28px;cursor:pointer;color:inherit;min-width:44px;min-height:44px}
.product-photo-dialog img{display:block;width:100%;height:auto;max-height:58dvh;object-fit:contain;border-radius:12px}
.product-photo-details{padding:18px 2px 2px}
.product-photo-description{margin:0;font-size:16px;line-height:1.65;white-space:pre-line;color:var(--ink)}
.product-image[role=button]{cursor:zoom-in}
.product-image[role=button]:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
@media(max-width:900px){body.url-mode .url-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body.url-mode .url-footer-grid>section:first-child{grid-column:1/-1}body.url-mode .url-hero-inner{padding:32px 24px}body.url-mode .url-hero-photo{min-height:0}}
@media(max-width:650px){
 body.url-mode{--nav-height:86px}
 body.url-mode .url-nav-inner{min-height:86px}
 body.url-mode .url-brand img{max-width:180px!important;height:66px!important}
 body.url-mode .url-hero{grid-template-columns:1fr}
 body.url-mode .url-hero-inner{padding:32px 20px!important}
 body.url-mode .url-hero-photo{width:auto;max-width:100%;height:auto;min-height:0;max-height:300px;aspect-ratio:auto;object-fit:contain}
 body.url-mode .menu-categories{margin-inline:-8px;padding-inline:8px}
 .menu-categories a{font-size:14px;padding:10px 14px}
 body.url-mode .cart-summary.cart-summary{top:calc(var(--nav-height) + 8px);max-height:calc(100dvh - var(--nav-height) - 20px);border:1px solid var(--line);border-radius:18px}
 body.url-mode #cart-panel{position:static;width:auto;max-height:none;padding:0;border:0;box-shadow:none}
 body.url-mode .url-footer-grid{grid-template-columns:1fr;gap:30px}
 body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero{width:calc(100% - 28px);margin:14px auto;grid-template-columns:1fr;border-radius:18px}
 body.url-mode[data-tenant="fratelli-noordwijk"] .url-hero-photo{width:100%;height:220px;max-height:none;object-fit:cover}
}
/* Basket stays above category navigation, including its heading and close button. */
/* De winkelwagen gebruikt vaste OrderDock-kleuren, niet de restaurantkleuren. */
body.url-mode .cart-summary,body.url-mode #cart-leave-dialog{--ink:#17212b;--accent:#ec6607;--accent-dark:#a74400;--accent-soft:#fff0e5;--muted:#59636d;--line:#dde2e7;color:var(--ink)}
body.url-mode .cart-summary{z-index:40}
/* De flex-opmaak mag een verborgen kortingsmelding niet zichtbaar maken. */
#cart-savings[hidden]{display:none!important}
/* Vigo's supplied square logo contains white margins: show the mark at readable size. */
body.url-mode[data-tenant="vigo-delivery"] .url-brand{width:220px;height:78px;overflow:hidden;justify-content:center;flex-shrink:0}
body.url-mode[data-tenant="vigo-delivery"] .url-brand img{width:220px;height:220px;max-width:none;flex-shrink:0}
@media(max-width:650px){body.url-mode[data-tenant="vigo-delivery"] .url-brand{width:170px;height:66px}body.url-mode[data-tenant="vigo-delivery"] .url-brand img{width:170px;height:170px!important;max-width:none!important}}

body.url-mode #favorieten{scroll-margin-top:calc(var(--nav-height,80px) + 16px)}

/* One basket, opened only by the header icon on desktop and mobile. */
body.url-mode .cart-summary.cart-summary{display:none;position:fixed;left:auto;right:24px;top:calc(var(--nav-height) + 8px);bottom:auto;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - var(--nav-height) - 20px);margin:0;padding:18px;overflow:hidden;gap:16px;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 40px #17212b40}
body.url-mode .cart-summary.cart-is-open{display:flex;flex-direction:column;align-items:stretch}
body.url-mode .cart-summary>h2,body.url-mode .cart-panel-checkout{display:none}
body.url-mode .cart-summary #cart-panel{position:static;width:auto;max-height:none;min-height:0;flex:1 1 auto;overflow-y:auto;padding:0;border:0;border-radius:0;box-shadow:none}
body.url-mode .cart-summary .cart-total{display:flex;justify-content:space-between;flex:0 0 auto;width:100%;margin:0;font-size:17px}
body.url-mode .cart-summary .cart-submit{flex:0 0 auto;width:100%;min-height:48px;font-size:16px;padding:12px;white-space:nowrap;color:var(--ink)}
body.url-mode .cart-summary .cart-submit,body.url-mode #cart-continue-shopping{box-sizing:border-box;height:48px;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:20px;padding:10px 12px}
@media(max-width:650px){body.url-mode .cart-summary.cart-summary{left:12px;right:12px;width:auto}}

body.url-mode .cart-panel-top{position:sticky;top:0;z-index:2;background:#fff;padding-bottom:16px}

.cart-line .cart-edit{grid-column:1/-1;justify-self:start;border:0;background:none;color:var(--ink);padding:6px 0;text-decoration:underline;font:inherit;cursor:pointer}

#cart-leave-dialog{width:min(460px,calc(100vw - 32px));padding:24px;border:0;border-radius:18px;color:var(--ink);background:#fff;box-shadow:0 16px 60px #0004}
#cart-leave-dialog::backdrop{background:#0008}
#cart-leave-dialog h2{font-size:24px;margin:0 0 12px}
#cart-leave-dialog p{margin:0 0 20px}
.cart-leave-actions{display:flex;flex-wrap:wrap;gap:12px}
.cart-leave-actions .button{flex:1;min-height:48px}
#cart-leave-stay{color:#fff}

/* Mobile shop: keep the product overview scannable with two cards per row. */
@media(max-width:650px){
 body:not(.layout-list) .menu-grid,
 body.url-mode:not(.layout-list) .menu-grid,
 body.url-mode:not(.layout-list) .featured-section .menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 body:not(.layout-list) .product-image{height:clamp(118px,36vw,165px)}
 body:not(.layout-list) .product-content,
 body.url-mode:not(.layout-list) .product-content,
 body.url-mode:not(.layout-list) .featured-product .product-content{min-width:0;padding:12px}
 body:not(.layout-list) .product h3,
 body.url-mode:not(.layout-list) .product h3,
 body.url-mode:not(.layout-list) .featured-product h3{margin:0 0 8px;font-size:1rem;line-height:1.25;overflow-wrap:anywhere}
 body:not(.layout-list) .product-content>p{display:-webkit-box;overflow:hidden;margin:0 0 10px;font-size:.84rem;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:3}
 body:not(.layout-list) .product-content>.row{gap:8px;align-items:center}
 body:not(.layout-list) .price{font-size:.94rem;white-space:nowrap}
 body:not(.layout-list) .ordering-allergens,
 body:not(.layout-list) .diet-badges{gap:4px;margin-bottom:9px}
 body:not(.layout-list) .ordering-allergens span{font-size:1rem}
 body:not(.layout-list) .diet-badges span{padding:2px 6px;font-size:9px}
 .product-photo-dialog{padding:14px}
 .product-photo-dialog img{max-height:42dvh}
 .product-photo-details{padding-top:14px}
}
