/* Shared platform polish; each concept retains its own visual identity. */
html {
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  color-scheme: light;
  scroll-padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}
body { overflow-wrap: break-word; }
button, a, [role="button"], summary { touch-action: manipulation; }
button, [role="button"] {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
button { min-width: 44px; min-height: 44px; }
button:active, .button:active, .btn:active { filter: brightness(.92); }
input, select, textarea { font-size: max(16px, 1rem); }
input[type="range"] { min-height: 44px; }
summary { padding-block: 8px; }
dialog {
  max-width: calc(100vw - 24px);
  max-height: calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  overscroll-behavior: contain;
}
dialog::backdrop { -webkit-backdrop-filter: blur(5px); }
html.modal-open { overflow: hidden; }
.concept { padding-top: calc(10px + env(safe-area-inset-top, 0px)); }
.concept a { flex-shrink: 0; align-self: center; }
.wrap {
  max-width: min(1440px, calc(100% - env(safe-area-inset-left, 0px) - env(safe-area-inset-right, 0px)));
}
.bw-back { min-height: 44px; }
.marquee-track { animation: none !important; }
.ba { touch-action: auto; }
.ba input[type="range"] { touch-action: pan-y; }
.step button { width: 44px; height: 44px; flex: 0 0 44px; }
.seg button { min-width: 0; }
.hero, .intro, .section-heading, .menu-header, .work-heading { min-width: 0; }
.hero > *, .intro > *, .section-heading > *, .menu-header > * { min-width: 0; }
@media (pointer: coarse) {
  input, select, textarea { font-size: 16px !important; }
  nav a:not(.bw-back) { min-height: 44px; }
  .concept { font-size: 11px; line-height: 1.5; }
  .concept a { display: inline-flex; align-items: center; min-height: 44px; }
}
@media (max-width: 600px) {
  .est .row { grid-template-columns: minmax(0, 1fr); }
  .ctrl { gap: 12px; }
  .ctrl label { font-size: 14px; }
  .seg { gap: 3px; }
  .seg button { font-size: 12px; padding-inline: 4px; }
  .fields { min-width: 0; }
  .hero .actions { row-gap: 12px; }
  .photo-stamp { left: 0; }
  .menu-tabs { gap: 8px; }
  .dish-top { flex-wrap: wrap; row-gap: 8px; }
  .hero-caption { flex-wrap: wrap; gap: 8px; }
  .booking-controls { padding-inline: 20px; }
  .range-field label { flex-wrap: wrap; row-gap: 8px; }
  .flow-row { min-width: 0; }
  .flow-row > span { flex: 0 0 35px; }
  footer { padding-bottom: calc(35px + env(safe-area-inset-bottom, 0px)); }
  .mbar ~ footer, footer:has(+ .mbar) { padding-bottom: calc(130px + env(safe-area-inset-bottom, 0px)); }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .rv, .reveal-up, .h { opacity: 1 !important; transform: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  dialog::backdrop { background: #17213a; backdrop-filter: none; -webkit-backdrop-filter: none; }
  .hdr { background: var(--bg, #f4f8fa); backdrop-filter: none; -webkit-backdrop-filter: none; }
}
