/* The source site's CSS owns the layout and all original responsive breakpoints. */
astro-island { display: contents; }
/* Keep seasonal descriptions consistent despite imported inline serif fonts. */
.page-seasonal-dishes .delicacy-desc,
.page-seasonal-dishes .delicacy-desc span {
  font-family: inherit !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  color: rgb(105, 105, 105) !important;
}
.static-enquiry-result { margin-top: 16px; padding: 15px; background: #fbf3d9; border: 1px solid #b09b57; }
.static-enquiry-result a { text-decoration: underline; }
.static-enquiry-result .btn { margin: 6px 10px 0 0; }
#book-modal .modal-content:empty { min-height: 100px; }
.static-book-loading { padding: 30px; text-align: center; }
.static-book-error { padding: 25px; }
.box-menu li:focus-within > .dropdown-div,
.box-menu .has-sub:focus-within > .dropdown-three-menu { display: block; }
.client-menu-page { padding-bottom: 48px; }
.gallery-introduction { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 12px 0 26px; color: #696969; font-size: 18px; }
.gallery-introduction p { margin: 0; }
.gallery-menu-link { color: #b60e51; white-space: nowrap; border-bottom: 1px solid #b60e51; }
.gallery-toolbar { margin-bottom: 28px; padding: 22px; background: rgba(255,255,255,.9); border-top: 3px solid #aa9c7a; }
.gallery-categories { display: flex; flex-wrap: wrap; gap: 8px; }
.gallery-category { border: 1px solid #d6cfbe; padding: 8px 17px; color: #716342; background: #fff; font-size: 16px; border-radius: 2px; }
.gallery-category:hover { background: #f9f5ec; }
.gallery-category.is-active { background: #a3946b; border-color: #a3946b; color: #fff; }
.gallery-search-row { display: flex; gap: 24px; align-items: center; padding-top: 20px; color: #696969; }
.gallery-search { display: flex; gap: 12px; align-items: center; margin: 0; font-size: 16px; font-weight: 400; }
.gallery-search input { width: 270px; max-width: 100%; padding: 8px 12px; border: 1px solid #d6cfbe; background: #fff; border-radius: 2px; color: #333; }
.gallery-preorder-toggle { display: flex; align-items: center; gap: 8px; font-size: 16px; font-weight: 400; margin: 0; padding: 0; border: 0; background: transparent; color: #696969; }
.gallery-toggle-box { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border: 1px solid #aa9c7a; color: #b60e51; font-size: 14px; }
.gallery-count { margin: 0 0 0 auto; white-space: nowrap; color: #95824d; font-size: 16px; }
.dish-photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 30px 24px; }
.dish-photo-card { min-width: 0; background: #fff; border: 4px solid #fff; box-shadow: 0 3px 8px #0002; }
.dish-photo-button { position: relative; display: block; width: 100%; border: 0; padding: 0; background: #f8f5ed; cursor: zoom-in; }
.dish-photo-button img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.dish-photo-enlarge { position: absolute; right: 12px; bottom: 12px; display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; background: rgba(255,255,255,.94); color: #8a7850; border-radius: 50%; }
.dish-photo-button:hover .dish-photo-enlarge { color: #b60e51; }
.dish-photo-variants { position: absolute; left: 12px; bottom: 12px; padding: 4px 10px; background: rgba(255,255,255,.94); color: #716342; font-size: 13px; }
.dish-photo-caption { position: relative; padding: 18px 17px 20px; min-height: 118px; }
.dish-photo-category { font-size: 13px; color: #95824d; }
.dish-photo-caption h2 { font-size: 21px; line-height: 1.45; font-weight: 700; color: #96875d; margin: 7px 0 10px; overflow-wrap: anywhere; }
.dish-preorder-badge { display: inline-block; color: #b60e51; border: 1px solid #d9a9bb; padding: 2px 8px; border-radius: 2px; font-size: 13px; line-height: 1.5; }
.gallery-no-results { background: #fff; text-align: center; padding: 40px 20px; font-size: 18px; color: #696969; }
.gallery-availability-note { color: #696969; font-size: 16px; line-height: 1.6; margin: 28px 0 38px; }
.gallery-branch-menus { padding: 28px; background: #fff; border-top: 3px solid #aa9c7a; scroll-margin-top: 20px; }
.gallery-branch-menus > h2 { font-size: 26px; font-weight: 400; color: #b60e51; margin: 0 0 24px; }
.gallery-menu-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px; }
.gallery-branch-menu h3 { font-size: 20px; font-weight: 700; color: #96875d; margin: 0 0 12px; }
.gallery-branch-menu a { display: inline-block; border: 1px solid #d6cfbe; color: #716342; padding: 8px 14px; margin: 0 10px 8px 0; font-size: 16px; }
.gallery-branch-menu a span { color: #b60e51; font-size: 12px; margin-left: 14px; }
.gallery-lightbox { position: fixed; inset: 0; width: min(1060px,calc(100% - 40px)); max-width: none; max-height: calc(100dvh - 40px); margin: auto; padding: 0; border: 0; background: #fff; color: #333; overflow: auto; box-shadow: 0 12px 50px #0006; }
.gallery-lightbox::backdrop { background: #000c; }
.gallery-lightbox-content { position: relative; }
.gallery-large-photo { display: block; width: 100%; height: auto; max-height: 70dvh; object-fit: contain; background: #181818; }
.gallery-lightbox-close { position: absolute; z-index: 1; top: 12px; right: 12px; width: 40px; height: 40px; color: #333; background: #fffffff2; border: 0; border-radius: 50%; font-size: 30px; line-height: 1; }
.gallery-lightbox-caption { padding: 20px 25px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.gallery-lightbox-caption h2 { color: #96875d; font-size: 24px; font-weight: 700; margin: 5px 0 10px; }
.gallery-lightbox-caption > div > span:first-child { color: #95824d; font-size: 14px; }
.gallery-photo-controls { display: flex; align-items: center; gap: 15px; white-space: nowrap; }
.gallery-photo-controls button { border: 1px solid #d6cfbe; background: #fff; color: #95824d; width: 38px; height: 38px; font-size: 28px; line-height: 1; }
.gallery-category:focus-visible, .dish-photo-button:focus-visible, .gallery-lightbox button:focus-visible { outline: 3px solid #b60e51; outline-offset: 3px; }
@media (min-width: 768px) and (max-width: 991px) {
  .dish-photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gallery-search-row { flex-wrap: wrap; gap: 15px; }
}
@media (max-width: 767px) {
  .static-enquiry-result { overflow-wrap: anywhere; }
  .gallery-introduction { flex-direction: column; align-items: flex-start; gap: 12px; font-size: 16px; }
  .gallery-toolbar { padding: 15px; }
  .gallery-categories { gap: 7px; }
  .gallery-category { padding: 7px 11px; font-size: 14px; }
  .gallery-search-row { flex-wrap: wrap; gap: 16px; }
  .gallery-search { width: 100%; flex-direction: column; align-items: flex-start; gap: 7px; }
  .gallery-search input { width: 100%; }
  .dish-photo-grid { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .dish-photo-caption { min-height: auto; padding: 15px; }
  .gallery-menu-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  .gallery-branch-menus { padding: 20px; }
  .gallery-lightbox { width: calc(100% - 20px); max-height: calc(100dvh - 20px); }
  .gallery-lightbox-caption { padding: 15px; flex-wrap: wrap; gap: 12px; }
  .gallery-lightbox-caption h2 { font-size: 21px; }
  .gallery-large-photo { max-height: 65dvh; }
}
