/* Global reset, base element styles, safe-area & touch tweaks */

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
  max-width: 100vw;
  overflow-x: hidden;
}
body {
  background: var(--espresso);
  color: var(--cream);
  font-family: var(--sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  -webkit-touch-callout: none;
  transition: opacity 120ms var(--ease-out);
}
body.language-transitioning {
  opacity: 0;
}
::selection {
  background: var(--gold);
  color: var(--espresso);
}
::-webkit-scrollbar {
  width: 5px;
}
::-webkit-scrollbar-track {
  background: var(--espresso);
}
::-webkit-scrollbar-thumb {
  background: var(--surface-hi);
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--gold-deep);
}
a {
  color: inherit;
  text-decoration: none;
}
img {
  display: block;
  max-width: 100%;
}
:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 3px;
}
/* ===== Responsive ===== */
* {
  -webkit-tap-highlight-color: rgba(199, 160, 89, 0.18);
}
@supports (-webkit-overflow-scrolling: touch) {
  .gallery-row,
  .menu-rail-mobile {
    -webkit-overflow-scrolling: touch;
  }
}
@supports (padding: max(0px)) {
  .nav-inner {
    padding-left: max(1.25rem, env(safe-area-inset-left));
    padding-right: max(1.25rem, env(safe-area-inset-right));
  }
  .hero-content {
    padding-left: max(1.25rem, env(safe-area-inset-left));
    padding-right: max(1.25rem, env(safe-area-inset-right));
  }
  .gallery-stage,
  .full-menu-head,
  .menu-layout,
  .menu-rail-mobile,
  .visit,
  .newsletter,
  .footer {
    padding-left: max(1.25rem, env(safe-area-inset-left));
    padding-right: max(1.25rem, env(safe-area-inset-right));
  }
}
