:root {
  --black: #0b0b0b;
  --white: #ffffff;
  --green: #2fb344;
  --green-dark: #279a3a;
  --green-price: #16a34a;
  --discount: #2ecc71;
  --yellow: #ffc928;
  --star: #f5a623;
  --red: #e1251b;
  --ink: #1a1a1a;
  --muted: #8a8a8a;
  --line: #ececec;
  --panel: #ededed;
  --header-h: 64px;
  --tabbar-h: 66px;
  --gutter: 12px;
  --radius: 14px;
  --font: 'Montserrat', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--white);
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  padding-top: var(--header-h);
  padding-bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom));
}

body.is-locked { overflow: hidden; }

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

button { font-family: inherit; color: inherit; cursor: pointer; border: none; background: none; padding: 0; }

input { font-family: inherit; }

h1, h2, h3, p { margin: 0; }

ul { list-style: none; margin: 0; padding: 0; }

.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }

.icon { width: 24px; height: 24px; display: inline-block; vertical-align: middle; flex: none; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

img.is-placeholder { object-fit: cover; opacity: .85; }
