/* Frame the main dish, retaining the original photograph. */
.hero-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 55% 100%;
  filter: brightness(1.16) contrast(1.06) saturate(1.25);
}
.local-hero-visual img, .chef-photo img { display: block; object-position: center; }
.gallery-grid {
  display: flex;
  flex-wrap: nowrap;
  columns: auto;
  gap: 20px;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  padding: 0 0 18px;
  margin-inline: 0;
  scrollbar-width: thin;
  scrollbar-color: #8b7150 #eee9e1;
}
.gallery-grid figure, .gallery-grid figure.wide, .gallery-grid figure.tall {
  display: block;
  flex: 0 0 calc((100% - 40px)/3);
  width: auto;
  height: 350px;
  margin: 0;
  overflow: hidden;
  border-radius: 10px;
  background: #f4f3ef;
  scroll-snap-align: start;
  transform: none;
}
.gallery-grid img, .gallery-grid figure:hover img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  filter: brightness(1.02) contrast(1.02) saturate(1.015);
  transform: none;
  transition: none;
}
.gallery-controls { display: flex; justify-content: flex-end; gap: 10px; margin: 0 0 18px; }
.gallery-controls button { width: 46px; height: 46px; border: 1px solid #8b7150; border-radius: 50%; background: #fff; color: #655137; font-size: 24px; cursor: pointer; }
.gallery-controls button:hover { background: #eee9e1; }
.gallery-grid:focus-visible { outline: 2px solid #8b7150; outline-offset: 5px; }
@media (max-width: 950px) {
  .gallery-grid figure, .gallery-grid figure.wide, .gallery-grid figure.tall { flex-basis: 46%; height: 330px; }
}
@media (max-width: 600px) {
  .gallery-grid { gap: 14px; }
  .gallery-grid figure, .gallery-grid figure.wide, .gallery-grid figure.tall { flex-basis: 85%; height: 360px; }
  .hero-visual img { object-position: 55% 100%; }
}
