/* Restaurant menu: photograph, identity, browsing, then dishes. */
.public-guest{--ink:#29261f;--paper:#f5f2eb;--line:#dedbd2;--menu-radius:20px;background:var(--paper);color:var(--ink);padding-bottom:0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.menu-skip{position:fixed;top:8px;left:12px;z-index:100;background:#fff;padding:12px;transform:translateY(-150%)}.menu-skip:focus{transform:none}
.public-guest .menu-page{background:var(--paper)}
.menu-masthead{max-width:1100px;margin:0 auto}
.menu-panorama{width:100%;height:250px;object-fit:cover;object-position:center;border-radius:0 0 28px 28px;background:#e8e3da}
.menu-identity{display:flex;align-items:center;gap:28px;padding:24px;position:relative;margin:-20px 16px 0;border:1px solid #ffffffc9;border-radius:24px;background:#fffdf8ed;box-shadow:0 8px 28px #29261f08}
.menu-logo{width:clamp(80px,var(--logo-size,100px),136px);height:clamp(80px,var(--logo-size,100px),136px);object-fit:contain;flex:none;background:#fffdf8;border-radius:14px}
.menu-identity>div{min-width:0}.menu-welcome{display:block;font-size:10px;font-weight:600;letter-spacing:.2em;margin-bottom:9px;color:#68604f}
.menu-identity h1{font-family:'Playfair Display',Georgia,serif;font-size:46px;font-weight:500;line-height:1.12;letter-spacing:-.035em;overflow-wrap:anywhere}
.menu-identity p{font-size:14px;color:#625b50;margin-top:10px}
.public-guest .public-menu-content{max-width:1100px;padding:0 24px 36px}
.public-guest .menu-browser{top:0;background:#f5f2ebf5;padding:16px 0;z-index:20;border-bottom:1px solid #ffffffb3;border-radius:0 0 20px 20px}
.public-guest .menu-search-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.public-guest .menu-search-row label{min-width:0;margin:0}.public-guest .menu-search-row input,.public-guest .menu-search-row select{margin:0;min-height:48px;font-weight:400;border:1px solid #918775;background:#fffdf9;border-radius:14px;padding:10px 14px;color:var(--ink);width:100%;min-width:0}
.public-guest .menu-result-count{scroll-margin-top:96px;color:#625b50}.public-guest [data-menu-section]{scroll-margin-top:96px}
.public-guest .guest-category{font-family:'Playfair Display',Georgia,serif;font-size:30px;font-weight:500;letter-spacing:-.025em;margin:30px 0 6px;gap:12px}.public-guest .guest-category svg{display:block;width:24px;height:24px;flex:0 0 24px;color:#625b50}.public-guest .guest-category small{color:#625b50;font-family:inherit;font-size:13px}
.public-guest .dish-grid{gap:20px;margin-bottom:34px}
.public-guest .dish{border:1px solid #ffffffd9;border-radius:var(--menu-radius);padding:20px;background:linear-gradient(145deg,#fffefa,#fffdf7e0);box-shadow:0 6px 20px #29261f05;gap:0;display:flex;flex-direction:column;align-items:stretch;overflow:visible;min-width:0}
.public-guest .dish:hover{box-shadow:none}.public-guest .dish:focus-within{box-shadow:none}
.public-guest .dish>div{min-width:0}.public-guest .dish-copy{padding:0;flex:1}
.public-guest .dish h3{font-size:22px;font-weight:600;line-height:1.4;letter-spacing:-.025em;margin:0 0 8px;overflow-wrap:anywhere}
.public-guest .dish p{font-size:14px;line-height:1.6;color:#625b50;margin:0}.public-guest .dish p:empty{display:none}
.public-guest .dish-price{font-size:22px;font-weight:600;text-align:center;letter-spacing:-.025em;line-height:1.4;padding:16px 0 12px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:normal}
.public-guest .dish-price small{color:#8b3328;font-size:12px;font-weight:500;margin-top:6px}
.public-guest .dish-photo{width:100%;aspect-ratio:3/2;height:auto;object-fit:cover;border-radius:14px;margin-bottom:16px}
.public-guest .dish-picker{padding:0;min-width:0!important;align-self:stretch;flex:0 0 auto!important}
.public-guest .dish-picker>.button{width:100%;min-width:0;min-height:44px;padding:8px 12px;border:0;border-radius:12px;background:#ece8df;color:#342d23;font-size:14px;font-weight:600}
.public-guest .dish-picker>.button:hover{background:#e2dccf}.public-guest .dish-quantity{min-width:0;min-height:44px;border:0;border-radius:12px;background:#342d23}.public-guest .dish-quantity button{min-width:44px;min-height:44px}.public-guest .dish-quantity output{font-size:16px;min-width:20px}
.public-guest .menu-empty{padding:48px 0;text-align:center}.menu-empty h2{font:28px Georgia,serif}.menu-empty p{margin:12px 0 20px;color:#625b50}.menu-empty[hidden]{display:none}
.public-guest footer{max-width:1100px;margin:auto;padding:22px 24px 120px;color:#625b50;font-size:12px}
.public-guest .guest-order-dock{display:flex;align-items:center;justify-content:center;gap:12px;padding:10px max(16px,calc((100vw - 1052px)/2));padding-bottom:max(10px,env(safe-area-inset-bottom));background:#fffdf8f5;border-color:#ffffffc9;border-radius:20px 20px 0 0;box-shadow:0 -4px 20px #29261f08}
.public-guest .guest-order-dock>.button{min-width:0;width:auto;min-height:48px;max-width:560px;padding:10px 14px;border-radius:14px;background:#342d23;font-size:14px}.public-guest .guest-order-dock>.button.outline{background:transparent;color:#342d23;border-color:#918775;flex:0 1 auto}.public-guest .guest-order-dock>small{font-size:12px;color:#625b50}
.public-guest :is(button,a,input,select):focus-visible{outline:3px solid #8b3328;outline-offset:3px}
@media(max-width:600px){
 .menu-panorama{height:132px;border-radius:0 0 20px 20px;object-position:center}
 .menu-identity{gap:14px;padding:16px 14px;margin:-14px 12px 0;border-radius:20px;align-items:center}.menu-logo{width:80px;height:80px}.menu-welcome{font-size:9px;letter-spacing:.14em;margin-bottom:7px}.menu-identity h1{font-size:28px;line-height:1.12}.menu-identity p{font-size:12px;line-height:1.5;margin-top:7px}
 .public-guest .public-menu-content{padding:0 16px 24px}.public-guest .menu-browser{padding:12px 0}.public-guest .menu-search-row{gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.public-guest .menu-search-row input,.public-guest .menu-search-row select{padding:10px 8px;font-size:16px}
 .public-guest .guest-category{font-size:26px;margin:24px 0 2px}.public-guest .guest-category small{font-size:12px}.public-guest .dish-grid{gap:12px}.public-guest .dish{padding:12px;gap:0}.public-guest .dish h3{font-size:18px;line-height:1.4}.public-guest .dish p{font-size:13px;line-height:1.55}.public-guest .dish-price{font-size:18px;padding:14px 0 12px}.public-guest .dish-photo{margin-bottom:12px}.public-guest .guest-order-dock>small{display:none}.public-guest .guest-order-dock{gap:8px}.public-guest .guest-order-dock>.button{font-size:13px;flex-basis:auto}.public-guest footer{padding:20px 16px 110px}
}
@media(prefers-reduced-motion:reduce){.public-guest *{scroll-behavior:auto!important;transition:none!important}}

.public-guest .dish-picker>.button{background:color-mix(in srgb,var(--restaurant) 8%,#f5f0e7)}

.public-guest .order-dialog{background:var(--paper);color:var(--ink)}.public-guest .order-dialog :is(h2,.order-total strong,.cart-line strong){color:var(--ink)}.public-guest .order-dialog .button:not(.outline){background:#342d23}.public-guest .order-dialog .button.outline,.public-guest .order-dialog .quantity button{color:#342d23;border-color:#918775}.public-guest .order-dialog input{color:var(--ink);border-color:#918775}.public-guest .order-dialog-header{border-color:var(--line)}
/* Names and photography lead; descriptions are available on demand. */
.public-guest .dish{cursor:pointer}.public-guest .dish h3{margin:0}.public-guest .dish-details-trigger{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;width:100%;min-height:44px;padding:0 0 12px;border:0;background:transparent;text-align:left;white-space:normal;color:inherit;font:inherit;letter-spacing:inherit;line-height:inherit}.dish-details-trigger>span:first-child{min-width:0;overflow-wrap:anywhere}.dish-detail-cue{flex:none;font:24px/1.1 Georgia,serif;color:#625b50}.public-guest .dish-photo{margin:0}.public-guest .dish-details-trigger:hover>span:first-child{text-decoration:underline;text-underline-offset:4px}.public-guest .dish-copy{display:flex;flex-direction:column;justify-content:flex-start}
/* One horizontal category navigator, with the restaurant's own icons. */
.public-guest .menu-search-row{grid-template-columns:1fr}.public-guest .menu-search-row input{max-width:100%}
.menu-category-strip{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;padding:8px 3px 5px;margin:4px -3px -5px}
.menu-category-strip button{display:flex;align-items:center;gap:9px;flex:none;min-height:44px;padding:9px 13px;border:0;border-radius:12px;background:transparent;color:#625b50;font-size:14px;white-space:nowrap}.menu-category-strip button[aria-pressed=true]{background:#342d23;color:#fff}.menu-category-strip button:hover:not([aria-pressed=true]){background:#ece8df}.menu-category-strip svg{width:20px;height:20px;flex:none}.menu-category-strip small{font-size:11px}
.public-guest .menu-result-count,.public-guest [data-menu-section]{scroll-margin-top:150px}
.public-guest .dish-picker>[data-order-size]{white-space:normal;font-size:13px}

/* Frosted surfaces remain legible when blur or transparency is unavailable. */
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
 .public-guest .menu-browser{background:#f5f2ebe6;backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15)}
 .menu-identity{background:#fffdf8ed;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
 .public-guest .guest-order-dock{background:#fffdf8de;backdrop-filter:blur(24px) saturate(1.15);-webkit-backdrop-filter:blur(24px) saturate(1.15)}
}
@media(prefers-reduced-transparency:reduce){.public-guest .menu-browser,.public-guest .guest-order-dock,.menu-identity{background:#fffdf8;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(max-width:360px){.public-guest .public-menu-content{padding-inline:12px}.public-guest .dish-grid{gap:10px}.public-guest .dish{padding:10px;border-radius:16px}.public-guest .dish h3{font-size:18px}.public-guest .dish-picker>.button{padding-inline:6px}.public-guest .dish-photo{border-radius:10px}}
/* Shared row tracks keep adjacent photos and prices aligned without truncating names. */
.public-guest .dish h3{font-size:20px;line-height:1.35}
@media(max-width:600px){.public-guest .dish h3{font-size:16px}}
@supports(grid-template-rows:subgrid){
 .public-guest .dish{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:subgrid;grid-row:span 4;row-gap:8px}
 .public-guest .dish-copy{display:contents}
 .public-guest .dish h3{grid-row:1;align-self:start}
 .public-guest .dish-details-trigger{padding-bottom:0}
 .public-guest .dish-photo{grid-row:2;align-self:start}
 .public-guest .dish-price{grid-column:1;grid-row:3;align-self:start;padding:6px 0}
 .public-guest .dish-picker{grid-column:1;grid-row:4;align-self:end}
}
