/* Public bakery pages: reuse POS tokens, not its viewport-bound workspace. */
.public-web { --web-nav:160px; margin:0; background:#fff; color:#202122; font-family:Arial,Helvetica,sans-serif; line-height:1.5; }
.public-web .container { margin-left:var(--web-nav); padding:28px 32px 48px; }
.public-web .menu { position:fixed; inset:0 auto 0 0; width:var(--web-nav); display:flex; flex-direction:column; gap:8px; padding:24px 10px; overflow:auto; background:var(--light,#f8f9fa); border-right:1px solid var(--border,#c8ccd1); z-index:10; }
.public-web .menu-item { display:flex; align-items:center; min-width:44px; min-height:48px; padding:10px 14px; border:1px solid transparent; border-radius:3px; text-decoration:none; font-size:15px; color:#202122; }
.public-web .menu-item:hover { background:#eaecf0; }
.public-web .menu-item[aria-current="page"] { border-color:#a3baff; background:#eaf1ff; color:#244b9c; font-weight:700; }
.public-web a:focus-visible { outline:3px solid var(--blue,#36c); outline-offset:2px; }
.public-web .main-area { max-width:850px; min-width:0; overflow-wrap:anywhere; }
.public-web h1 { font-size:28px; line-height:1.25; margin:0 0 18px; padding-bottom:12px; border-bottom:1px solid var(--border,#c8ccd1); }
.public-web h2 { font-size:20px; margin:24px 0 12px; }
.public-web p { margin:0 0 18px; line-height:1.6; }
.public-web .web-back { display:inline-flex; align-items:center; min-height:44px; min-width:44px; margin:0 0 12px; padding:6px 10px; border:1px solid var(--border,#c8ccd1); border-radius:3px; background:var(--light,#f8f9fa); text-decoration:none; font-size:14px; }
.public-web .web-back:hover { background:#eaecf0; text-decoration:underline; }
.public-web .ingredients { display:grid; grid-template-columns:minmax(0,1fr) 72px; margin:0; border:1px solid var(--border,#c8ccd1); border-radius:3px; overflow:hidden; }
.public-web .ingredients dt, .public-web .ingredients dd { margin:0; padding:10px 12px; border-bottom:1px solid #eaecf0; }
.public-web .ingredients dt { font-weight:400; }
.public-web .ingredients dd { text-align:right; font-variant-numeric:tabular-nums; }
.public-web .ingredients dt:nth-of-type(even), .public-web .ingredients dd:nth-of-type(even) { background:var(--light,#f8f9fa); }
.public-web .ingredients > p { grid-column:1/-1; margin:0; padding:12px; border-bottom:1px solid var(--border,#c8ccd1); font-weight:700; background:#eaecf0; }
.public-web .allergen { font-weight:700; text-decoration:underline; text-decoration-color:#a2a9b1; text-underline-offset:3px; }
.public-web .allergen-note { margin:16px 0 0; padding:12px 0 0; border-top:1px solid var(--border,#c8ccd1); font-size:14px; color:var(--muted,#54595d); }
.public-web .ingredient-list { grid-template-columns:minmax(0,1fr); padding:0; list-style:none; }
.public-web .ingredient-list > li { margin:0; padding:4px 12px; line-height:1.4; border-bottom:1px solid #eaecf0; }
.public-web .ingredient-list > li:nth-child(even) { background:var(--light,#f8f9fa); }
.public-web .ingredient-list > li:last-child { border-bottom:0; }
.public-web .ingredient-list > .ingredient-variant { font-weight:700; background:#eaecf0; border-bottom-color:var(--border,#c8ccd1); }
.public-web-list .ingredients { grid-template-columns:minmax(0,1fr); }
.public-web-list .ingredients dt { padding:0; border-bottom:0; font-weight:700; }
.public-web-list .ingredients dt a { display:flex; align-items:center; min-width:44px; min-height:44px; padding:10px 14px 4px; text-decoration:none; }
.public-web-list .ingredients dt a:hover { text-decoration:underline; }
.public-web-list .ingredients dd { padding:0 14px 14px; text-align:left; color:var(--muted,#54595d); }
.public-web .skip-link { position:fixed; top:8px; left:8px; transform:translateY(-200%); z-index:20; padding:12px 16px; min-height:44px; background:#fff; border:1px solid var(--blue,#36c); }
.public-web .skip-link:focus { transform:none; }
@media (max-width:1100px) and (orientation:landscape) {
 .public-web { --web-nav:128px; }
 .public-web .container { padding:20px 24px 40px; }
}
@media (max-height:500px) and (orientation:landscape) {
 .public-web { --web-nav:112px; }
 .public-web .menu { padding:8px 4px; gap:4px; }
 .public-web .menu-item { padding:8px; }
 .public-web .container { padding:16px 20px 32px; }
}
@media (orientation:portrait) {
 .public-web .container { margin-left:0; padding:20px 16px calc(88px + env(safe-area-inset-bottom)); }
 .public-web .menu { inset:auto 0 0; width:100%; flex-direction:row; gap:2px; padding:4px 4px calc(4px + env(safe-area-inset-bottom)); border-right:0; border-top:1px solid var(--border,#c8ccd1); }
 .public-web .menu-item { flex:1; justify-content:center; padding:8px 2px; font-size:14px; }
 .public-web h1 { font-size:25px; }
 .public-web .ingredients dt, .public-web .ingredients dd { padding:10px; }
 .public-web-list .ingredients dt { padding:0; }
 .public-web-list .ingredients dd { padding:0 14px 14px; }
}
.public-web .price-list { grid-template-columns:minmax(0,1fr) max-content; }
.public-web .price-list dt, .public-web .price-list dd { padding:4px 12px; line-height:1.4; }
.public-web .price-list dd { white-space:nowrap; }
.public-web .price-list dt:last-of-type, .public-web .price-list dd:last-of-type { border-bottom:0; }
.public-web .contact-details { font-style:normal; }
.public-web .contact-details p { margin-bottom:8px; }
.public-web .contact-map { display:block; width:100%; max-width:850px; height:320px; border:1px solid var(--border,#c8ccd1); border-radius:3px; margin:0 0 12px; }
.public-web .map-note { font-size:14px; color:var(--muted,#54595d); }
.public-web .home-intro { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:24px; align-items:start; margin-bottom:18px; }
.public-web .home-intro-text { min-width:0; }
.public-web .home-intro-text .motto { margin-bottom:0; }
.public-web .home-intro-photo { display:block; width:100%; height:auto; border-radius:3px; }
@media (max-width:700px) {
 .public-web .home-intro { grid-template-columns:minmax(0,1fr); gap:16px; }
 .public-web .home-intro-photo { max-width:360px; }
}
.public-web .gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.public-web .gallery-thumb { display:block; aspect-ratio:4/3; border:1px solid var(--border,#c8ccd1); border-radius:3px; overflow:hidden; background:var(--light,#f8f9fa); }
.public-web .gallery-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.public-web .gallery-thumb:hover { border-color:var(--blue,#36c); }
.public-web .gallery-pages { display:flex; gap:8px; margin:18px 0; }
.public-web .gallery-pages a { display:flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 14px; border:1px solid var(--border,#c8ccd1); border-radius:3px; text-decoration:none; background:var(--light,#f8f9fa); }
.public-web .gallery-pages a[aria-current="page"] { background:#eaf1ff; border-color:#a3baff; color:#244b9c; font-weight:700; }
.public-web .photo-viewer { width:min(1200px,96vw); max-width:96vw; height:92vh; height:92dvh; max-height:92dvh; padding:12px; overflow:hidden; background:#fff; }
.public-web .photo-viewer[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; gap:10px; }
.public-web .photo-viewer::backdrop { background:#000c; }
.public-web .viewer-toolbar, .public-web .viewer-controls { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.public-web .viewer-stage { position:relative; min-height:0; display:flex; align-items:center; justify-content:center; background:#f8f9fa; overflow:hidden; }
.public-web .viewer-stage img { width:100%; height:100%; object-fit:contain; }
.public-web .viewer-stage p { margin:0; padding:12px; text-align:center; }
.public-web .viewer-stage p:empty { display:none; }
.public-web .viewer-controls a { display:flex; align-items:center; justify-content:center; min-height:48px; padding:8px 12px; }
.public-web .viewer-controls button { min-width:48px; }
@media (max-width:600px) {
 .public-web .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .public-web .photo-viewer { padding:8px; }
}
.public-web-list .catalog-item { display:grid; grid-template-columns:minmax(0,1fr) 184px; grid-template-rows:auto 1fr; border-bottom:1px solid #eaecf0; }
.public-web-list .catalog-item:nth-child(even) { background:var(--light,#f8f9fa); }
.public-web-list .catalog-item:last-child { border-bottom:0; }
.public-web-list .catalog-item > dt { grid-column:1; grid-row:1; background:transparent; }
.public-web-list .product-catalog .catalog-item > dd { border-bottom:0; background:transparent; }
.public-web-list .catalog-item > .product-description { grid-column:1; grid-row:2; }
.public-web-list .catalog-item > .product-photo { grid-column:2; grid-row:1 / span 2; display:flex; align-items:center; padding:10px 12px; }
.public-web-list .product-photo img { display:block; width:100%; height:auto; border-radius:3px; }
@media (max-width:600px) {
 .public-web-list .catalog-item { grid-template-columns:minmax(0,1fr) 112px; }
 .public-web-list .catalog-item > .product-photo { padding:10px 8px; }
}
/* Availability remains a naturally scrolling public page. */
.public-web .availability-table { width:100%; border-collapse:collapse; border:1px solid var(--border,#c8ccd1); }
.public-web .availability-table th, .public-web .availability-table td { padding:4px 12px; line-height:1.4; text-align:left; border-bottom:1px solid #eaecf0; }
.public-web .availability-table th:nth-child(2), .public-web .availability-table td:nth-child(2), .public-web .availability-table .availability-price { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.public-web .availability-table th { background:#eaecf0; }
.public-web .availability-table tbody tr:nth-child(even) { background:var(--light,#f8f9fa); }
.public-web .availability-table th:last-child, .public-web .availability-table td:last-child { text-align:right; }
.public-web .availability-table td:last-child { white-space:nowrap; font-variant-numeric:tabular-nums; }
.public-web .availability-empty { font-size:32px; font-weight:700; margin-top:24px; }
.public-web .availability-time { font-size:14px; color:var(--muted,#54595d); }
.public-web .sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media (orientation:portrait) {
 .public-web .menu { overflow-x:auto; overflow-y:hidden; }
 .public-web .menu-item { flex:1 0 64px; text-align:center; }
}
@media print {
 .public-web .photo-viewer { display:none!important; }
 .public-web .menu, .public-web .skip-link, .public-web .web-back { display:none; }
 .public-web .container { margin:0; padding:0; }
 .public-web .main-area { max-width:none; }
 .public-web .ingredients { break-inside:avoid; }
}
