/* Interaction styles, shared by every page. Content never depends on animation. */
.button,.text-link,.item-card,.value-grid article,.dish,.back-to-top {
  transition: background-color .22s ease, color .22s ease, border-color .22s ease,
    box-shadow .25s ease, transform .25s ease;
}
@media (hover: hover) and (pointer: fine) {
  .button:hover { transform: translateY(-2px); box-shadow: 0 7px 18px #30292216; }
  .text-link:hover { transform: translateX(3px); }
  .item-card:hover,.value-grid article:hover { transform: translateY(-5px); border-color: var(--accent); }
  .dish:hover { background-color: #91634f08; border-color: var(--accent); }
  .back-to-top:hover { transform: translateY(-3px); background: var(--accent); color: white; }
}
.button:active,.back-to-top:active { transform: translateY(1px); }
.back-to-top {
  position: fixed;
  right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom));
  z-index: 8;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 62px;
  border: 1px solid var(--line);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 3px 18px #30292218;
  line-height: 1.1;
}
.back-to-top>span:first-child { font-size: 24px; }
.top-label { font: 9px/1.5 Arial,sans-serif; letter-spacing: .13em; margin-top: 5px; }
.site-footer { padding-bottom: 100px; }
.nav-icon { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.nav-icon>span { display: block; width: 22px; height: 1px; background: currentColor; transition: transform .22s ease, opacity .22s ease; }
.nav-toggle[aria-expanded=true] .nav-icon>span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded=true] .nav-icon>span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded=true] .nav-icon>span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media(max-width:760px) {
  .site-header .nav-toggle:not([hidden]) { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; padding: 10px; }
  .site-header .nav-toggle span { margin: 0; }
  .site-header nav.is-open { gap: 0; }
  .site-header nav.is-open a { flex: 1 1 50%; min-height: 46px; padding: 13px 0; }
  .back-to-top { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 48px; height: 54px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto!important; }
  *,*::before,*::after { animation: none!important; transition: none!important; }
  .button:hover,.button:active,.text-link:hover,.item-card:hover,
  .value-grid article:hover,.back-to-top:hover,.back-to-top:active { transform: none; }
}
