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

html, body {
  width: 100%;
  height: 100%;
  background: #000;
  overflow: hidden;
}

/* ===== MENU PAGE ===== */

.menu-bg {
  width: 100%;
  height: 100%;
  position: relative;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

.menu-bg img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ===== BADGE CONTAINERS ===== */

.badge-spot {
  position: absolute;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.badge-spot:empty,
.badge-spot:not(:has(.badge)) {
  display: none;
}

/* ===== BADGE STYLES ===== */

.badge {
  font-family: 'Maven Pro', 'Arial Black', Arial, sans-serif;
  font-weight: 900;
  color: white;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  letter-spacing: 0.04em;
}

/* SOLD OUT — covers the price area */
.badge--sold-out {
  background: rgba(220,38,38,1);
  width: 17.5vw;
  height: 5.5vw;
  padding: 1.6vw 5.1vw;
  font-size: 2.9vw;
  border-radius: 0.4vw;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  white-space: nowrap;
  border: 4px solid #ffffff;
}

/* X LEFT — smaller tag next to price */
.badge--low-stock {
  background: rgba(245,158,11,1);
  width: 7.5vw;
  height: 3vw;
  padding: 0.4vw 1.2vw;
  font-size: 1.6vw;
  border-radius: 0.3vw;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  white-space: nowrap;
  border: 4px solid #ffffff;
}

/* ===== SINGLE-PRODUCT PAGES (backward compat) ===== */

#badge {
  width: 100%;
  height: 100%;
}

#badge:empty {
  display: none;
}

#badge .badge {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 0;
  font-family: "Arial Black", Arial, sans-serif;
  font-size: 30vmin;
  font-weight: 900;
  letter-spacing: 0.08em;
}
