/* Menu page: the same warm linework and product artwork as the homepage. */
.primary-nav a[aria-current="page"] { color: #a94325; text-decoration: underline; text-underline-offset: 8px; }
.menu-hero { position: relative; overflow: hidden; }
.menu-hero-inner { width: min(calc(100% - 96px), 1240px); min-height: 390px; margin: auto; display: grid; grid-template-columns: .85fr 1.3fr; align-items: center; }
.menu-hero-copy { position: relative; z-index: 2; }
.menu-hero-copy h1 { margin: 0; color: #414141; font-size: clamp(46px, 5.8vw, 76px); font-weight: 400; letter-spacing: -.035em; line-height: 1.05; }
.menu-hero-copy > p:last-child { max-width: 350px; margin: 16px 0 0; color: #666; font-size: 20px; line-height: 1.35; }
.menu-hero-art { position: relative; display: grid; height: 390px; place-items: center; }
.menu-hero-art span { position: absolute; height: 90%; aspect-ratio: 1; border: 1px solid #dfb486; border-radius: 50%; }
.menu-hero-art img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; }
.menu-wheat { position: absolute; right: -35px; top: 0; width: 210px; pointer-events: none; }
.menu-categories { display: flex; justify-content: center; flex-wrap: wrap; border-block: 1px solid #ead9c6; padding: 12px 20px; }
.menu-categories a { padding: 5px 22px; color: #555; font-size: 14px; text-decoration: none; }
.menu-categories a + a { border-left: 1px solid #e6c9ad; }
.menu-categories a:hover, .menu-categories a:focus-visible { color: #a94325; text-decoration: underline; text-underline-offset: 4px; }
.menu-section { position: relative; overflow: hidden; border-bottom: 1px solid #ead9c6; scroll-margin-top: 85px; }
.menu-section-inner { position: relative; width: min(calc(100% - 96px), 1160px); margin: auto; padding: 28px 0 30px; }
.menu-section-heading { display: flex; align-items: center; gap: 18px; }
.menu-section h2 { margin: 0; color: #b34d2d; font-size: clamp(28px, 2.8vw, 38px); font-weight: 400; line-height: 1.2; }
.menu-section-heading span { width: 32px; height: 1px; background: #c95b35; }
.menu-items { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 64px; max-width: 920px; margin-top: 14px; }
.menu-items ul { list-style: none; padding: 0; margin: 0; }
.menu-items li { display: flex; min-height: 35px; align-items: baseline; gap: 12px; color: #555; font-size: 15px; line-height: 1.5; }
.menu-items li::after { content: ""; flex: 1; min-width: 12px; border-bottom: 1px dotted #c7beb6; }
.menu-section-inner > img { position: absolute; right: -8px; bottom: 0; width: 180px; height: 150px; object-fit: contain; opacity: .8; pointer-events: none; }
.menu-section-inner:has(> img) .menu-items { max-width: calc(100% - 205px); }
@media (max-width: 900px) { .menu-categories a { padding-inline: 12px; } .menu-section-inner > img { width: 130px; } .menu-section-inner:has(> img) .menu-items { max-width: calc(100% - 145px); } .menu-items { gap: 32px; } }
@media (max-width: 700px) {
  .menu-hero-inner { width: calc(100% - 40px); min-height: 0; grid-template-columns: 1fr; padding-top: 32px; text-align: center; }
  .menu-hero-copy h1 { font-size: clamp(43px, 11vw, 62px); }
  .menu-hero-copy > p:last-child { margin: 12px auto 0; font-size: 17px; }
  .menu-hero-art { height: auto; aspect-ratio: 1.7; }
  .menu-wheat { width: 125px; right: -35px; top: 85px; opacity: .7; }
  .menu-categories { justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; padding: 10px 12px; }
  .menu-categories a { flex: 0 0 auto; padding: 7px 14px; }
  .menu-section-inner { width: calc(100% - 40px); padding-block: 24px; }
  .menu-section-inner > img { width: 100px; height: 85px; opacity: .28; }
  .menu-section-inner:has(> img) .menu-items { max-width: none; }
  .menu-items { gap: 18px; }
  .menu-items li { min-height: 38px; font-size: 14px; }
}
@media (max-width: 400px) { .menu-items { grid-template-columns: 1fr; gap: 0; } .menu-items li { min-height: 34px; } }

@media (max-width: 700px) { .menu-wheat, .menu-section-inner > img { display: none; } }

/* Clickable sample images accompany each menu entry. */
.menu-items li { align-items: center; min-height: 62px; }
.menu-thumbnail { display: grid; flex: 0 0 64px; width: 64px; height: 56px; place-items: center; border-radius: 5px; background: #faf5ed; }
.menu-thumbnail img { width: 100%; height: 100%; padding: 3px; object-fit: contain; }
.menu-thumbnail:hover { background: #f4e5d6; }
.menu-thumbnail:focus-visible, .image-dialog-close:focus-visible { outline: 3px solid #a94325; outline-offset: 3px; }
.image-dialog { width: min(640px, calc(100% - 32px)); max-height: calc(100% - 32px); padding: 0; border: 0; border-radius: 8px; color: #414141; background: #fff; overscroll-behavior: contain; }
.image-dialog::backdrop { background: rgb(28 22 18 / 70%); }
.image-dialog-content { position: relative; padding: 28px; text-align: center; }
.image-dialog h2 { margin: 0 44px; font-size: clamp(22px, 4vw, 30px); font-weight: 400; }
.image-dialog-image { width: 100%; height: min(55vh, 440px); object-fit: contain; }
.image-dialog p { margin: 12px 0 0; color: #666; font-size: 14px; line-height: 1.5; }
.image-dialog-close { position: absolute; top: 12px; right: 12px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; color: #414141; background: #faf5ed; font: inherit; font-size: 28px; cursor: pointer; }
.image-dialog-close:hover { background: #f4e5d6; }
@media (max-width: 700px) { .menu-items li { min-height: 60px; } .image-dialog-content { padding: 24px 16px; } }

/* Category pictograms use Lucide's consistent outline set. */
.menu-categories a { display: inline-flex; align-items: center; gap: 7px; }
.menu-categories svg { flex: none; color: #a94325; }

/* Keep category navigation reachable below the compact sticky header. */
.menu-categories {
  position: sticky;
  top: 78px;
  z-index: 9;
  flex-wrap: nowrap;
  justify-content: safe center;
  overflow-x: auto;
  background: #fff;
  overscroll-behavior-inline: contain;
}
.menu-categories a { flex: 0 0 auto; }
.site-header.is-scrolled ~ main .menu-categories { top: 60px; }
.menu-section { scroll-margin-top: 65px; }
@media (max-width: 700px) {
  .menu-categories { top: 72px; justify-content: flex-start; }
}

.menu-categories a[aria-current="location"] {
  color: #a94325;
  background: #faf0e7;
  box-shadow: inset 0 -3px #a94325;
  font-weight: 700;
}
.menu-categories a:focus-visible { outline: 2px solid #a94325; outline-offset: -3px; }
