/* Consistent card dimensions and titles on both sides. */
.dish-card,
.dish-card:nth-child(3n+1) {
  position: relative;
  aspect-ratio: 3 / 2;
  min-height: 300px;
}
.dish-card-inner { position: absolute; inset: 0; }
/* Rotate the faces individually and hide the inactive face at the midpoint.
   Explicit visibility also prevents mirrored text in WebKit compositing. */
.dish-card .dish-card-inner,
.dish-card.is-flipped .dish-card-inner {
  transform: none;
  transition: none;
}
.dish-card .dish-face {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: transform .75s cubic-bezier(.2,.8,.2,1), visibility 0s .375s;
}
.dish-card .dish-front { transform: rotateY(0deg); visibility: visible; }
.dish-card .dish-back { transform: rotateY(180deg); visibility: hidden; }
.dish-card.is-flipped .dish-front { transform: rotateY(-180deg); visibility: hidden; }
.dish-card.is-flipped .dish-back { transform: rotateY(0deg); visibility: visible; }
@media (prefers-reduced-motion: reduce) {
  .dish-card .dish-face { transition: none; }
}
.dish-card .dish-face,
.dish-card:nth-child(3n+1) .dish-face { padding: 1.5rem; }
.dish-card .dish-name,
.dish-card:nth-child(3n+1) .dish-name { font-size: 2.2rem; line-height: 1.15; }
.site-footer { align-items: end; }
.menu-detail { font-size: .8rem; line-height: 1.5; margin: 0 0 1.25rem; }
.menu-offer { margin: 1.25rem 0 0; font-weight: 700; }
.dessert-heading { margin-top: 2rem; }
.instagram-link { min-height: 0; }
.order-phone { display: inline-flex; align-items: center; gap: .65rem; min-height: 44px; text-decoration: none; color: inherit; }
.order-phone svg { flex-shrink: 0; }
.order-phone small { display: block; font-size: .7rem; letter-spacing: .06em; }
.order-phone strong { display: block; font-size: 1rem; white-space: nowrap; }
.header-phone { flex-shrink: 0; }
.header-phone svg { color: var(--orange-dark); }
.menu-phone { background: var(--orange); color: var(--ink); padding: .8rem 1rem; margin-top: 1rem; }
.site-footer .footer-phone { margin-top: 1.2rem; color: var(--orange); }
.order-phone:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.mobile-dock .dock-phone { color: var(--orange); }
@media (min-width: 761px) and (max-width: 1000px) {
  .desktop-nav { gap: 1rem; margin-right: 1rem; }
}
@media (max-width: 760px) {
  .header-phone { gap: .45rem; }
  .header-phone strong { font-size: .9rem; }
  .footer-phone { gap: .4rem; }
  .footer-phone strong { font-size: .78rem; }
  .footer-phone svg { width: 16px; }
}
@media (max-width: 760px) {
  .dish-grid { grid-template-columns: minmax(0, 1fr); min-width: 0; }
  .dish-card,
  .dish-card:nth-child(3n+1) {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 3 / 2;
  }
  .dish-card .dish-face,
  .dish-card:nth-child(3n+1) .dish-face { padding: clamp(.75rem, 4vw, 1.3rem); }
  .dish-card .dish-front {
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
  .dish-card .dish-name,
  .dish-card:nth-child(3n+1) .dish-name {
    font-size: clamp(1.5rem, 6.5vw, 2.2rem);
    overflow-wrap: anywhere;
  }
  .dish-card .dish-back { overflow-y: auto; justify-content: flex-start; }
  .dish-back .dish-name { margin-bottom: .6rem; flex-shrink: 0; }
  .dish-back p { font-size: clamp(.8rem, 3.5vw, .91rem); line-height: 1.4; flex-shrink: 0; }
}
