/* Additional motion; original layout, imagery and content are preserved. */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { overflow-x: clip; }
section[id] { scroll-margin-top: 96px; }
.mizuya-hero-image { animation: mizuya-zoom 18s ease-in-out infinite alternate; transform-origin: 56% 50%; }
.mizuya-reveal { opacity: 0; transform: translate3d(var(--reveal-x, 0px), 100px, 0) scale(.93); transition: opacity 1s ease, transform 1.15s cubic-bezier(.16,1,.3,1); transition-delay: var(--reveal-delay, 0ms); }
.mizuya-reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0) scale(1); }
.mizuya-hero-enter { animation: mizuya-rise 1.25s cubic-bezier(.16,1,.3,1) both; animation-delay: var(--hero-delay, 0ms); }
[data-slot="dialog-trigger"] { cursor: pointer; }
[data-slot="dialog-trigger"]:focus-visible { outline: 3px solid #C1442E; outline-offset: 5px; }
[data-slot="dialog-close"] { background: #1a1a1a; color: #fff; padding: 10px; border-radius: 50%; opacity: 1; }
[data-slot="dialog-content"] { max-height: 90dvh; overflow-y: auto; }
[data-slot="dialog-content"] img { max-height: 82dvh; object-fit: contain; }
[data-slot="dialog-content"][data-state="open"] { animation-duration: 450ms; }
[data-slot="accordion-content"] { animation-duration: 380ms; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  a > button, header a { transition: transform .35s ease, box-shadow .35s ease, background-color .25s ease; }
  a > button:hover { transform: translateY(-6px) scale(1.035); box-shadow: 0 12px 24px #0003; }
  [data-slot="dialog-trigger"] img { transition: transform .8s cubic-bezier(.16,1,.3,1); }
  [data-slot="dialog-trigger"]:hover img { transform: scale(1.09); }
}
@keyframes mizuya-zoom { from { transform: scale(1.03); } to { transform: scale(1.23); } }
@keyframes mizuya-rise { from { opacity: 0; transform: translate3d(0, 82px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@media (max-width: 767px) {
  .mizuya-reveal { transform: translate3d(0, 76px, 0) scale(.94); }
  html { scroll-padding-top: 80px; }
  section[id] { scroll-margin-top: 80px; }
  [data-loc="client/src/pages/Home.tsx:182"] { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0ms !important; }
  .mizuya-reveal { opacity: 1; transform: none; }
}

/* Advance-order guidance in the menu section. */
.mizuya-order-note { max-width: 52rem; margin: -1rem auto 2.5rem; text-align: left; color: #3d3832; font-size: 1rem; line-height: 1.9; }
.mizuya-order-note p + p { margin-top: 1rem; }
.mizuya-order-note p:last-child { margin-top: 1.5rem; font-size: .875rem; }

/* Seating photographs and captions. */
.mizuya-reason-description { font-size: 1rem; line-height: 1.85; }
.mizuya-seating-grid { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; }
.mizuya-seat-card { flex: 0 1 calc((100% - 3rem) / 3); min-width: 0; overflow: hidden; border: 1px solid #e9e1d4; border-radius: .65rem; background: #faf7f1; text-align: left; color: #1a1a1a; }
.mizuya-seat-image { display: block; aspect-ratio: 4 / 3; overflow: hidden; background: #f2eee7; }
.mizuya-seat-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.mizuya-seat-caption { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1.2rem; }
.mizuya-seat-name { font-size: 1.125rem; font-weight: 700; }
.mizuya-seat-capacity { flex-shrink: 0; color: #8f3525; font-size: .875rem; }
@media (max-width: 1023px) { .mizuya-seat-card { flex-basis: calc((100% - 1.5rem) / 2); } }
@media (max-width: 639px) { .mizuya-seat-card { flex-basis: 100%; } }
