/* Limited group deals: mechanical airport flip countdown. MM · HH · DD. */
.gbc-card .gbc-price-row {
  grid-area: 2 / 1 / 3 / 2; min-width: 0;
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 5px 8px;
}
.gbc-card .gbc-price-row > .price { grid-area: auto; }
.gbc-clock {
  display: inline-flex; align-items: flex-start; gap: 3px;
  flex: 0 0 auto; font-family: var(--font-num, ui-monospace, monos);
  user-select: none;
}
.gbc-unit { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.gbc-dial {
  display: block; position: relative; width: 30px; height: 31px;
  perspective: 180px; border-radius: 4px;
  background: #262421; color: #fcf8ed;
  box-shadow: 0 1px 3px rgba(0,0,0,.22), inset 0 0 0 1px rgba(255,255,255,.12);
  font-size: 18px; line-height: 31px; font-weight: 800;
  font-variant-numeric: tabular-nums; letter-spacing: -1px;
}
.gbc-half {
  position: absolute; left: 0; width: 100%; height: 50%; overflow: hidden;
  backface-visibility: hidden; -webkit-backface-visibility: hidden;
}
.gbc-face-top, .gbc-flap-top {
  top: 0; background: #35322d; border-radius: 4px 4px 0 0;
}
.gbc-face-bottom, .gbc-flap-bottom {
  bottom: 0; background: #24221f; border-radius: 0 0 4px 4px;
}
.gbc-figure {
  display: block; position: absolute; top: 0; left: 0;
  width: 100%; height: 31px; text-align: center;
}
.gbc-face-bottom .gbc-figure, .gbc-flap-bottom .gbc-figure { top: -15.5px; }
.gbc-face-top, .gbc-face-bottom { z-index: 1; }
.gbc-flap-top { transform-origin: center bottom; z-index: 3; display: none; }
.gbc-flap-bottom { transform-origin: center top; z-index: 2; display: none; }
.gbc-dial::after {
  content: ''; position: absolute; z-index: 5; pointer-events: none;
  top: calc(50% - .5px); left: 1px; right: 1px; height: 1px;
  background: rgba(0,0,0,.8); box-shadow: 0 1px 0 rgba(255,255,255,.11);
}
.gbc-dial.gbc-animating .gbc-flap-top {
  display: block; animation: gbc-fold-out .32s ease-in both;
}
.gbc-dial.gbc-animating .gbc-flap-bottom {
  display: block; animation: gbc-fold-in .32s .32s ease-out both;
}
@keyframes gbc-fold-out { from { transform: rotateX(0deg); } to { transform: rotateX(-90deg); } }
@keyframes gbc-fold-in { from { transform: rotateX(90deg); } to { transform: rotateX(0deg); } }
.gbc-unit-label {
  font-size: 9px; font-weight: 800; letter-spacing: .6px;
  line-height: 1; color: var(--muted, #776c62);
}
/* Unit captions follow the page's actual language; dish names remain bilingual. */
html[lang^="zh"] .gbc-label-en { display: none; }
html:not([lang^="zh"]) .gbc-label-zh { display: none; }
@media (max-width: 640px) {
  /* Four flip tiles need a dedicated full-width row on 2-column phones.
     Price + add button still align at the card's bottom without overlap. */
  .gbc-card .item-foot { grid-template-rows: auto auto auto; row-gap: 4px; }
  .gbc-card .gbc-price-row { display: contents; }
  .gbc-card .gbc-price-row > .gbc-clock {
    grid-area: 2 / 1 / 3 / 3; justify-self: start;
  }
  .gbc-card .gbc-price-row > .price { grid-area: 3 / 1 / 4 / 2; }
  .gbc-card .item-attr { grid-area: 1 / 1 / 2 / 3; }
  .gbc-card .item-foot > .add-btn,
  .gbc-card .item-foot > .step { grid-area: 3 / 2 / 4 / 3; }
  .gbc-card .gbc-price-row { gap: 5px 6px; }
  .gbc-dial { width: 27px; height: 29px; font-size: 17px; line-height: 29px; }
  .gbc-figure { height: 29px; }
  .gbc-face-bottom .gbc-figure, .gbc-flap-bottom .gbc-figure { top: -14.5px; }
}
/* 320px legacy phone widths: fit three readable flips beside the add button. */
@media (max-width: 360px) {
  .gbc-clock { gap: 2px; }
  .gbc-dial { width: 19px; height: 24px; font-size: 13px; line-height: 24px; letter-spacing: -.5px; }
  .gbc-figure { height: 24px; }
  .gbc-face-bottom .gbc-figure, .gbc-flap-bottom .gbc-figure { top: -12px; }
  .gbc-unit-label { font-size: 8px; }
}
@media (max-width: 315px) {
  #cat-groupbuy .item-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .gbc-dial.gbc-animating .gbc-flap-top,
  .gbc-dial.gbc-animating .gbc-flap-bottom { animation: none; display: none; }
}