/* Shared public-site interaction states. No layout shifts on hover. */
a, button {
  -webkit-tap-highlight-color: #dfb74d55;
  transition: color 160ms ease, background-color 160ms ease,
    border-color 160ms ease, text-decoration-color 160ms ease;
}
nav a:not(.visit-link), .hero-foot a, footer a,
.food-menu-heading a:not(.text-link), #kitchen-content a {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: .25em;
  text-decoration-thickness: 1px;
}
a:focus-visible, button:focus-visible, [tabindex="0"]:focus-visible {
  outline: 3px solid #aa4d2e;
  outline-offset: 5px;
}
.visit a:focus-visible { outline-color: var(--gold); }
.button:focus-visible { background: #395442; }
.button.cream:focus-visible { background: var(--gold); color: var(--ink); }
.visit-link:focus-visible, .more:focus-visible {
  background: var(--ink); color: var(--cream);
}
.text-link:focus-visible { color: #8c3e24; border-color: currentColor; }
.filters button:focus-visible { border-color: var(--ink); }
@media (hover: hover) {
  nav a:not(.visit-link):hover, .hero-foot a:hover, footer a:hover,
  .food-menu-heading a:not(.text-link):hover, #kitchen-content a:hover {
    color: #8c3e24;
    text-decoration-color: currentColor;
  }
  .brand:hover { color: #8c3e24; }
  .visit-link:hover, .more:hover {
    background: var(--ink); color: var(--cream);
  }
  .button:hover { background: #395442; border-color: #395442; }
  .button.cream:hover { background: var(--gold); color: var(--ink); }
  .text-link:hover { color: #8c3e24; border-color: currentColor; }
  .visit-details a:hover { color: var(--gold); border-color: var(--gold); }
  .filters button:not(.active):hover {
    background: #20392f10; border-color: var(--ink);
  }
  .filters button.active:hover { background: #395442; }
}
a:active, button:not(:disabled):active { transition-duration: 0ms; }
.button:active, .visit-link:active, .more:active { filter: brightness(.9); }
@media (prefers-reduced-motion: reduce) {
  a, button { transition: none; }
}
