/* Keep the main dish centered across screen sizes. */
.hero-visual > img { object-position: 50% 65%; }
header .brand-logo { display: flex; align-items: center; flex-shrink: 0; }
.brand-logo img { display: block; width: 90px; height: 90px; object-fit: contain; }
.image-note { font-size: 10px; color: #817669; margin: 0 0 20px; }
.categories { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 12px; gap: 12px; scroll-snap-type: x proximity; }
.categories button { flex: 0 0 180px; padding: 0 0 12px; overflow: hidden; background: var(--paper); border-radius: 3px; scroll-snap-align: start; font-size: 12px; }
.categories button img { display: block; width: 100%; height: 135px; object-fit: cover; margin-bottom: 12px; }
.categories button .category-total { display: flex; align-items: center; justify-content: center; height: 135px; margin-bottom: 12px; font: italic 65px var(--serif); background: #e0e1d5; color: var(--olive); }
.category-count { display: block; margin-top: 3px; font-size: 9px; font-weight: 400; opacity: .7; }
.dish { display: grid; grid-template-columns: 100px minmax(0,1fr) auto; align-items: center; gap: 16px; }
.dish-photo { position: relative; display: block; width: 100px; height: 100px; padding: 0; border: 0; border-radius: 3px; overflow: hidden; background: #e0e1d5; }
.dish-photo img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .2s; }
.dish-photo:hover img { transform: scale(1.06); }
.photo-hint { position: absolute; bottom: 0; left: 0; right: 0; color: white; font-size: 8px; padding: 4px; background: #342e28b8; }
.dish-price { padding-top: 0; }
#dish-dialog { padding: 0; border: 0; border-radius: 5px; width: min(800px,92vw); max-height: 92vh; background: var(--paper); color: var(--ink); overflow: auto; }
#dish-dialog::backdrop { background: #221a18bc; }
#dish-dialog-close { position: absolute; top: 12px; right: 12px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--cream); color: var(--wine); font-size: 28px; z-index: 1; box-shadow: 0 2px 12px #0003; }
#dish-dialog-image { display: block; width: 100%; max-height: 62vh; aspect-ratio: 4/3; object-fit: contain; background: #e0e1d5; }
.dish-dialog-copy { padding: 22px 28px 26px; }
.dish-dialog-copy h2 { font-size: 28px; line-height: 1.3; letter-spacing: -.5px; }
#dish-dialog-price { font-weight: 600; color: var(--wine); margin: 10px 0; }
#dish-dialog-description { font-size: 12px; color: #786d5f; }
.dish-dialog-copy small { font-size: 10px; color: #8a7e6e; }
@media (max-width: 700px) {
  .brand-logo img { width: 70px; height: 70px; }
  header nav { gap: 15px; }
  .categories button { flex-basis: 150px; padding: 0 0 11px; font-size: 11px; }
  .categories button img, .categories button .category-total { height: 112px; }
  .dish { grid-template-columns: 74px minmax(0,1fr) auto; gap: 10px; }
  .dish-photo { width: 74px; height: 82px; }
  .dish h3 { font-size: 17px; }
  .dish-price { font-size: 10px; }
  .photo-hint { font-size: 7px; }
  .dish-dialog-copy { padding: 18px; }
  .dish-dialog-copy h2 { font-size: 24px; }
}

#booking-success-dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);width:min(600px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:28px;overflow-y:auto;overscroll-behavior:contain;box-shadow:0 24px 90px #23151044}
#booking-success-dialog::backdrop{background:#241a17a8;backdrop-filter:blur(4px)}
.booking-success-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.booking-success-mark{display:grid;place-items:center;width:46px;height:46px;background:#e4eadb;color:#4c633c;border-radius:50%;font-size:25px}
#booking-success-close{border:1px solid var(--line);background:transparent;color:var(--wine);font-size:26px;width:40px;height:40px;line-height:1}
#booking-success-dialog .eyebrow{font-size:9px;margin:0 0 10px}
#booking-success-title{font-size:34px;line-height:1.2;margin:0}
.booking-success-intro{font-size:12px;color:#786d5f;margin:12px 0 20px}
#booking-success-details{margin:0;border-top:1px solid var(--line)}
.booking-success-row{display:grid;grid-template-columns:145px minmax(0,1fr);gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:12px;line-height:1.6}
.booking-success-row dt{color:#786d5f}.booking-success-row dd{margin:0;font-weight:500;overflow-wrap:anywhere;white-space:pre-wrap}
#booking-success-followup{background:#eee6db;border-left:3px solid var(--wine);padding:13px 15px;font-size:13px;font-weight:600;line-height:1.7;margin:20px 0 8px}
.booking-success-note,#booking-success-email{font-size:11px;line-height:1.7;color:#786d5f;margin:8px 0}
#booking-success-done{width:100%;border:0;justify-content:space-between;margin-top:16px}
html:has(#booking-success-dialog[open]){overflow:hidden}
@media(max-width:600px){#booking-success-dialog{padding:20px;max-height:calc(100dvh - 24px)}#booking-success-title{font-size:29px}.booking-success-row{grid-template-columns:110px minmax(0,1fr);gap:10px;font-size:11px}}