.order-fab {
  position: fixed;
  right: max(28px, env(safe-area-inset-right, 0px));
  bottom: calc(28px + env(safe-area-inset-bottom, 0px));
  z-index: 16;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 60px;
  padding: 13px 24px;
  border: 1px solid #ffffff45;
  border-radius: 999px;
  background: #555c38;
  color: #fffdf5;
  box-shadow: 0 6px 24px #201b2038;
  text-shadow: none;
  transition: background .2s, transform .2s;
}
.order-fab svg { flex: none; width: 25px; height: 25px; }
.order-fab-copy { display: grid; gap: 4px; }
.order-fab strong { font-size: 11px; font-weight: 600; letter-spacing: 1.1px; text-transform: uppercase; }
.order-fab small { font-size: 10px; letter-spacing: .3px; }
.order-fab:hover { background: #41482a; transform: translateY(-2px); }
.order-fab:focus-visible { outline: 3px solid #fffdf5; outline-offset: 4px; box-shadow: 0 0 0 7px #40382e; }
body.menu-open .order-fab, body.detail-open .order-fab { visibility: hidden; }
.footer { padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
@media (max-width: 480px) {
  .order-fab {
    left: max(16px, env(safe-area-inset-left, 0px));
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    min-height: 58px;
    padding: 12px 20px;
  }
  .scene .caption { bottom: calc(24% + env(safe-area-inset-bottom, 0px)); }
  .scene .scroll-cue { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}
