/* Shared navigation and interactions for the static Motonoyu pages. */
html { scroll-behavior: smooth; }
body { min-width: 0; }
img { max-width: 100%; }
a, button { touch-action: manipulation; }
:focus-visible { outline: 3px solid #975e24; outline-offset: 4px; }
.rightMenu, .sidebar.secondary, .sidebar.main { display: none !important; }
.drawer-hamburger {
  display: block !important; position: fixed; inset: 14px 16px auto auto !important;
  z-index: 100002; width: 52px; height: 52px; padding: 12px;
  border: 1px solid #c7bfae; border-radius: 4px; background: #fff; color: #554b3b;
  cursor: pointer; box-sizing: border-box;
}
.drawer-hamburger-icon, .drawer-hamburger-icon::before, .drawer-hamburger-icon::after {
  display: block; position: absolute; width: 26px; height: 2px; background: currentColor;
  transition: transform .2s; left: 12px; top: 24px;
}
.drawer-hamburger-icon::before { content: ''; left: 0; top: -8px; }
.drawer-hamburger-icon::after { content: ''; left: 0; top: 8px; }
body.menu-open .drawer-hamburger-icon { background: transparent; }
body.menu-open .drawer-hamburger-icon::before { top: 0; transform: rotate(45deg); }
body.menu-open .drawer-hamburger-icon::after { top: 0; transform: rotate(-45deg); }
.drawer-nav {
  display: none !important; position: fixed !important; inset: 0 0 0 auto !important;
  width: min(420px, 100%) !important; height: 100dvh !important; max-height: 100vh;
  overflow: auto !important; padding: 76px 24px 100px !important; margin: 0;
  z-index: 100001 !important; background: #faf8f3 !important;
  transform: none !important; box-sizing: border-box;
}
body.menu-open { overflow: hidden; }
body.menu-open .drawer-nav { display: block !important; }
.drawer-nav .drawer-menu { padding: 0; text-align: center; }
.drawer-nav .spNavSquare { display: block; margin: 24px 0; }
.drawer-nav .spNavSquare li { width: 100%; float: none; border-bottom: 1px solid #ddd4c5; }
.drawer-nav .spNavSquare a { display: block; padding: 12px; color: #403b33; font-size: 16px; }
.drawer-nav .logo { width: 180px; height: auto; }
.drawer-nav .spNavAccess { display: block; color: #fff; background: #476353; padding: 12px; margin: 12px 0; }
.drawer-nav .site-reservation { display: block; color: #fff; background: #b55123; padding: 12px; margin: 12px 0; font-size: 16px; }
.menu-backdrop { position: fixed; inset: 0; z-index: 100000; background: #0007; border: 0; }
.menu-backdrop[hidden] { display: none; }
.floating-banner { z-index: 100; max-width: min(360px, 40vw); }
.floating-banner img.pc, .floating-banner img.PC { max-width: 100%; height: auto; }
.spFixedWrapper { z-index: 9999 !important; }
.spFixedWrapper a { width: 25% !important; background-image: none !important; display: flex !important; align-items: center; justify-content: center; }
.spFixedWrapper a p { position: static !important; margin: 0 !important; font-size: 13px !important; line-height: 1.4; }
.spFixedWrapper a:nth-child(1) { background: #b55123 !important; }
.spFixedWrapper a:nth-child(2) { background: #916a31 !important; }
.spFixedWrapper a:nth-child(3) { background: #766842 !important; }
.spFixedWrapper a:nth-child(4) { background: #476353 !important; }
.mainNextWrapper { background-size: cover; background-position: center; }
.slider { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px; padding-bottom: 12px; }
.slider > * { flex: 0 0 calc(25% - 12px); scroll-snap-align: start; float: none !important; }
[data-fancybox] { cursor: zoom-in; }
.motonoyu-lightbox { max-width: 94vw; max-height: 94dvh; margin: auto; overflow: auto; padding: 52px 16px 16px; background: #171717; color: #fff; border: 0; border-radius: 6px; }
.motonoyu-lightbox::backdrop { background: #000c; }
.motonoyu-lightbox img { display: block; width: auto; max-width: 100%; max-height: 65dvh; object-fit: contain; margin: auto; }
.motonoyu-lightbox button { background: #fff; color: #222; border: 0; padding: 8px 16px; cursor: pointer; border-radius: 3px; font-size: 16px; }
.motonoyu-lightbox .close { position: absolute; top: 10px; right: 12px; }
.motonoyu-lightbox .controls { display: flex; justify-content: center; align-items: center; gap: 20px; margin-top: 12px; }
.motonoyu-lightbox .controls[hidden] { display: none; }
.motonoyu-lightbox .caption { position: static; width: auto; text-align: center; margin: 12px 0; font-size: 14px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
@media (max-width: 767px) {
  body { padding-bottom: calc(65px + env(safe-area-inset-bottom)); overflow-x: hidden; }
  .floating-banner { display: none; }
  .mainNextWrapper, .honbunWrapper, .body { min-width: 0 !important; max-width: 100%; }
  .mainNextWrapper { width: 100% !important; }
  .slider > * { flex-basis: 85%; }
  .spFixedWrapper { padding-bottom: env(safe-area-inset-bottom); height: auto !important; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
