:root{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#5c4130;background:#fdf2da;--ink:#5c4130;--muted:#6f6259;--burgundy:#690108;--burgundy-dark:#4e0106;--header:#fdf2da;--paper:#fffdf8;--line:#dfd4c3;--soft:#f0d6b3;--accent:#5c4130;--warm:#f0d6b3}*{box-sizing:border-box}body{margin:0;background:#f5f0e6;color:var(--ink)}header{display:flex;justify-content:flex-start;gap:12px;align-items:center;padding:22px max(5%,calc((100% - 980px)/2));background:var(--header);border-bottom:1px solid #dbcdbb;color:var(--burgundy)}.brand-mark{width:48px;height:48px;object-fit:contain;border-radius:8px}header small{margin-left:auto}header b{font-family:Georgia,'Noto Serif SC',serif;font-size:24px;letter-spacing:.03em}header span{display:block;font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:12px;letter-spacing:.18em;color:#3b2921}header small{max-width:220px;color:#766357;text-align:right}nav{display:flex;gap:8px;overflow:auto;padding:14px max(5%,calc((100% - 980px)/2));background:#f5f0e6;border-bottom:1px solid #e5d8c8}nav button{background:var(--paper);color:#5c3b32;border:1px solid #c8b3a0;border-radius:999px;white-space:nowrap}nav button:hover,nav button:focus-visible{background:#f3e7dc;color:var(--burgundy)}button{cursor:pointer;border:0;border-radius:10px;background:var(--burgundy);color:white;padding:12px 16px;font-size:15px;font-weight:700}button:hover{background:var(--burgundy-dark)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:not-allowed}main{max-width:1020px;margin:24px auto;padding:0 20px 32px}h1,h2{font-family:Georgia,'Noto Serif SC',serif;color:var(--burgundy)}h1{font-size:clamp(28px,5vw,36px);margin:16px 0}h2{font-size:23px}h3{color:#603b31}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.card{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:22px;margin:12px 0;box-shadow:0 5px 18px #4b302008}.row{display:flex;gap:10px;justify-content:space-between;align-items:center;flex-wrap:wrap}.actions{display:flex;gap:10px;flex-wrap:wrap}label{display:block;margin:12px 0;font-size:14px;font-weight:650;color:#5c3b32}input,select,textarea{display:block;width:100%;padding:12px;border:1px solid #c7b6a3;border-radius:9px;background:white;margin-top:5px;color:#35241c;font:inherit}textarea{min-height:90px;resize:vertical}input[type=number]{max-width:180px}small,.muted{color:var(--muted)}.muted{line-height:1.55}.price{font-weight:800;font-size:20px;color:var(--burgundy)}.cartbar{position:sticky;bottom:0;background:linear-gradient(120deg,#fff8ed,#fff1ec);border:1px solid #e7ccbb;border-radius:14px;padding:15px;margin-top:20px;box-shadow:0 5px 18px #4b302014}#message{position:fixed;z-index:20;left:50%;bottom:22px;transform:translateX(-50%);width:min(92vw,440px);background:#f7ecdd;color:#472b26;box-shadow:0 12px 40px #301a1b35;border-left:5px solid var(--burgundy);border-radius:12px;padding:0}#message:not(:empty){padding:16px 18px}a{color:var(--burgundy);text-underline-offset:3px}.tag{font-size:12px;background:#eee4d5;color:#67463b;border-radius:20px;padding:5px 10px}.notice{border-left:4px solid #b58b59;background:var(--warm);padding:12px 14px;border-radius:4px;margin:12px 0;font-size:13px}.status{background:#eee4d5;border:1px solid #d4bfaa;border-radius:12px;padding:15px;line-height:1.5}.section-title{color:var(--burgundy)}@media(max-width:690px){header{padding:17px 5%}header b{font-size:21px}header small{max-width:130px;font-size:11px}nav{padding:12px 5%}main{margin:16px auto;padding:0 15px 24px}.grid{grid-template-columns:1fr}.card{padding:18px}h1{font-size:29px}#message{bottom:12px}}


/* QI BENTO REWARDS SIGN OUT 2026-10-18 */
header .rewards-signout {
  margin-left: auto;
  padding: 7px 10px;
  font-size: 12px;
  line-height: 1.2;
  border-radius: 8px;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Consent controls stay compact and place the checkbox before its wording. */
.consent-choice {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  cursor: pointer;
}

.consent-choice input[type="checkbox"] {
  display: inline-block;
  width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
  accent-color: var(--burgundy);
}

.consent-choice span { line-height: 1.35; }
.consent-confirmed input[type="checkbox"] { opacity: 1; cursor: default; }

@media (max-width: 690px) {
  header .rewards-signout {
    padding: 6px 8px;
    font-size: 11px;
  }
}

/* Qi Bento customer dashboard mascot */
.customer-rewards-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.customer-rewards-heading h1 {
  margin: 0;
}

.customer-owner-mascot {
  width: 120px;
  height: 120px;
  object-fit: contain;
  flex-shrink: 0;
}

@media (max-width: 690px) {
  .customer-owner-mascot {
    width: 85px;
    height: 85px;
  }
}

/* Qi Bento customer mascot animation V3 */
.qi-chef-motion {
  width: min(220px, 42vw);
  margin: 14px auto;
  pointer-events: none;
}

.qi-chef-motion video {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 14px;
}

.rewards-hero .qi-chef-motion {
  margin: 18px auto 0;
}

.qi-chef-menu {
  width: min(160px, 36vw);
  margin: 8px 0 12px;
}

.customer-rewards-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.customer-owner-mascot {
  width: 120px;
  height: 120px;
  object-fit: contain;
  flex-shrink: 0;
}

@media (max-width: 690px) {
  .qi-chef-motion {
    width: min(170px, 44vw);
  }

  .qi-chef-menu {
    width: min(125px, 32vw);
  }

  .customer-owner-mascot {
    width: 85px;
    height: 85px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .qi-chef-motion video {
    animation: none !important;
  }
}


/* Qi Bento transparent menu mascot V4 */
.qi-menu-mascot-v4 {
  width: min(210px, 38vw);
  margin: 8px 0 16px;
  pointer-events: none;
}

.qi-menu-mascot-v4 img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

@media (max-width: 690px) {
  .qi-menu-mascot-v4 {
    width: min(145px, 36vw);
    margin: 8px 0 12px;
  }
}

/* Qi Bento thumbs-up mascot — bounce and sway */
@keyframes qiThumbsUpMotion {
  0%, 100% {
    transform: translateY(0) rotate(0deg);
  }

  12% {
    transform: translateY(-10px) rotate(-3deg);
  }

  24% {
    transform: translateY(0) rotate(2deg);
  }

  36% {
    transform: translateY(-5px) rotate(-2deg);
  }

  48% {
    transform: translateY(0) rotate(0deg);
  }

  65% {
    transform: translateY(0) rotate(2deg);
  }

  82% {
    transform: translateY(0) rotate(-2deg);
  }
}

.customer-owner-mascot {
  animation: qiThumbsUpMotion 4s ease-in-out infinite;
  transform-origin: center bottom;
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  .customer-owner-mascot {
    animation: none !important;
    transform: none !important;
  }
}

/* QI BENTO — PREMIUM FOODIE BONANZA */
.premium-bonanza {
  background: linear-gradient(145deg,#fffdf8,#fff2e4);
  border: 1px solid #d8b477;
  border-radius: 24px;
  padding: clamp(18px,4vw,30px);
  box-shadow: 0 12px 32px rgba(83,30,38,.10);
  overflow: hidden;
}

.bonanza-eyebrow {
  color: #a07839;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1.5px;
  margin-bottom: 14px;
}

.bonanza-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.bonanza-header h2 {
  color: #69232e;
  font-size: clamp(21px,4vw,30px);
  line-height: 1.15;
  margin: 0 0 8px;
}

.bonanza-header p {
  color: #806c61;
  font-size: 13px;
  margin: 0;
}

.bonanza-count {
  background: #702631;
  color: #ffe4a7;
  border-radius: 17px;
  min-width: 86px;
  padding: 11px;
  text-align: center;
  flex-shrink: 0;
}

.bonanza-count strong {
  font-size: 34px;
  line-height: 1;
}

.bonanza-count span { font-size: 17px; }

.bonanza-count small {
  display: block;
  font-size: 10px;
  letter-spacing: 1px;
  margin-top: 4px;
}

.bonanza-progress {
  height: 10px;
  border-radius: 20px;
  background: #e8d6b7;
  margin: 23px 0 13px;
  overflow: hidden;
}

.bonanza-progress-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,#a77432,#e6bd71);
}

.bonanza-stamps {
  display: grid;
  grid-template-columns: repeat(10,minmax(0,1fr));
  gap: 5px;
}

.bonanza-stamp {
  aspect-ratio: 1;
  border-radius: 50%;
  border: 1px solid #d9bc8c;
  display: grid;
  place-items: center;
  background: #fffaf0;
  color: #956c48;
  font-weight: 700;
  font-size: 12px;
}

.bonanza-stamp.earned {
  background: #782833;
  border-color: #782833;
  color: #ffe0a4;
}

.bonanza-next {
  color: #7a584b;
  font-size: 13px;
  font-weight: 600;
  margin: 16px 0;
}

.bonanza-daily-rule {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 13px;
  background: #f8ead5;
  border: 1px solid #ead0a8;
  border-radius: 13px;
  color: #684b3b;
  font-size: 12px;
  line-height: 1.6;
  margin-bottom: 23px;
}

.bonanza-daily-rule > span:first-child {
  color: #ad7b36;
  font-size: 23px;
}

.bonanza-section-title {
  color: #69232e;
  font-size: 17px;
  margin: 0 0 13px;
}

.bonanza-milestones {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
}

.bonanza-milestone {
  min-width: 0;
  border: 1px solid #ead7b8;
  border-radius: 16px;
  background: rgba(255,255,255,.8);
  padding: 16px 9px;
  text-align: center;
}

.bonanza-milestone.reached {
  background: #fff0ce;
  border-color: #c49b56;
}

.bonanza-milestone-icon {
  display: block;
  font-size: 25px;
  color: #b18443;
  margin-bottom: 8px;
}

.bonanza-milestone-visit {
  display: block;
  color: #946631;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 1px;
  margin-bottom: 9px;
}

.bonanza-milestone strong {
  display: block;
  color: #662731;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.bonanza-milestone small {
  display: block;
  color: #947761;
  margin-top: 5px;
}

.bonanza-milestone-status {
  display: block;
  color: #927a64;
  font-size: 10px;
  margin-top: 10px;
}

.bonanza-footnote,
.bonanza-existing {
  color: #826b60;
  font-size: 12px;
  margin: 17px 0 0;
}

@media (max-width:520px) {
  .premium-bonanza { padding: 18px 12px; }
  .bonanza-header h2 { font-size: 21px; }
  .bonanza-count { min-width: 75px; padding: 9px; }
  .bonanza-count strong { font-size: 28px; }
  .bonanza-stamps { gap: 3px; }
  .bonanza-stamp { font-size: 10px; }
  .bonanza-milestones { gap: 6px; }
  .bonanza-milestone { padding: 13px 5px; }
}

/* QI_BENTO_RESPONSIVE_CSS_2026 */

html.qi-premium-rewards {
  --qi-wine: #682638;
  --qi-wine-dark: #471826;
  --qi-gold: #c39a57;
  --qi-gold-light: #f4e0b8;
  --qi-cream: #fff9f1;
  --qi-ink: #382a2a;
  --qi-muted: #806d68;
  --qi-border: #eadbc8;
  --qi-shadow: 0 10px 30px rgba(76, 37, 33, .08);

  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

html.qi-premium-rewards *,
html.qi-premium-rewards *::before,
html.qi-premium-rewards *::after {
  box-sizing: border-box;
}

html.qi-premium-rewards body {
  margin: 0;
  min-width: 0;
  background:
    radial-gradient(
      circle at 100% 0%,
      rgba(195,154,87,.12),
      transparent 36%
    ),
    linear-gradient(180deg,#fffaf4,#f7eee5);

  color: var(--qi-ink);

  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    "Noto Sans SC",
    Arial,
    sans-serif;

  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}

html.qi-premium-rewards main {
  width: 100%;
  max-width: 1240px;
  margin-inline: auto;
  padding: clamp(15px,3vw,30px);
  min-width: 0;
}

html.qi-premium-rewards main > * {
  min-width: 0;
}

html.qi-premium-rewards h1,
html.qi-premium-rewards h2,
html.qi-premium-rewards h3 {
  color: var(--qi-wine);
  line-height: 1.25;
  letter-spacing: -.025em;
}

html.qi-premium-rewards h1 {
  font-size: clamp(25px,4vw,40px);
}

html.qi-premium-rewards h2 {
  font-size: clamp(21px,3vw,29px);
}

html.qi-premium-rewards h3 {
  font-size: clamp(17px,2.5vw,22px);
}

html.qi-premium-rewards p {
  overflow-wrap: anywhere;
}

html.qi-premium-rewards img,
html.qi-premium-rewards video {
  max-width: 100%;
  height: auto;
}

html.qi-premium-rewards a {
  text-underline-offset: 3px;
}

html.qi-premium-rewards :is(
  .site-header,
  .app-header,
  body > header
) {
  background:
    linear-gradient(
      135deg,
      var(--qi-wine-dark),
      var(--qi-wine)
    );

  color: #fff9eb;
  border-bottom: 2px solid var(--qi-gold);
}

html.qi-premium-rewards :is(
  .site-header,
  .app-header,
  body > header
) a {
  color: #fff2d6;
}

html.qi-premium-rewards .card:not(.premium-bonanza),
html.qi-premium-rewards :is(
  .panel,
  .product-card,
  .menu-card,
  .coupon-card,
  .voucher-card,
  .wallet-card,
  .order-card,
  .member-card
) {
  min-width: 0;
  background: #fffdf9;
  border: 1px solid var(--qi-border);
  border-radius: 20px;
  box-shadow: var(--qi-shadow);
  overflow-wrap: anywhere;
}

html.qi-premium-rewards .card:not(.premium-bonanza) {
  padding: clamp(16px,2.5vw,25px);
}

html.qi-premium-rewards :is(
  .product-card,
  .menu-card,
  .coupon-card,
  .voucher-card,
  .wallet-card,
  .order-card
) {
  padding: 16px;
}

html.qi-premium-rewards :is(
  .menu-grid,
  .product-grid,
  .products-grid
) {
  display: grid;
  grid-template-columns: repeat(
    3,
    minmax(0,1fr)
  );
  gap: 16px;
}

html.qi-premium-rewards :is(
  .tabs,
  .nav-tabs,
  .tab-bar
) {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 9px;
}

html.qi-premium-rewards button,
html.qi-premium-rewards [role="button"] {
  font-family: inherit;
  min-height: 44px;
  max-width: 100%;
  border-radius: 12px;
  cursor: pointer;
  touch-action: manipulation;
}

html.qi-premium-rewards :is(
  button[type="submit"],
  .btn-primary,
  .primary-button
) {
  background: var(--qi-wine);
  color: #fff9ef;
  border: 1px solid var(--qi-wine);
  font-weight: 700;
}

html.qi-premium-rewards :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
  select,
  textarea
) {
  max-width: 100%;
  min-height: 44px;
  font-family: inherit;
  font-size: 16px;
  border-radius: 11px;
  border: 1px solid #d8c7b5;
}

html.qi-premium-rewards textarea {
  min-height: 90px;
}

html.qi-premium-rewards :is(
  button,
  a,
  input,
  select,
  textarea
):focus-visible {
  outline: 3px solid var(--qi-gold);
  outline-offset: 3px;
}

html.qi-premium-rewards button:disabled {
  opacity: .55;
  cursor: not-allowed;
}

html.qi-premium-rewards table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

html.qi-premium-rewards .premium-bonanza {
  border: 1px solid var(--qi-gold);
  border-radius: 24px;
  background:
    linear-gradient(145deg,#fffdf8,#fff0dd);
  box-shadow: 0 14px 35px rgba(104,38,56,.12);
}

html.qi-premium-rewards .bonanza-stamp {
  transition:
    transform .2s ease,
    background-color .2s ease;
}

html.qi-premium-rewards .bonanza-stamp.earned {
  background: var(--qi-wine);
  color: #ffe2a6;
  border-color: var(--qi-wine);
}

html.qi-premium-rewards .bonanza-milestone {
  min-width: 0;
  border-radius: 16px;
}

html.qi-premium-rewards .bonanza-daily-rule {
  border-left: 4px solid var(--qi-gold);
}

@media (hover:hover) {
  html.qi-premium-rewards button:not(:disabled):hover {
    filter: brightness(1.05);
  }

  html.qi-premium-rewards .bonanza-stamp.earned:hover {
    transform: translateY(-2px);
  }
}

@media (max-width:1024px) {
  html.qi-premium-rewards :is(
    .menu-grid,
    .product-grid,
    .products-grid
  ) {
    grid-template-columns: repeat(
      2,
      minmax(0,1fr)
    );
  }
}

@media (max-width:600px) {
  html.qi-premium-rewards main {
    padding: 14px;
  }

  html.qi-premium-rewards .card:not(.premium-bonanza) {
    border-radius: 17px;
    padding: 16px;
  }

  html.qi-premium-rewards :is(
    .menu-grid,
    .product-grid,
    .products-grid
  ) {
    grid-template-columns: minmax(0,1fr);
    gap: 12px;
  }

  html.qi-premium-rewards .bonanza-stamps {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 8px;
  }

  html.qi-premium-rewards .bonanza-stamp {
    font-size: 12px;
  }

  html.qi-premium-rewards .bonanza-milestones {
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 9px;
  }

  html.qi-premium-rewards .bonanza-milestone:last-child {
    grid-column: 1 / -1;
  }

  html.qi-premium-rewards .premium-bonanza {
    padding: 18px 14px;
  }
}

@media (max-width:350px) {
  html.qi-premium-rewards .bonanza-milestones {
    grid-template-columns: minmax(0,1fr);
  }

  html.qi-premium-rewards .bonanza-milestone:last-child {
    grid-column: auto;
  }
}

@supports (padding-bottom: env(safe-area-inset-bottom)) {
  html.qi-premium-rewards body {
    padding-bottom: env(safe-area-inset-bottom);
  }
}

@media (prefers-reduced-motion:reduce) {
  html.qi-premium-rewards *,
  html.qi-premium-rewards *::before,
  html.qi-premium-rewards *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}


/* QI_BENTO_REWARD_NUMBERS_2026 */

.premium-bonanza .bonanza-stamp.bonanza-reward-number {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  border: 2px solid #c39a57;
  background: #fff0cc;
  color: #702631;
  box-shadow: inset 0 0 0 2px #fffaf0;
}

.premium-bonanza .bonanza-stamp-number {
  font-weight: 800;
  font-size: clamp(12px, 1.4vw, 17px);
  line-height: 1;
}

.premium-bonanza .bonanza-stamp-reward-value {
  display: block;
  font-size: clamp(8px, .9vw, 10px);
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: -.2px;
}

.premium-bonanza .bonanza-stamp.bonanza-reward-number.earned {
  background: #702631;
  border-color: #c39a57;
  color: #ffe4ac;
}

@media (max-width: 600px) {
  .premium-bonanza .bonanza-stamp-reward-value {
    font-size: 10px;
  }
}

/* QI_BENTO_GIFT_REVEAL_2026 — Rewards-only gift showcase */
.premium-bonanza.stamp-bonanza-card {
  background: radial-gradient(circle at 90% 0%, rgba(246,207,129,.33), transparent 33%),
    linear-gradient(148deg,#fffaf1 0%,#fff0df 100%);
  border: 2px solid #d7ad62;
  box-shadow: 0 18px 45px rgba(93,27,38,.13);
  position: relative;
  isolation: isolate;
}
.premium-bonanza .qb-gift-ribbon {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  margin: 18px 0 20px; padding: 12px 15px; border-radius: 12px;
  background: linear-gradient(104deg,#5a1427,#921c32 55%,#5b1727);
  color: #ffdf9c; font-size: clamp(11px,1.3vw,14px); font-weight: 850;
  line-height: 1.35; letter-spacing: .09em; text-align: center;
  border: 1px solid #c6964d; box-shadow: 0 9px 20px rgba(92,21,36,.17);
}
.premium-bonanza .qb-gift-ribbon-star { color: #fff7d8; font-size: 22px; flex-shrink: 0; }
.premium-bonanza .bonanza-stamps { padding: 9px 0 18px; gap: clamp(6px,1.1vw,12px); }
.premium-bonanza .bonanza-stamp { position: relative; min-width: 0; border-width: 2px; }
.premium-bonanza .bonanza-stamp.qb-gift-stamp {
  background: radial-gradient(circle at 50% 22%,#fffef3,#ffe5ad);
  border: 2px solid #c78d35; color: #672332;
  box-shadow: 0 4px 13px rgba(148,82,18,.18), inset 0 0 0 2px rgba(255,255,255,.8);
  cursor: pointer; display: block; overflow: visible; isolation: isolate;
}
.premium-bonanza .bonanza-stamp.qb-gift-stamp.earned {
  background: radial-gradient(circle at 50% 12%,#9c3543,#641c2c);
  border-color: #f0be54; color: #ffe5a8;
  box-shadow: 0 0 0 3px rgba(229,170,75,.24), 0 7px 22px rgba(126,32,51,.27);
}
.premium-bonanza .qb-gift-stamp-image {
  position: absolute; width: 73%; height: 65%; top: 14%; left: 13.5%;
  object-fit: contain; filter: drop-shadow(0 3px 3px rgba(69,30,22,.24));
  pointer-events: none; z-index: 1;
}
.premium-bonanza .qb-gift-stamp .bonanza-stamp-number {
  position: absolute; top: -6px; left: -4px; display: grid; place-items: center;
  width: clamp(20px,2.3vw,28px); height: clamp(20px,2.3vw,28px);
  border-radius: 50%; background: #751c32; color: #fff1ce;
  box-shadow: 0 2px 7px rgba(67,22,35,.3); font-size: 12px; z-index: 3;
}
.premium-bonanza .qb-gift-stamp .bonanza-stamp-reward-value {
  position: absolute; display: block; bottom: -12px; left: 50%; transform: translateX(-50%);
  z-index: 3; padding: 2px 7px; width: max-content; max-width: none;
  background: #861729; color: #fff1c8; border: 1px solid #efbd6b;
  border-radius: 999px; font-size: clamp(10px,1.1vw,12px); font-weight: 800;
  line-height: 1.2; box-shadow: 0 2px 7px rgba(90,25,29,.16);
}
.premium-bonanza .qb-gift-stamp:focus-visible,
.premium-bonanza .qb-gift-peek:focus-visible { outline: 3px solid #8352d0; outline-offset: 4px; }
.premium-bonanza .bonanza-section-title { font-size: clamp(18px,2.4vw,25px); text-align: center; margin: 23px 0 17px; }
.premium-bonanza .bonanza-milestones {
  display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px;
}
.premium-bonanza .bonanza-milestone.qb-gift-reward-card {
  position: relative; min-width: 0; display: flex; flex-direction: column; align-items: center;
  justify-content: flex-start; gap: 8px; padding: 20px 12px 16px;
  border: 2px solid #ddaf67; border-radius: 20px; text-align: center;
  background: radial-gradient(circle at 45% 21%,#fffef1 0%,#ffebc7 45%,#f6d8aa 100%);
  box-shadow: 0 10px 24px rgba(137,79,28,.15);
  overflow: hidden;
}
.premium-bonanza .bonanza-milestone.qb-gift-reward-card::before {
  content: '✦'; position: absolute; top: -40px; right: -10px; font-size: 130px;
  line-height: 1; color: rgba(232,169,73,.12); pointer-events: none;
}
.premium-bonanza .qb-gift-reward-card.reached {
  border-color: #b7732c;
  box-shadow: 0 0 0 3px rgba(227,168,57,.19), 0 12px 30px rgba(135,56,24,.17);
}
.premium-bonanza .qb-gift-reward-card .bonanza-milestone-icon { display: none; }
.premium-bonanza .qb-gift-reward-card .bonanza-milestone-visit {
  display: inline-block; font-weight: 900; letter-spacing: .1em; color: #fff1cb;
  background: #781c32; border-radius: 999px; padding: 5px 13px;
  font-size: 11px; line-height: 1.2; margin: 0; z-index: 1;
}
.premium-bonanza .qb-gift-milestone-art {
  width: 100%; height: clamp(105px,14vw,175px); display: grid; place-items: center;
  position: relative; z-index: 1; padding: 4px;
}
.premium-bonanza .qb-gift-milestone-art::after {
  content: ''; position: absolute; inset: auto 12% 2px; height: 18px; border-radius: 50%;
  background: rgba(95,42,27,.1); filter: blur(10px); z-index: -1;
}
.premium-bonanza .qb-gift-card-image {
  width: 100%; height: 100%; max-width: 190px; object-fit: contain;
  filter: drop-shadow(0 8px 9px rgba(79,33,18,.2));
  animation: qb-gift-float 3.8s ease-in-out infinite;
}
.premium-bonanza .qb-gift-reward-card:nth-child(2) .qb-gift-card-image { animation-delay: .5s; }
.premium-bonanza .qb-gift-reward-card:nth-child(3) .qb-gift-card-image { animation-delay: 1s; }
.premium-bonanza .qb-gift-reward-card strong {
  color: #661829; font-size: clamp(13px,1.5vw,17px); line-height: 1.3;
  overflow-wrap: anywhere; position: relative; z-index: 1;
}
.premium-bonanza .qb-gift-reward-card small {
  display: inline-block; color: #921c32; background: #fffaf0; font-size: 17px;
  font-weight: 900; padding: 1px 12px; border: 1px solid #d9ae68;
  border-radius: 999px; margin: 0; position: relative; z-index: 1;
}
.premium-bonanza .qb-gift-reward-card .bonanza-milestone-status {
  margin-top: 0; color: #775445; font-size: 11px; position: relative; z-index: 1;
}
.premium-bonanza .qb-gift-reward-card.reached .bonanza-milestone-status {
  color: #79152e; font-weight: 800;
}
.premium-bonanza .qb-gift-peek {
  margin-top: auto; min-height: 38px; padding: 8px 12px; width: 100%;
  background: linear-gradient(115deg,#691b30,#8f2940); color: #fff7df;
  border: 1px solid #ad7d47; border-radius: 999px;
  cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 800;
  position: relative; z-index: 1; touch-action: manipulation;
}
.premium-bonanza .qb-gift-peek:hover { filter: brightness(1.12); }
.qb-gift-overlay {
  position: fixed; inset: 0; z-index: 2147483600; display: grid; place-items: center;
  background: rgba(28,10,17,.78); backdrop-filter: blur(5px);
  padding: max(14px,env(safe-area-inset-top,0px)) 14px max(14px,env(safe-area-inset-bottom,0px));
  overflow-y: auto;
}
.qb-gift-dialog {
  position: relative; width: min(100%,440px); max-height: min(92vh,850px); overflow-y: auto;
  border-radius: 25px; border: 2px solid #f0c36b;
  background: radial-gradient(circle at 50% 5%,#fff6d9,#fff6e9 50%,#ffe2b2 100%);
  box-shadow: 0 0 0 7px rgba(243,191,108,.13),0 30px 80px rgba(9,3,5,.4);
  text-align: center; padding: 40px 22px 24px;
  animation: qb-gift-open .5s cubic-bezier(.2,.8,.25,1) both;
}
.qb-gift-dialog::before,
.qb-gift-dialog::after { content:'✦'; position:absolute; pointer-events:none; color:#de9f32; font-size:35px; }
.qb-gift-dialog::before { top: 20%; left: 9%; }
.qb-gift-dialog::after { top: 30%; right: 8%; }
.qb-gift-dialog-close {
  position: absolute; top: 9px; right: 9px; width: 42px; height: 42px;
  display: grid; place-items: center; border-radius: 50%; border: 1px solid #d7a56a;
  background: #fff9ec; color: #651d2e; font-size: 28px; cursor: pointer;
}
.qb-gift-dialog-label { color:#9d6b2f; font-size: 11px; font-weight: 900; letter-spacing: .13em; }
.qb-gift-dialog-image { display: block; width: 70%; height: min(38vh,260px); object-fit: contain; margin: 14px auto;
  filter: drop-shadow(0 12px 14px rgba(93,47,30,.22)); }
.qb-gift-dialog h2 { color: #681e32; font-size: clamp(22px,5vw,31px); margin: 7px 0 10px; }
.qb-gift-dialog-value { display: inline-block; font-size: 20px; padding: 6px 20px;
  color: #fff3cd; border-radius: 999px; background: #811d32; border: 1px solid #d2a257; }
.qb-gift-dialog-copy { font-size: 14px; line-height: 1.6; color: #664d44; margin: 17px auto; max-width: 340px; }
.qb-gift-dialog-done { min-height: 44px; border-radius: 13px; padding: 12px 24px;
  background: #661e30; color: #fff4da; border: 1px solid #cc9f54; font-weight: 800; cursor: pointer; }
@keyframes qb-gift-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes qb-gift-open { from { opacity: 0; transform: scale(.78) translateY(18px); } to { opacity: 1; transform: scale(1) translateY(0); } }
@media(max-width: 640px) {
  html.qi-premium-rewards .premium-bonanza .bonanza-stamps,
  .premium-bonanza .bonanza-stamps { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 12px 8px; padding-bottom: 15px; }
  .premium-bonanza .qb-gift-stamp .bonanza-stamp-number { width: 22px; height: 22px; font-size: 11px; }
  html.qi-premium-rewards .premium-bonanza .bonanza-milestones,
  .premium-bonanza .bonanza-milestones { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .premium-bonanza .bonanza-milestone.qb-gift-reward-card {
    display: grid; grid-template-columns: minmax(105px,40%) minmax(0,1fr);
    grid-template-rows: repeat(5,auto); align-items: center; justify-items: stretch;
    gap: 6px 13px; min-height: 155px; padding: 13px 14px; text-align: left;
    grid-column: auto;
  }
  .premium-bonanza .qb-gift-reward-card .bonanza-milestone-visit,
  .premium-bonanza .qb-gift-reward-card strong,
  .premium-bonanza .qb-gift-reward-card small,
  .premium-bonanza .qb-gift-reward-card .bonanza-milestone-status,
  .premium-bonanza .qb-gift-reward-card .qb-gift-peek { grid-column: 2; justify-self: start; }
  .premium-bonanza .qb-gift-reward-card .qb-gift-milestone-art { grid-column: 1; grid-row: 1 / 6; height: 134px; align-self: center; }
  .premium-bonanza .qb-gift-reward-card strong { font-size: 15px; }
  .premium-bonanza .qb-gift-reward-card small { font-size: 15px; }
  .premium-bonanza .qb-gift-reward-card .qb-gift-peek { width: 100%; font-size: 11px; min-height: 38px; }
}
@media(max-width: 350px) {
  .premium-bonanza .bonanza-stamps { gap: 12px 5px; }
  .premium-bonanza .bonanza-milestone.qb-gift-reward-card { grid-template-columns: minmax(88px,36%) minmax(0,1fr); gap: 5px 10px; padding: 12px; }
  .premium-bonanza .qb-gift-reward-card .qb-gift-milestone-art { height: 116px; }
}
@media(prefers-reduced-motion: reduce) {
  .premium-bonanza .qb-gift-card-image, .qb-gift-dialog { animation: none !important; }
  .premium-bonanza .qb-gift-peek { transition: none !important; }
}


/* QI_BENTO_BIG_GIFTS_NO_PRICES_2026 */

.premium-bonanza .bonanza-stamp-reward-value,
.premium-bonanza .qb-gift-reward-card > small,
.qb-gift-dialog .qb-gift-dialog-value {
  display: none !important;
}

.premium-bonanza .bonanza-stamps {
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 20px 12px;
  max-width: 900px;
  margin-inline: auto;
}

.premium-bonanza .qb-gift-stamp-image {
  width: 94%;
  height: 90%;
  top: 5%;
  left: 3%;
  object-fit: contain;
}

.premium-bonanza .qb-gift-milestone-art {
  height: clamp(190px,22vw,275px);
  padding: 0;
  overflow: visible;
}

.premium-bonanza .qb-gift-card-image {
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  filter: drop-shadow(0 12px 14px rgba(79,33,18,.22));
}

.premium-bonanza .bonanza-milestone.qb-gift-reward-card {
  padding: 22px 14px;
  gap: 12px;
}

.qb-gift-dialog-image {
  width: 94%;
  max-width: 390px;
  height: min(48vh,350px);
  object-fit: contain;
}

@media (max-width:640px) {
  .premium-bonanza .bonanza-stamps {
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 16px 7px;
  }

  .premium-bonanza .bonanza-milestone.qb-gift-reward-card {
    grid-template-columns: minmax(0,46%) minmax(0,1fr);
    min-height: 225px;
    padding: 15px 12px;
  }

  .premium-bonanza .qb-gift-reward-card .qb-gift-milestone-art {
    height: 190px;
    width: 100%;
  }

  .premium-bonanza .qb-gift-card-image {
    width: 100%;
    height: 100%;
  }

  .qb-gift-dialog-image {
    width: 100%;
    height: min(46vh,320px);
  }
}

/* Collection checkout: clear primary decision, calm supporting detail. */
section.card:has(#chip-checkout){position:relative;overflow:hidden;border:1px solid #e4c99f;padding:clamp(22px,4vw,38px);box-shadow:0 18px 45px rgba(78,1,6,.12);background:linear-gradient(135deg,#fffdf8 0%,#fff8ed 100%)}
section.card:has(#chip-checkout)::before{content:'Secure online payment';display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;background:#f5e6d2;color:#6b3a23;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}
section.card:has(#chip-checkout) h2{font-size:clamp(28px,4vw,38px);margin:14px 0 8px}
section.card:has(#chip-checkout) .notice{border:1px solid #edd3ad;border-left:5px solid #b87834;background:#fff3df;border-radius:12px;padding:15px 17px;font-size:15px}
#chip-checkout{width:min(100%,360px);min-height:58px;border-radius:14px;font-size:17px;box-shadow:0 10px 22px rgba(105,1,8,.22)}
#chip-checkout::before{content:'↗';margin-right:10px;font-size:20px}
section.card:has(#chip-checkout) details{margin-top:26px;border-top:1px solid #ead9c4;padding-top:18px}
section.card:has(#chip-checkout) summary{cursor:pointer;font-weight:750;color:#6a4033;padding:8px 0}
section.card:has(#chip-checkout) .muted{max-width:620px}
@media(max-width:690px){section.card:has(#chip-checkout){padding:22px 18px;margin-inline:0}#chip-checkout{width:100%}}

/* QI_BENTO_PREMIUM_COUPON_TICKETS_2026 */
.qb-offer-card {
  position:relative; overflow:hidden; isolation:isolate;
  border:1px solid #e6c997 !important;
  background:linear-gradient(145deg,#fffdf8,#fff2dc) !important;
  box-shadow:0 11px 28px rgba(93,30,41,.13) !important;
}
.qb-offer-ticket {display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;margin-top:12px;
  padding:12px;border-radius:15px;background:linear-gradient(120deg,#752d3c,#4c1425);color:#fff9ec;overflow:hidden;}
.qb-offer-art {display:block;max-width:100%;width:150px;height:142px;object-fit:contain;
  filter:drop-shadow(0 9px 8px rgba(27,3,10,.38));}
.qb-offer-content {min-width:0;}
.qb-offer-saving {display:inline-flex;border-radius:10px;padding:5px 12px;
  font-size:clamp(19px,2.7vw,30px);line-height:1.3;letter-spacing:-.03em;
  color:#4b1425;background:linear-gradient(110deg,#fff1b6,#e3b969,#fff0af);
  box-shadow:0 3px 10px rgba(0,0,0,.16);}
.qb-offer-message {font-weight:700;color:#fff5df;font-size:14px;line-height:1.4;margin:9px 0;}
.qb-offer-conditions {font-size:12px;color:#f6dac8;line-height:1.5;}
.qb-offer-expiry {font-size:12px;line-height:1.4;font-weight:800;letter-spacing:.03em;
  border-top:1px dashed #dbaa72;margin-top:10px;padding-top:8px;color:#ffe4a3;}
.qb-offer-soon {color:#fff !important;animation:qb-ticket-pulse 2.1s ease-in-out infinite;}
.qb-offer-expired {color:#f9bfc6 !important;animation:none;}
@keyframes qb-ticket-pulse {50% {text-shadow:0 0 14px rgba(255,241,161,.95);}}
@media (max-width:430px){.qb-offer-ticket{grid-template-columns:108px minmax(0,1fr);gap:8px;padding:10px 8px;}
 .qb-offer-art{width:108px;height:120px;}.qb-offer-saving{font-size:18px;padding:5px 7px;}
 .qb-offer-message{font-size:12px;margin:5px 0;}.qb-offer-conditions,.qb-offer-expiry{font-size:11px;}}
@media (max-width:340px){.qb-offer-ticket{grid-template-columns:minmax(0,1fr);text-align:center;}
.qb-offer-art{margin:auto;width:135px;height:105px;}}
@media (prefers-reduced-motion:reduce){.qb-offer-soon{animation:none;}}

/* A small mascot companion follows the title without covering the lettering. */
.customer-rewards-heading{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;gap:8px;min-height:118px;padding:0}
.customer-rewards-heading h1{position:relative;z-index:1;margin:0 0 18px;font-size:clamp(34px,5vw,52px);line-height:1.05;white-space:nowrap}
.customer-owner-mascot{position:relative;z-index:1;width:112px;height:112px;object-fit:contain;margin:0 0 0 -4px;filter:drop-shadow(0 8px 8px rgba(105,1,8,.18))}
.customer-rewards-heading:after{content:"";position:absolute;left:clamp(190px,25vw,310px);bottom:14px;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle,#f8dfb2 0 48%,transparent 50%);opacity:.78}
@media(max-width:690px){.customer-rewards-heading{gap:2px;min-height:94px}.customer-rewards-heading h1{margin-bottom:13px;font-size:clamp(28px,9vw,38px)}.customer-owner-mascot{width:86px;height:86px;margin-left:-6px}.customer-rewards-heading:after{left:auto;right:2px;bottom:9px;width:66px;height:66px}}

/* Keep every Foodie Bonanza gift entirely inside its reward card. */
.premium-bonanza .bonanza-milestone.qb-gift-reward-card{overflow:hidden}
.premium-bonanza .qb-gift-milestone-art{height:150px;min-height:0;max-height:150px;overflow:hidden;flex:none}
.premium-bonanza .qb-gift-card-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:640px){.premium-bonanza .qb-gift-reward-card .qb-gift-milestone-art{height:132px;max-height:132px}}

/* QI_BENTO_SIX_COUPON_MONTHLY_RELEASE_2026 — Rewards-facing cards only */
html.qi-premium-rewards .qb-offer-terms,
.qb-offer-ticket .qb-offer-terms {
  padding-left:18px; margin:8px 0 0; font-size:12px; color:#ffefd8;
  line-height:1.5; overflow-wrap:anywhere;
}
.qb-offer-terms li {margin-bottom:3px;}
.qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] {
  background:linear-gradient(125deg,#7a1d3c,#47162c);
}
.qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art {
  width:100%; height:170px; object-fit:contain;
  transform-origin:50% 80%;
  animation: qb-friends-bounce-sway 3.4s ease-in-out infinite;
  filter:drop-shadow(0 12px 13px rgba(5,0,5,.22));
}
@keyframes qb-friends-bounce-sway {
  0%, 38%, 100% {transform:translateY(0) rotate(-2deg);}
  9% {transform:translateY(-15px) rotate(3deg);}
  16% {transform:translateY(1px) rotate(-1deg);}
  23% {transform:translateY(-7px) rotate(2deg);}
  30% {transform:translateY(0) rotate(-2deg);}
  65% {transform:translateY(-2px) rotate(2deg);}
  85% {transform:translateY(0) rotate(-1deg);}
}
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-art {
  width:100%; height:170px; object-fit:contain;
}
.qb-offer-monthly {color:#fff1af;}
@media (max-width:430px) {
 .qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art,
 .qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-art {height:140px;}
 .qb-offer-ticket .qb-offer-terms {font-size:11px;padding-left:14px;}
}
@media (prefers-reduced-motion:reduce) {
 .qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art {animation:none;}
}

/* QI_BENTO_OWNER_MASCOT_PREMIUM_VOUCHERS_2026 — presentation only.
   All prices, eligibility and end dates come from live campaign data. */
.qb-offer-card {border-radius:22px !important;}
.qb-offer-ticket {
  --qb-ink: #fff6e4;
  --qb-subtle: #ffe3c1;
  --qb-accent: #e5b766;
  position:relative;
  display:grid;
  grid-template-columns:minmax(145px, 0.45fr) minmax(0, 1fr);
  gap:clamp(12px,2vw,23px);
  align-items:center;
  padding:clamp(15px,2.5vw,24px);
  min-width:0;
  border:1px solid #e8c683;
  border-radius:20px;
  background:linear-gradient(125deg,#712b3c,#3e1728);
  box-shadow:inset 0 0 0 1px rgba(255,244,198,.19),0 16px 30px rgba(57,17,28,.14);
  color:var(--qb-ink);
}
.qb-offer-ticket::before {
  content:"";position:absolute;inset:8px;pointer-events:none;
  border:1px solid rgba(248,208,135,.29);border-radius:15px;
}
.qb-offer-ticket .qb-offer-art {
  width:100%;height:clamp(165px,22vw,235px);max-width:260px;
  object-fit:contain;justify-self:center;z-index:1;
  filter:drop-shadow(0 14px 14px rgba(26,7,14,.25));
}
.qb-offer-ticket .qb-offer-content {position:relative;z-index:2;min-width:0;}
.qb-offer-ticket .qb-offer-saving {
  max-width:100%;font-weight:900;font-size:clamp(20px,3vw,32px);
  background:linear-gradient(118deg,#fff2bc,#c88b35,#ffe9a2);color:#4b1b27;
  border:1px solid rgba(255,255,255,.35);
  box-shadow:0 7px 19px rgba(0,0,0,.17);
}
.qb-offer-ticket .qb-offer-message {color:var(--qb-ink);font-size:clamp(13px,1.45vw,16px);}
.qb-offer-ticket .qb-offer-terms {color:var(--qb-subtle);font-size:12px;line-height:1.55;padding-left:18px;}
.qb-offer-ticket .qb-offer-expiry {
  border-top:1px dashed var(--qb-accent);padding-top:10px;margin-top:12px;
  color:var(--qb-accent);font-weight:900;font-size:clamp(12px,1.4vw,15px);
}
/* Every regular coupon is recognisably hosted by the ORIGINAL bearded Owner mascot. */
.qb-offer-ticket:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-RICE-TEA"],
  [data-qb-campaign="MD-TOFU-PAIR"]
)::after {
  content:"";position:absolute;z-index:1;pointer-events:none;
  bottom:8px;left:8px;width:69px;height:80px;
  background:url('/coupon-art/owner-mascot-original.png') center bottom / contain no-repeat;
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.18));
}
.qb-offer-ticket[data-qb-campaign="MD-EARLY-BIRD"] {
  background:radial-gradient(circle at 10% 6%,#c37a42 0%,transparent 44%),linear-gradient(120deg,#864537,#4e1b31);
}
.qb-offer-ticket[data-qb-campaign="MD-RICE-TEA"] {
  background:radial-gradient(circle at 7% 15%,#386c4e 0%,transparent 45%),linear-gradient(135deg,#164c42,#142d2e);
}
.qb-offer-ticket[data-qb-campaign="MD-TOFU-PAIR"] {
  background:radial-gradient(circle at 5% 7%,#b36926 0%,transparent 40%),linear-gradient(130deg,#7e331d,#57201c);
}
/* Birthday Treat: rose-gold, pastel silk, candlelight, party-ribbon feel. */
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] {
  --qb-ink:#6d263e;--qb-subtle:#74364d;--qb-accent:#8c3855;
  border:2px solid #dca77f;
  background:radial-gradient(circle at 8% 10%,#fffbeb 0%,transparent 49%),
    radial-gradient(circle at 98% 6%,#fac1c9 0%,transparent 45%),
    linear-gradient(127deg,#fff0e7,#f3c6cb 65%,#eab0ad);
  box-shadow:inset 0 0 0 1px #fff7e8,0 15px 32px rgba(140,56,91,.16);
}
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"]::before {
  border:1px dashed rgba(154,67,95,.32);
}
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-art {
  width:100%;max-width:290px;height:clamp(220px,31vw,320px);
  filter:drop-shadow(0 10px 13px rgba(139,54,88,.2));
}
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-saving {
  background:linear-gradient(105deg,#a84f6c,#7a274b,#c36a85);
  color:#fff7df;border:1px solid #f4d4b8;
}
.qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-expiry {color:#8b294e;}
/* Loyalty Ladder: obsidian VIP membership, premium gold detailing. */
.qb-offer-ticket[data-qb-campaign="MD-LOYALTY-R001"] {
  --qb-ink:#fff3cb;--qb-subtle:#e9d6b2;--qb-accent:#f2c35c;
  border:2px solid #c99c3a;
  background:radial-gradient(circle at 0% 10%,#5c4d2b 0%,transparent 38%),
    radial-gradient(circle at 97% 95%,#594021 0%,transparent 36%),
    linear-gradient(130deg,#080d13,#1f1b17 60%,#100b0a);
  box-shadow:inset 0 0 0 1px rgba(240,202,111,.48),0 18px 34px rgba(25,15,9,.2);
}
.qb-offer-ticket[data-qb-campaign="MD-LOYALTY-R001"]::after {
  content:"";position:absolute;z-index:1;pointer-events:none;
  right:7px;bottom:7px;width:88px;height:104px;
  background:url('/coupon-art/owner-mascot-original.png') center bottom / contain no-repeat;
  opacity:.92;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4));
}
.qb-offer-ticket[data-qb-campaign="MD-LOYALTY-R001"] .qb-offer-saving {
  background:linear-gradient(114deg,#fff6ce,#ca9336,#fff0ac);
  color:#23180e;
}
.qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] {
  --qb-accent:#ffde88;
  border:1px solid #e3b86a;
  background:radial-gradient(circle at 10% 20%,#354766,transparent 45%),linear-gradient(135deg,#16243a,#251328);
}
.qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art {
  height:clamp(160px,20vw,230px);max-width:400px;
  animation:qb-friends-bounce-sway 3.4s ease-in-out infinite;
}
.qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-monthly {
  display:inline-block;padding:8px 10px;border-radius:12px;
  border:1px solid rgba(245,208,126,.6);
  background:rgba(63,41,50,.65);color:#ffe8a1;
}
@media (max-width:680px){
  .qb-offer-ticket {grid-template-columns:minmax(0,1fr);gap:5px;text-align:left;}
  .qb-offer-ticket .qb-offer-art,
  .qb-offer-ticket[data-qb-campaign="MD-BIRTHDAY"] .qb-offer-art,
  .qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art {
    width:100%;max-width:260px;height:190px;justify-self:center;
  }
  .qb-offer-ticket .qb-offer-content {width:100%;}
  .qb-offer-ticket .qb-offer-terms {font-size:12px;}
  .qb-offer-ticket[data-qb-campaign="MD-LOYALTY-R001"]::after {width:60px;height:80px;opacity:.7;}
}
@media (max-width:360px){
  .qb-offer-ticket {padding:14px 12px;}
  .qb-offer-ticket .qb-offer-saving {font-size:20px;}
  .qb-offer-ticket .qb-offer-terms {padding-left:16px;}
  .qb-offer-ticket:is([data-qb-campaign="MD-EARLY-BIRD"],[data-qb-campaign="MD-RICE-TEA"],[data-qb-campaign="MD-TOFU-PAIR"])::after {width:50px;height:62px;}
}
@media (prefers-reduced-motion:reduce){
  .qb-offer-ticket[data-qb-campaign="MD-WEEKEND"] .qb-offer-art {animation:none;}
}

/* Qi Bento Club — member wallet presentation. */
.qb-club-panel{position:relative;overflow:hidden;padding:0!important;border:1px solid #d5ac61!important;background:linear-gradient(145deg,#fffdf6,#f9ecd2)!important;box-shadow:0 18px 38px rgba(91,39,31,.14)!important}
.qb-club-panel:before{content:"";position:absolute;right:-90px;top:-110px;width:290px;height:290px;border:1px solid rgba(171,113,40,.18);border-radius:50%;box-shadow:0 0 0 38px rgba(239,207,140,.13),0 0 0 78px rgba(239,207,140,.08);pointer-events:none}
.qb-club-hero{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,310px);align-items:center;gap:18px;padding:clamp(22px,4vw,34px);color:#fff8e9;background:radial-gradient(circle at 88% 15%,rgba(250,219,152,.38),transparent 31%),linear-gradient(120deg,#5b1023,#821d36 57%,#4f1723)}
.qb-club-kicker{display:block;color:#f7d88a;font-size:11px;font-weight:900;letter-spacing:.15em}.qb-club-copy h2{margin:7px 0 8px;color:#fff8e9;font-size:clamp(29px,4.6vw,46px);line-height:1}.qb-club-copy p{margin:0;max-width:520px;color:#fbeacd;line-height:1.5}
.qb-club-balance{position:relative;text-align:right;padding:17px 19px;border:1px solid rgba(255,231,177,.55);border-radius:19px;background:rgba(54,7,17,.28);box-shadow:inset 0 1px rgba(255,255,255,.16)}.qb-club-balance span,.qb-club-balance small{display:block;color:#f5d993;font-size:10px;font-weight:800;letter-spacing:.1em}.qb-club-balance strong{display:block;margin:4px 0;font-size:clamp(27px,4.3vw,42px);line-height:1;color:#fff7dc}.qb-club-balance small{font-weight:600;letter-spacing:0;color:#fff0ce}
.qb-club-benefits{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:8px;padding:14px clamp(20px,4vw,34px);border-bottom:1px solid #ead4a3;background:#fffaf0;color:#6c3440}.qb-club-benefits span{padding:6px 10px;border-radius:999px;background:#f8e8c5;font-size:12px;font-weight:800}
.qb-club-panel>.qb-club-assurance,.qb-club-panel>#credit-terms,.qb-club-panel>div:not(.qb-club-hero):not(.qb-club-benefits):not(.grid):not(#topup-form){position:relative;z-index:1;margin-left:clamp(20px,4vw,34px);margin-right:clamp(20px,4vw,34px)}
.qb-club-assurance{padding:13px 15px!important;border-left:4px solid #b57a2c;border-radius:0 12px 12px 0;background:#fff7e6;color:#694442;font-weight:650}
.qb-club-panel>.grid{position:relative;z-index:1;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:8px clamp(20px,4vw,34px) 28px}.qb-club-package{position:relative!important;min-height:226px!important;padding:22px 17px 17px!important;border:1px solid #e2bf7c!important;border-radius:18px!important;background:linear-gradient(150deg,#fffefb,#fff2d4)!important;box-shadow:0 8px 18px rgba(101,51,31,.1)!important;overflow:hidden}.qb-club-package:after{content:"✦";position:absolute;right:12px;bottom:7px;color:#f0cf8b;font-size:41px;opacity:.7}.qb-club-package h3{position:relative;z-index:1;margin:21px 0 13px;color:#68182c;font-size:20px}.qb-club-package p{position:relative;z-index:1;margin:0 0 20px;font-size:15px;color:#674b43;line-height:1.45}.qb-club-package .topup{position:relative;z-index:1;margin-top:auto;width:100%;min-height:45px;border:0;border-radius:12px;background:linear-gradient(110deg,#690108,#8b1d37);color:#fff7dd;font-weight:850;box-shadow:0 7px 14px rgba(105,1,8,.2)}.qb-club-package-bonus{position:absolute;left:0;top:0;padding:7px 11px;border-radius:0 0 13px 0;background:#e6b858;color:#502219;font-size:11px;font-weight:950;letter-spacing:.07em}.qb-club-panel #topup-form{position:relative;z-index:2;margin:0 clamp(20px,4vw,34px) 25px}.qb-club-panel #credit-terms{margin-top:20px;margin-bottom:5px}
@media(max-width:720px){.qb-club-hero{grid-template-columns:1fr;padding:23px 20px;gap:16px}.qb-club-balance{text-align:left;width:100%;max-width:310px}.qb-club-panel>.grid{grid-template-columns:1fr;padding:8px 16px 22px}.qb-club-panel>.qb-club-assurance,.qb-club-panel>#credit-terms,.qb-club-panel #topup-form{margin-left:16px;margin-right:16px}.qb-club-benefits{padding:12px 16px}.qb-club-package{min-height:0!important}.qb-club-package p{margin-bottom:15px}}

/* Top-level member identity: title first, mascot immediately after it. */
.customer-rewards-heading{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-height:100px;margin:0 0 14px;padding:0}
.customer-rewards-heading h1{margin:0;font-size:clamp(34px,5vw,52px);line-height:1.05;white-space:nowrap}.customer-owner-mascot{position:relative;z-index:1;width:96px;height:96px;margin:0;flex:none}.customer-rewards-heading:after{display:none}
@media(max-width:690px){.customer-rewards-heading{gap:3px;min-height:78px;margin-bottom:11px}.customer-rewards-heading h1{margin:0;font-size:clamp(28px,9vw,38px)}.customer-owner-mascot{width:72px;height:72px;margin:0}}

.site-footer {
  width: 100%;
  margin: 28px auto 0;
  padding: 20px max(5%,calc((100% - 1180px)/2));
  border-top: 1px solid #e4d4bb;
  background: #fffaf2;
  color: #7a6255;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .03em;
  text-align: center;
}

.qi-order-now {
  position: fixed;
  z-index: 100;
  right: max(16px,env(safe-area-inset-right));
  bottom: max(16px,calc(env(safe-area-inset-bottom) + 12px));
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 10px 15px;
  border: 1px solid #f1ce82;
  border-radius: 999px;
  background: linear-gradient(120deg,#730112,#9b2745);
  color: #fff8e7;
  box-shadow: 0 12px 28px rgba(91,1,12,.30);
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity .2s ease,transform .2s ease;
}
.qi-order-now.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }
.qi-order-now span { font-size: 15px; font-weight: 850; }
.qi-order-now small { padding-left: 9px; border-left: 1px solid rgba(255,236,190,.55); color: #ffe7ae; font-size: 11px; font-weight: 750; }
.qi-cancelled-history {
  margin: 12px 0 20px;
  padding: 12px 14px;
  border: 1px solid #e1d4c7;
  border-radius: 14px;
  background: #fffaf3;
  color: #6d574d;
}
.qi-cancelled-history summary { cursor: pointer; font-size: 13px; font-weight: 750; }
.qi-cancelled-history-list { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 12px; }
.qi-cancelled-history .qi-cancelled-order { padding: 8px 10px; border-radius: 9px; background: #7b5c56; font-size: 12px; }
@media(max-width:600px) {
  .qi-order-now { right: 13px; bottom: max(13px,calc(env(safe-area-inset-bottom) + 8px)); }
  .qi-order-now small { display: none; }
}
@media(prefers-reduced-motion:reduce) { .qi-order-now { transition: none; } }

/* Keep the member title as a full dashboard header, above every Rewards panel. */
html.qi-premium-rewards main > .customer-rewards-heading {
  display: flex !important;
  clear: both;
  width: 100%;
  max-width: none;
  min-width: 0;
  margin: 0 0 18px !important;
  grid-column: 1 / -1;
}
html.qi-premium-rewards main > .premium-bonanza.stamp-bonanza-card {
  clear: both;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  grid-column: 1 / -1;
}

/* Let the tall Winter Melon artwork breathe inside its milestone frame. */
.premium-bonanza .qb-gift-reward-card[data-qb-gift="3"] .qb-gift-card-image {
  width: 84% !important;
  height: 84% !important;
  max-width: 84% !important;
  max-height: 84% !important;
  object-fit: contain;
}

/* A wallet-pass treatment makes claimed coupons feel safely held and ready. */
.qb-wallet-coupons-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 30px;
}
.qb-wallet-coupons-title small {
  color: #806655;
  font: 700 13px/1.4 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.qb-wallet-coupons {
  gap: 14px;
}
.qb-wallet-coupon-pass {
  position: relative;
  overflow: hidden;
  min-height: 170px;
  padding: 26px 22px 20px !important;
  border: 1px solid #d5ac61 !important;
  border-radius: 20px !important;
  background: linear-gradient(135deg,#fffdf9 0%,#fff4de 100%) !important;
  box-shadow: 0 12px 25px rgba(93,44,29,.10) !important;
}
.qb-wallet-coupon-pass::after {
  content: "";
  position: absolute;
  top: -38px;
  right: -30px;
  width: 130px;
  height: 130px;
  border: 1px solid rgba(186,134,48,.24);
  border-radius: 50%;
  box-shadow: 0 0 0 16px rgba(239,204,129,.14),0 0 0 34px rgba(239,204,129,.08);
  pointer-events: none;
}
.qb-wallet-coupon-pass h3,.qb-wallet-coupon-pass p,.qb-wallet-coupon-pass small { position: relative; z-index: 1; }
.qb-wallet-coupon-pass h3 { margin: 7px 0 10px; color: #6b1830; }
.qb-wallet-coupon-pass p { margin: 0 0 15px; color: #62493e; line-height: 1.5; }
.qb-wallet-coupon-lock {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 5px 9px;
  border-radius: 999px;
  background: #6b1830;
  color: #fff3d7;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
}
.qb-wallet-coupon-state {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 10px;
  border: 1px solid #e5c17d;
  border-radius: 999px;
  background: #fffaf0;
  color: #6d533f;
  font-weight: 800;
}
.qb-wallet-coupon-pass.qb-welcome-tea-pass {
  min-height: 226px;
  padding-right: clamp(148px,27vw,255px) !important;
  background:
    radial-gradient(circle at 88% 42%,rgba(242,190,73,.28),transparent 30%),
    linear-gradient(135deg,#fffdf9 0%,#fff0cd 100%) !important;
  isolation: isolate;
}
.qb-wallet-coupon-pass.qb-welcome-tea-pass::before {
  content: "WELCOME GIFT";
  position: absolute;
  right: 16px;
  bottom: 11px;
  z-index: 0;
  color: rgba(107,24,48,.10);
  font: 900 clamp(24px,5vw,48px)/.9 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: -.05em;
  pointer-events: none;
}
.qb-wallet-coupon-pass.qb-welcome-tea-pass::after {
  top: -50px;
  right: -42px;
  width: 190px;
  height: 190px;
}
.qb-welcome-tea-pass h3 span {
  display: block;
  margin-top: 3px;
  color: #8b4f32;
  font: 800 .72em/1.25 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.qb-welcome-tea-value {
  position: relative;
  z-index: 2;
  display: inline-flex;
  margin-top: 13px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #efbd4d;
  color: #651126;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
}
.qb-welcome-tea-cup {
  position: absolute !important;
  z-index: 3 !important;
  right: clamp(-23px,-1.5vw,-8px);
  bottom: -23px;
  width: clamp(158px,28vw,245px) !important;
  height: auto !important;
  max-width: none !important;
  filter: drop-shadow(0 16px 12px rgba(81,34,20,.22));
  transform-origin: 52% 88%;
  animation: qb-welcome-cup-reveal 1.05s cubic-bezier(.2,.85,.28,1) .18s both;
  pointer-events: none;
  user-select: none;
}
.qb-welcome-tea-cup.is-shaking {
  animation: qb-welcome-cup-shake .72s ease-in-out both;
}
@keyframes qb-welcome-cup-reveal {
  0% { opacity: 0; transform: translate(24px,18px) rotate(8deg) scale(.84); }
  58% { opacity: 1; transform: translate(0,0) rotate(-4deg) scale(1.04); }
  76% { transform: rotate(3deg) scale(.99); }
  100% { opacity: 1; transform: rotate(0) scale(1); }
}
@keyframes qb-welcome-cup-shake {
  0%,100% { transform: rotate(0) translateX(0); }
  20% { transform: rotate(-5deg) translateX(-2px); }
  40% { transform: rotate(5deg) translateX(2px); }
  60% { transform: rotate(-3deg) translateX(-1px); }
  80% { transform: rotate(2deg) translateX(1px); }
}
@media(max-width:600px) {
  .qb-wallet-coupons-title { margin-top: 24px; gap: 5px; }
  .qb-wallet-coupons-title small { display: block; width: 100%; }
  .qb-wallet-coupon-pass { min-height: 0; padding: 23px 18px 18px !important; }
  .qb-wallet-coupon-pass.qb-welcome-tea-pass {
    min-height: 210px;
    padding-right: 132px !important;
  }
  .qb-welcome-tea-cup {
    right: -24px;
    bottom: -14px;
    width: 170px !important;
  }
  .qb-welcome-tea-pass p { max-width: 20ch; }
}
@media(prefers-reduced-motion:reduce) {
  .qb-welcome-tea-cup,
  .qb-welcome-tea-cup.is-shaking { animation: none; }
}

/* QI_BENTO_COUPON_HERO_TWO_THIRDS_CSS_2026
   Large, top-two-thirds visual presentation for SIX owner-managed coupon tickets.
   Keep values, expiry and eligibility in readable DOM text outside artwork. */
html.qi-premium-rewards .qb-offer-ticket.qb-voucher-large,
.qb-offer-ticket.qb-voucher-large {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 2fr) minmax(0, 1fr);
  height: clamp(540px, 60vw, 690px);
  min-width: 0;
  padding: 0;
  gap: 0;
  overflow: hidden;
  align-items: stretch;
  isolation: isolate;
  border-radius: 22px;
}
.qb-offer-ticket.qb-voucher-large::before { z-index: 5; }
.qb-offer-ticket.qb-voucher-large::after { display: none; }
.qb-offer-ticket.qb-voucher-large .qb-voucher-hero {
  position: relative;
  grid-row: 1;
  display: grid;
  place-items: center;
  min-height: 0;
  width: 100%;
  padding: 14px 18px 69px;
  overflow: hidden;
  background: radial-gradient(ellipse at 50% 42%,rgba(255,228,162,.30),transparent 68%);
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-hero::before {
  content: '';
  position: absolute;
  width: min(75%,360px);
  aspect-ratio: 1;
  top: 8%;
  left: 50%;
  border-radius: 50%;
  transform: translateX(-50%);
  border: 1px solid rgba(255,235,170,.18);
  background: radial-gradient(circle,rgba(255,240,185,.11),transparent 72%);
  pointer-events: none;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-hero > .qb-offer-art,
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] .qb-voucher-hero > .qb-offer-art,
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-WEEKEND"] .qb-voucher-hero > .qb-offer-art {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  justify-self: stretch;
  object-fit: contain;
  object-position: center;
  filter: drop-shadow(0 16px 17px rgba(28,9,11,.30));
}
/* Product photography is oversized within the hero, not a little thumbnail. */
.qb-offer-ticket.qb-voucher-large:not([data-qb-campaign="MD-WEEKEND"]):not([data-qb-campaign="MD-BIRTHDAY"]) .qb-voucher-hero > .qb-offer-art {
  transform: scale(1.24);
}
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] .qb-voucher-hero > .qb-offer-art {
  transform: scale(1.02);
}
/* Keep the original bearded Owner mascot as a supporting host on food tickets. */
.qb-offer-ticket.qb-voucher-large:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-RICE-TEA"],
  [data-qb-campaign="MD-TOFU-PAIR"],
  [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::after {
  content: '';
  position: absolute;
  z-index: 2;
  top: 9px;
  right: 8px;
  width: clamp(63px,18%,100px);
  height: clamp(74px,24%,114px);
  background: url('/coupon-art/owner-mascot-original.png') center bottom / contain no-repeat;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.30));
  pointer-events: none;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-hero > .qb-offer-saving {
  position: absolute;
  z-index: 2;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: calc(100% - 24px);
  margin: 0;
  padding: 12px 20px;
  text-align: center;
  font-size: clamp(24px,5vw,38px);
  line-height: 1.07;
  white-space: normal;
  border-radius: 15px;
  overflow-wrap: anywhere;
}
.qb-offer-ticket.qb-voucher-large > .qb-offer-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  min-height: 0;
  width: 100%;
  gap: 10px;
  padding: clamp(14px,2.5vw,23px);
  position: relative;
  z-index: 2;
  background: rgba(8,8,8,.15);
}
.qb-offer-ticket.qb-voucher-large .qb-offer-message {
  margin: 0;
  color: var(--qb-ink,#fff4e4);
  line-height: 1.36;
  font-size: clamp(14px,1.6vw,17px);
  font-weight: 650;
  text-wrap: balance;
}
.qb-offer-ticket.qb-voucher-large .qb-offer-expiry {
  margin: 0;
  padding: 7px 0 0;
  font-size: clamp(12px,1.4vw,15px);
  line-height: 1.3;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-terms {
  font-size: 13px;
  line-height: 1.5;
  color: var(--qb-subtle,#ffecce);
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-terms > summary {
  width: fit-content;
  max-width: 100%;
  padding: 6px 2px;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  font-weight: 650;
  touch-action: manipulation;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-terms > summary:focus-visible {
  outline: 3px solid #ffd174;
  outline-offset: 4px;
  border-radius: 4px;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-terms .qb-offer-terms {
  padding: 10px 0 0 18px;
  margin: 0;
  color: inherit;
  max-width: 100%;
}
.qb-offer-ticket.qb-voucher-large.qb-voucher-terms-open {
  height: auto;
  min-height: 540px;
  grid-template-rows: minmax(360px,auto) auto;
}
.qb-offer-ticket.qb-voucher-large.qb-voucher-terms-open > .qb-offer-content {
  min-height: 170px;
}
/* Birthday: rose-gold celebration. */
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] .qb-voucher-hero {
  background:radial-gradient(ellipse at 55% 45%,rgba(255,255,255,.70),transparent 62%),
    linear-gradient(150deg,#ffe9e6,#f9c7d0);
}
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] > .qb-offer-content {
  background:rgba(255,246,246,.30);
}
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] .qb-voucher-terms {
  color:#70364e;
}
/* Loyalty ladder: black-and-gold VIP voucher. */
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-LOYALTY-R001"] .qb-voucher-hero {
  background:radial-gradient(ellipse at center,rgba(208,154,69,.32),transparent 65%),
    linear-gradient(135deg,#17140f,#03070b);
}
/* Weekend Friends: keep the three original Owner chefs fully in frame. */
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-WEEKEND"] .qb-voucher-hero {
  background:radial-gradient(ellipse at center,rgba(219,169,86,.28),transparent 68%),
    linear-gradient(130deg,#29395a,#211329);
}
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-WEEKEND"] .qb-voucher-hero > .qb-offer-art {
  animation: qb-friends-bounce-sway 3.4s ease-in-out infinite;
  transform-origin: center 80%;
}
@media (max-width: 600px) {
  html.qi-premium-rewards .qb-offer-ticket.qb-voucher-large,
  .qb-offer-ticket.qb-voucher-large {height: 540px;}
  .qb-offer-ticket.qb-voucher-large .qb-voucher-hero {padding: 11px 10px 68px;}
  /* Product photography is oversized within the hero, not a little thumbnail. */
.qb-offer-ticket.qb-voucher-large:not([data-qb-campaign="MD-WEEKEND"]):not([data-qb-campaign="MD-BIRTHDAY"]) .qb-voucher-hero > .qb-offer-art {
  transform: scale(1.24);
}
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-BIRTHDAY"] .qb-voucher-hero > .qb-offer-art {
  transform: scale(1.02);
}
/* Keep the original bearded Owner mascot as a supporting host on food tickets. */
.qb-offer-ticket.qb-voucher-large:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-RICE-TEA"],
  [data-qb-campaign="MD-TOFU-PAIR"],
  [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::after {
  content: '';
  position: absolute;
  z-index: 2;
  top: 9px;
  right: 8px;
  width: clamp(63px,18%,100px);
  height: clamp(74px,24%,114px);
  background: url('/coupon-art/owner-mascot-original.png') center bottom / contain no-repeat;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.30));
  pointer-events: none;
}
.qb-offer-ticket.qb-voucher-large .qb-voucher-hero > .qb-offer-saving {
    padding: 10px 15px;
    font-size: clamp(22px,6.5vw,30px);
  }

.site-footer {
  display: flex;
  flex-direction: column;
  gap: 3px;
  text-align: center;
}

.site-footer span {
  font-size: 0.82em;
}
  .qb-offer-ticket.qb-voucher-large > .qb-offer-content {padding: 13px 15px;gap:8px;}
  .qb-offer-ticket.qb-voucher-large.qb-voucher-terms-open {height:auto;}
}
@media (max-width: 350px) {
  .qb-offer-ticket.qb-voucher-large .qb-offer-message {font-size:13px;}
  .qb-offer-ticket.qb-voucher-large .qb-offer-expiry {font-size:12px;}
}
@media (prefers-reduced-motion: reduce) {
  .qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-WEEKEND"] .qb-voucher-hero > .qb-offer-art {
    animation: none;
  }
}



/* QI_BENTO_RICE_LOGO_SEPARATED_2026: food cutout and independent badges */
/* Swap chef motif for the exact supplied Qi Bento logo on all four food vouchers. */
.qb-offer-ticket.qb-voucher-large:is(
 [data-qb-campaign="MD-EARLY-BIRD"],
 [data-qb-campaign="MD-RICE-TEA"],
 [data-qb-campaign="MD-TOFU-PAIR"],
 [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::after {
 content:"";
 position:absolute;
 top:12px;
 right:12px;
 bottom:auto;
 left:auto;
 z-index:4;
 width:clamp(49px,15%,75px);
 height:clamp(49px,15%,75px);
 border:2px solid #f5dfb1;
 border-radius:11px;
 background:#fff url('/coupon-art/qi-bento-corner-logo.png') center / contain no-repeat;
 filter:drop-shadow(0 4px 7px rgba(20,5,7,.3));
 pointer-events:none;
}
/* A real RGBA rice cutout replaces the old photo with its printed-on badge. */
.qb-offer-ticket.qb-voucher-large:is(
 [data-qb-campaign="MD-EARLY-BIRD"],
 [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero > .qb-offer-art {
 object-fit:contain;
 object-position:center 38%;
 transform:scale(1.08);
 filter:drop-shadow(0 15px 15px rgba(30,8,8,.26));
}
/* Dynamic saving amount on the left; never hard-code offer values. */
.qb-offer-ticket.qb-voucher-large:is(
 [data-qb-campaign="MD-EARLY-BIRD"],
 [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero > .qb-offer-saving {
 left:3.5%;right:auto;bottom:14px;
 transform:none;
 max-width:51%;width:auto;
 padding:10px 9px;
 margin:0;
 font-size:clamp(16px,3.1vw,27px);
 line-height:1.15;
 overflow-wrap:normal;
 white-space:normal;
 text-align:center;
 z-index:4;
}
/* Independent signature emblem occupies a distinct right-hand lane. */
.qb-offer-ticket.qb-voucher-large:is(
 [data-qb-campaign="MD-EARLY-BIRD"],
 [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::before {
 content:"本堂招牌\A OUR SIGNATURE";
 white-space:pre;
 position:absolute;
 inset:auto 3.5% 17px auto;
 z-index:3;
 transform:none;
 box-sizing:border-box;
 width:36%;height:auto;min-height:58px;
 aspect-ratio:auto;
 padding:12px 4px;
 border:2px solid #e4b75a;
 border-radius:60% / 50%;
 background:linear-gradient(145deg,#161312,#050606);
 color:#fff9e6;
 text-align:center;
 font:700 clamp(11px,2vw,16px)/1.35 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 letter-spacing:.03em;
 box-shadow:0 6px 16px rgba(10,5,5,.3);
 pointer-events:none;
}
@media (max-width:600px) {
 .qb-offer-ticket.qb-voucher-large:is([data-qb-campaign="MD-EARLY-BIRD"],[data-qb-campaign="MD-LOYALTY-R001"]) .qb-voucher-hero > .qb-offer-saving {
  font-size:clamp(16px,5vw,23px);padding:9px 7px;max-width:51%;
 }
 .qb-offer-ticket.qb-voucher-large:is([data-qb-campaign="MD-EARLY-BIRD"],[data-qb-campaign="MD-LOYALTY-R001"]) .qb-voucher-hero::before {
  font-size:clamp(10px,3vw,13px);padding:9px 2px;min-height:53px;
 }
}

/* QI_BENTO_TRANSPARENT_SIGNATURE_2026
   Transparent signature emblem; authentic cleaner corner logo.
   Frontend-only; discounts stay server-authoritative. */
.qb-offer-ticket.qb-voucher-large:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-RICE-TEA"],
  [data-qb-campaign="MD-TOFU-PAIR"],
  [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::after {
  background: transparent url('/coupon-art/qi-bento-corner-logo-refined.png') center / contain no-repeat;
  border: 0;
  border-radius: 12px;
  top: 13px;
  right: 13px;
  width: clamp(48px,14%,72px);
  height: clamp(48px,14%,72px);
  box-shadow: none;
  filter: drop-shadow(0 2px 5px rgba(20,5,7,.3));
}
.qb-offer-ticket.qb-voucher-large:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero::before {
  background: transparent;
  border: 2px solid #f0c56e;
  border-radius: 55% / 50%;
  box-shadow: inset 0 0 0 1px rgba(255,240,200,.35), 0 4px 10px rgba(40,10,10,.15);
  color: #fff6db;
  text-shadow: 0 1px 3px rgba(30,5,5,.95), 0 0 7px rgba(30,5,5,.8);
  width: 36%;
  right: 3.5%;
  bottom: 17px;
  padding: 10px 3px;
  white-space: pre;
  line-height: 1.3;
}
.qb-offer-ticket.qb-voucher-large:is(
  [data-qb-campaign="MD-EARLY-BIRD"],
  [data-qb-campaign="MD-LOYALTY-R001"]
) .qb-voucher-hero > .qb-offer-saving {
  width: auto;
  max-width: 51%;
  left: 3.5%;
  right: auto;
  bottom: 17px;
  transform: none;
}
@media (max-width: 600px) {
  .qb-offer-ticket.qb-voucher-large:is(
    [data-qb-campaign="MD-EARLY-BIRD"],
    [data-qb-campaign="MD-LOYALTY-R001"]
  ) .qb-voucher-hero::before {
    font-size: clamp(10px,3vw,13px);
    padding: 9px 2px;
    min-height: 52px;
  }
}

/* Sales posters: real menu photography, a decisive offer, then a clear next step. */
.qb-momentum-heading {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px;
  margin: 38px 0 14px;
}
.qb-momentum-heading small {
  color: #806655;
  font: 700 13px/1.4 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
.qb-momentum-grid {
  display: grid !important;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 20px;
}
.qb-momentum-card {
  min-width: 0;
  overflow: hidden;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 22px !important;
  background: #3e111b !important;
  box-shadow: 0 15px 31px rgba(75,22,27,.19) !important;
}
.qb-momentum-poster {
  display: grid;
  grid-template-columns: minmax(0,1.13fr) minmax(0,.87fr);
  min-height: 315px;
  color: #fff8e9;
}
.qb-momentum-visual {
  position: relative;
  overflow: hidden;
  min-height: 315px;
  isolation: isolate;
  background: radial-gradient(circle at 42% 41%,#b43938 0,#761326 44%,#310b17 100%);
}
.qb-momentum-visual::before,
.qb-momentum-visual::after {
  content: '';
  position: absolute;
  z-index: -1;
  border: 1px solid rgba(255,222,159,.31);
  border-radius: 50%;
}
.qb-momentum-visual::before { width: 260px; height: 260px; left: -87px; top: 30px; box-shadow: 0 0 0 19px rgba(255,211,125,.08),0 0 0 41px rgba(255,211,125,.05); }
.qb-momentum-visual::after { width: 150px; height: 150px; right: -66px; bottom: -55px; }
.qb-momentum-number {
  position: absolute;
  top: -12px;
  right: 10px;
  z-index: 0;
  color: rgba(255,237,198,.13);
  font: 900 112px/.9 Georgia,"Noto Serif SC",serif;
}
.qb-momentum-kicker,
.qb-momentum-badge {
  position: absolute;
  z-index: 3;
  border-radius: 999px;
  font: 900 10px/1 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  letter-spacing: .12em;
}
.qb-momentum-kicker { top: 18px; left: 18px; padding: 7px 9px; background: #f3c35e; color: #561323; }
.qb-momentum-badge { left: 18px; bottom: 17px; padding: 7px 9px; border: 1px solid rgba(255,238,204,.65); color: #fff5de; background: rgba(56,7,18,.64); }
.qb-momentum-primary {
  position: absolute;
  z-index: 2;
  left: 4%;
  right: 2%;
  bottom: 29px;
  width: 94%;
  height: 74%;
  object-fit: contain;
  filter: drop-shadow(0 18px 15px rgba(35,3,11,.40));
  transform: rotate(-2deg) scale(1.08);
}
.qb-momentum-secondary {
  position: absolute;
  z-index: 3;
  right: 9px;
  bottom: 27px;
  width: 38%;
  height: 42%;
  object-fit: contain;
  filter: drop-shadow(0 10px 10px rgba(35,3,11,.4));
  transform: rotate(6deg);
}
.qb-momentum-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: 27px 23px 23px;
  background: linear-gradient(155deg,#fffdf8 0%,#f8ead3 100%);
  color: #553b34;
}
.qb-momentum-live { margin: 0 0 8px; color: #9a765d; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.qb-momentum-copy h3 { margin: 0 0 10px; color: #720e27; font: 800 clamp(23px,2.3vw,33px)/1.04 Georgia,"Noto Serif SC",serif; letter-spacing: -.03em; }
.qb-momentum-copy > p:not(.qb-momentum-live):not(.qb-momentum-table-note) { margin: 0; color: #6c5145; font-size: 14px; line-height: 1.48; }
.qb-momentum-copy details { margin-top: 13px; color: #745b4d; font-size: 12px; line-height: 1.45; }
.qb-momentum-copy summary { cursor: pointer; color: #7a1630; font-weight: 850; text-decoration: underline; text-underline-offset: 3px; }
.qb-momentum-copy details p { margin: 7px 0 0; }
.qb-momentum-action {
  width: 100%;
  margin-top: auto;
  padding: 12px 13px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(105deg,#780014,#9e2940);
  color: #fff8e9;
  font-weight: 900;
  box-shadow: 0 7px 14px rgba(91,1,12,.20);
}
.qb-momentum-action:hover { filter: brightness(1.08); transform: translateY(-1px); }
.qb-momentum-table-note { margin: auto 0 0; padding-top: 13px; color: #7a1630; font-size: 12px; font-weight: 800; line-height: 1.4; }
.qb-momentum-card[data-qb-campaign="MD-BIRTHDAY"] .qb-momentum-visual { background: radial-gradient(circle at 45% 35%,#f7b6b3 0,#b42e4d 43%,#58132d 100%); }
.qb-momentum-card[data-qb-campaign="MD-WEEKEND"] .qb-momentum-visual { background: radial-gradient(circle at 45% 35%,#e49d46 0,#9d302d 43%,#3f1320 100%); }
.qb-momentum-card[data-qb-campaign="MD-LOYALTY-R001"] .qb-momentum-visual { background: radial-gradient(circle at 43% 36%,#cd9a4f 0,#4c3025 44%,#171211 100%); }
@media(max-width:760px) {
  .qb-momentum-grid { grid-template-columns: 1fr; gap: 16px; }
  .qb-momentum-poster { grid-template-columns: minmax(0,1fr) minmax(0,.96fr); min-height: 283px; }
  .qb-momentum-visual { min-height: 283px; }
  .qb-momentum-copy { padding: 22px 17px 18px; }
  .qb-momentum-copy h3 { font-size: clamp(22px,6vw,30px); }
}
@media(max-width:470px) {
  .qb-momentum-poster { grid-template-columns: 1fr; }
  .qb-momentum-visual { min-height: 270px; }
  .qb-momentum-copy { min-height: 230px; }
  .qb-momentum-heading { margin-top: 29px; }
}
@media(prefers-reduced-motion:reduce) { .qb-momentum-action:hover { transform: none; } }

/* QI_BENTO_RICE_BOWL_POSITION_2026
   Raise the original rice photo without moving voucher badges. */
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-EARLY-BIRD"]
.qb-voucher-hero > .qb-offer-art,
.qb-offer-ticket.qb-voucher-large[data-qb-campaign="MD-LOYALTY-R001"]
.qb-voucher-hero > .qb-offer-art {
  transform: translateY(-60px) scale(1.24);
}


/* QI_BENTO_RESPONSIVE_COMPATIBILITY_2026 */

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

body {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: break-word;
}

main,
section,
article,
.card,
.grid {
  min-width: 0;
}

img,
video,
canvas,
svg {
  max-width: 100%;
}

img {
  height: auto;
}

input,
select,
textarea,
button {
  max-width: 100%;
  font: inherit;
}

input,
select,
textarea {
  box-sizing: border-box;
  min-width: 0;
}

button,
a {
  touch-action: manipulation;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 3px solid #d9a441;
  outline-offset: 3px;
}

.qi-ordering-hero,
.rewards-hero {
  box-sizing: border-box;
  max-width: 100%;
}

.qi-ordering-actions {
  min-width: 0;
}

.qb-offer-ticket.qb-voucher-large {
  box-sizing: border-box;
  max-width: 100%;
}

.qb-offer-ticket.qb-voucher-large
.qb-voucher-hero {
  min-width: 0;
}

.qb-offer-ticket.qb-voucher-large
.qb-voucher-hero > .qb-offer-art {
  max-width: 100%;
}

@media (max-width: 767px) {

  .qi-ordering-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .qi-ordering-actions button {
    width: 100%;
    min-height: 48px;
  }

  .rewards-hero-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .voucher-list {
    grid-template-columns: minmax(0, 1fr);
  }

  .qb-offer-ticket.qb-voucher-large {
    width: 100%;
  }

}

@media (min-width: 768px) and (max-width: 1023px) {

  .voucher-list {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  .qi-ordering-actions {
    flex-wrap: wrap;
  }

}

@media (min-width: 1024px) {

  .qi-ordering-actions {
    flex-direction: row;
  }

}

@media (hover: none) and (pointer: coarse) {

  .qi-ordering-actions button {
    min-height: 48px;
  }

}

@media (prefers-reduced-motion: reduce) {

  html {
    scroll-behavior: auto;
  }

  .qi-ordering-hero *,
  .qb-offer-ticket * {
    scroll-behavior: auto;
  }

}


/* QI_BENTO_CUSTOMER_PURCHASE_FIX_2026 */

main .rewards-hero .rewards-mascot {
  display: none !important;
}

main .rewards-hero.qi-customer-purchase-hero {
  padding: clamp(22px, 4vw, 38px);
  border: 1px solid #d8a954;
  border-radius: 22px;
  background:
    radial-gradient(
      circle at top right,
      rgba(241, 187, 89, .25),
      transparent 50%
    ),
    linear-gradient(135deg, #630b1b, #84243a);
  color: #fff8eb;
}

main .qi-customer-purchase-hero h1 {
  color: #fff8eb;
  font-size: clamp(28px, 4vw, 42px);
  line-height: 1.18;
}

main .qi-customer-purchase-hero p {
  color: #fff0d8;
}

main .qi-purchase-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px;
}

main .qi-purchase-actions button {
  min-height: 52px;
  padding: 12px 20px;
  border-radius: 13px;
  font-weight: 800;
  cursor: pointer;
}

main .qi-purchase-actions [data-online-menu] {
  background: linear-gradient(120deg, #ffe5aa, #e8b45c);
  color: #571020;
  border: 1px solid #ffefcd;
}

main .qi-purchase-actions .qi-signin-cta {
  background: transparent;
  color: #fff9ea;
  border: 1px solid #f0cf93;
}

@media (max-width: 767px) {
  main .qi-purchase-actions {
    flex-direction: column;
  }

  main .qi-purchase-actions button {
    width: 100%;
  }
}

/* QI_BENTO_COMPACT_TRANSPARENT_OWNER_2026 */
main .rewards-hero .rewards-mascot {display:none!important;}
main .qi-compact-owner-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,27%);align-items:center;gap:clamp(8px,2vw,22px);min-width:0;margin:0 0 16px;}
main .qi-compact-owner-copy {min-width:0;}
main .qi-compact-owner-copy h1,main .qi-compact-owner-copy h2 {margin:0!important;color:#fff8eb!important;line-height:1.16;letter-spacing:-.02em;font-size:clamp(25px,3.5vw,40px);overflow-wrap:break-word;}
main .qi-compact-owner-art {display:block;width:100%;max-width:230px;height:auto;max-height:225px;object-fit:contain;justify-self:end;align-self:center;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;filter:drop-shadow(0 7px 9px rgba(28,7,12,.28));}
main .rewards-hero.qi-compact-owner-landing > p {color:#fff1dc!important;}
@media(max-width:600px){main .qi-compact-owner-row{grid-template-columns:minmax(0,1fr) 100px;gap:8px;}main .qi-compact-owner-art{max-height:130px;}main .qi-compact-owner-copy h1,main .qi-compact-owner-copy h2{font-size:clamp(22px,6vw,32px);}}
@media(max-width:350px){main .qi-compact-owner-row{grid-template-columns:minmax(0,1fr) 76px;}main .qi-compact-owner-art{max-height:106px;}}
@media(prefers-reduced-motion:reduce){main .qi-compact-owner-art{animation:none!important;transition:none!important;}}


/* QI BENTO REWARDS READABILITY + MASCOT ANIMATION */

/* Remove legacy rectangular chef from landing page. */
main .rewards-mascot,
main img[src*="/qi-bento-chef-mascot.png"] {
  display: none !important;
}

/* Readable premium typography on cream background. */
main .rewards-hero.qi-readable-rewards:not(.qi-rewards-clean-hero) {
  color: #671b30;
}

main .rewards-hero.qi-readable-rewards:not(.qi-rewards-clean-hero) > h1 {
  color: #68172b !important;
  font-weight: 850;
  line-height: 1.15;
  text-shadow: none !important;
}

main .rewards-hero.qi-readable-rewards:not(.qi-rewards-clean-hero) > p,
main .rewards-hero.qi-readable-rewards:not(.qi-rewards-clean-hero) > p strong {
  color: #63483e !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Burgundy headings and readable descriptions inside offer cards. */
main .voucher-card h3 {
  color: #68172b !important;
}

main .voucher-card p {
  color: #644c40 !important;
  opacity: 1 !important;
}

/* Ensure the secondary sign-in action is visible. */
main .qi-purchase-actions .qi-signin-cta,
main .qi-ordering-actions .qi-rewards-cta {
  color: #68172b !important;
  background: #fff9ed !important;
  border: 1px solid #bd8b49 !important;
}

/* Preserve light lettering only on genuinely dark panels. */
main .qi-rewards-clean-hero > h1,
main .qi-rewards-clean-hero > p,
main .qi-rewards-clean-hero > p strong,
main .qi-purchase-panel h2,
main .qi-purchase-panel > p {
  color: #fff7e8 !important;
}

/* Transparent Owner chef: compact bounce and gentle sway. */
main img[src*="qi-bento-owner-chef-transparent.png"] {
  display: block;
  height: auto;
  max-width: 100%;
  object-fit: contain;
  transform-origin: 50% 85%;
  animation: qiOwnerBounceSway 2.8s ease-in-out infinite !important;
  will-change: transform;
}

@keyframes qiOwnerBounceSway {
  0%, 100% {
    transform: translateY(0) rotate(-2deg);
  }
  12% {
    transform: translateY(-11px) rotate(2deg);
  }
  24% {
    transform: translateY(0) rotate(-1deg);
  }
  36% {
    transform: translateY(-5px) rotate(1.5deg);
  }
  52% {
    transform: translateY(0) rotate(-1deg);
  }
  76% {
    transform: translateY(-3px) rotate(1deg);
  }
}

/* Animated steam rising above the chef's food bowl. */
main .qi-chef-stage {
  position: relative;
}

main .qi-chef-steam {
  position: absolute;
  top: 10%;
  left: 15%;
  width: 34%;
  height: 40%;
  pointer-events: none;
  z-index: 3;
}

main .qi-chef-steam i {
  position: absolute;
  bottom: 0;
  width: 8px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .7);
  filter: blur(5px);
  opacity: 0;
  animation: qiSteamRise 2.4s ease-out infinite;
}

main .qi-chef-steam i:nth-child(1) {
  left: 20%;
}

main .qi-chef-steam i:nth-child(2) {
  left: 45%;
  animation-delay: .65s;
}

main .qi-chef-steam i:nth-child(3) {
  left: 70%;
  animation-delay: 1.3s;
}

@keyframes qiSteamRise {
  0% {
    transform: translateY(8px) scale(.65);
    opacity: 0;
  }
  25% {
    opacity: .65;
  }
  100% {
    transform: translateY(-42px) scale(1.7);
    opacity: 0;
  }
}

/* Phone and tablet safeguards. */
@media (max-width: 767px) {
  main .qi-chef-steam {
    top: 6%;
    left: 12%;
  }

  main .rewards-hero h1 {
    overflow-wrap: anywhere;
  }
}

/* Respect accessibility motion preferences. */
@media (prefers-reduced-motion: reduce) {
  main img[src*="qi-bento-owner-chef-transparent.png"] {
    animation: none !important;
    transform: none !important;
    will-change: auto;
  }

  main .qi-chef-steam i {
    animation: none !important;
    opacity: 0;
  }
}


/* QI_BENTO_REWARDS_CONTRAST_MASCOT_ICON_FIX */

/* Clear, readable cream-and-burgundy landing section. */
main .rewards-hero.qi-final-readable-hero {
  background: #fffaf2 !important;
  color: #612137 !important;
  border: 1px solid #e3c59b !important;
}

main .rewards-hero.qi-final-readable-hero > h1 {
  color: #68182c !important;
  -webkit-text-fill-color: #68182c !important;
  opacity: 1 !important;
  text-shadow: none !important;
  font-weight: 850;
}

main .rewards-hero.qi-final-readable-hero > p,
main .rewards-hero.qi-final-readable-hero > p strong {
  color: #65483e !important;
  -webkit-text-fill-color: #65483e !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

main .rewards-hero.qi-final-readable-hero
.voucher-card p {
  color: #65483e !important;
  -webkit-text-fill-color: #65483e !important;
}

/* Hide the unwanted older mascot versions. */
main .rewards-hero img[src*="qi-bento-chef-mascot.png"],
main .rewards-hero img[src*="qi-bento-menu-mascot.gif"],
main .rewards-hero .rewards-mascot {
  display: none !important;
}

/* Original Braised Pork Rice as the ordering button icon. */
main .qi-rice-order-button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 12px;
  color: #591526 !important;
  font-weight: 850;
  line-height: 1.3;
}

main .qi-rice-order-button .qi-order-rice-icon {
  display: block !important;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  padding: 0;
  margin: 0;
  border-radius: 50%;
  object-fit: cover;
  object-position: center 61%;
  background: #fff2dd;
  border: 2px solid #fff9e8;
  box-shadow: 0 2px 7px rgba(72, 21, 25, .15);
}

@media (max-width: 600px) {
  main .qi-rice-order-button .qi-order-rice-icon {
    width: 38px;
    height: 38px;
    flex-basis: 38px;
  }
}

/* QI_BENTO_LANDING_THREE_FIXES_2026 - exact customer landing corrections */
main .rewards-hero, main .rewards-hero.qi-landing-three-fixed {background:#fffaf2 !important;color:#592a35 !important;}
main .rewards-hero h1, main .rewards-hero.qi-landing-three-fixed h1 {color:#68182c !important;-webkit-text-fill-color:#68182c !important;opacity:1 !important;text-shadow:none !important;}
main .rewards-hero > p,main .rewards-hero > p strong,main .rewards-hero .voucher-card p {color:#62453a !important;-webkit-text-fill-color:#62453a !important;opacity:1 !important;text-shadow:none !important;}
main .rewards-hero .voucher-card h3 {color:#68182c !important;-webkit-text-fill-color:#68182c !important;}
/* Hard-hide all legacy black-background chef assets, including ones re-inserted later. */
main img.rewards-mascot, main img[src*="qi-bento-chef-mascot.png"],main img[src*="qi-bento-menu-mascot.gif"],main .rewards-mascot {display:none !important;}
main .qi-rice-order-button {display:inline-flex !important;align-items:center !important;justify-content:center !important;gap:14px !important;min-height:64px !important;color:#591526 !important;}
main .qi-rice-order-button .qi-order-rice-icon {display:block !important;width:76px !important;height:60px !important;flex:0 0 76px !important;object-fit:contain !important;object-position:center !important;background:transparent !important;border:0 !important;border-radius:0 !important;box-shadow:none !important;padding:0 !important;margin:0 !important;}
@media(max-width:420px) {main .qi-rice-order-button .qi-order-rice-icon {width:60px !important;height:52px !important;flex-basis:60px !important;}main .rewards-hero h1{font-size:clamp(26px,7vw,36px) !important;}}

/* QI_BENTO_APPROVED_LANDING_OCT19_FINAL — customer homepage */
main .rewards-hero.qb-approved-landing,
main .rewards-hero.qb-approved-landing.qi-rewards-clean-hero,
main .rewards-hero.qb-approved-landing.qi-customer-purchase-hero {
  background:#fffaf2 !important;
  background-image:none !important;
  color:#652c38 !important;
  border:1px solid #e6c997 !important;
  border-radius:22px !important;
  box-shadow:0 14px 28px rgba(104,40,46,.08) !important;
}
main .rewards-hero.qb-approved-landing h1 {
  color:#79152b !important;
  -webkit-text-fill-color:#79152b !important;
  text-shadow:none !important;
  opacity:1 !important;
  font-family:Georgia,'Noto Serif SC',serif;
  font-weight:800;
  font-size:clamp(28px,4vw,47px);
  line-height:1.15;
  max-width:calc(100% - 112px);
}
main .rewards-hero.qb-approved-landing > p,
main .rewards-hero.qb-approved-landing > p strong,
main .rewards-hero.qb-approved-landing .voucher-card p {
  color:#68463e !important;
  -webkit-text-fill-color:#68463e !important;
  opacity:1 !important;
  text-shadow:none !important;
}
main .rewards-hero.qb-approved-landing .voucher-card h3 {color:#79152b !important;}
main .rewards-hero.qb-approved-landing .qb-approved-actions {
  display:grid !important;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  margin:22px 0 !important;
  width:100%;
  padding:0;
}
main .rewards-hero.qb-approved-landing .qb-approved-actions button {
  display:flex !important;
  align-items:center;
  justify-content:center;
  gap:14px;
  width:100% !important;
  min-height:62px;
  padding:11px 18px;
  font-weight:800;
  font-size:clamp(15px,1.8vw,20px);
  border-radius:16px;
  cursor:pointer;
  -webkit-text-fill-color:currentColor !important;
}
main .rewards-hero.qb-approved-landing .qb-approved-actions .qb-approved-order {
  background:linear-gradient(110deg,#ffe2a2,#edba60) !important;
  color:#6d172b !important;
  border:1px solid #eac078 !important;
}
main .rewards-hero.qb-approved-landing .qb-approved-actions .qb-approved-signin {
  background:#fffaf2 !important;
  color:#70172d !important;
  border:1px solid #c28d45 !important;
}
main .rewards-hero.qb-approved-landing .qi-order-rice-icon {
  width:76px !important;
  height:62px !important;
  flex:0 0 76px !important;
  object-fit:contain !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  padding:0 !important;
}
/* The old rectangular chef is separate from the compact transparent chef. */
main .rewards-mascot,
main img[src*='qi-bento-chef-mascot.png'],
main img[src*='qi-bento-menu-mascot.gif'] {display:none !important;}
@media(max-width:600px) {
  main .rewards-hero.qb-approved-landing h1 {font-size:clamp(26px,7vw,36px);max-width:calc(100% - 95px);}
  main .rewards-hero.qb-approved-landing .qi-order-rice-icon {width:62px !important;height:55px !important;flex-basis:62px !important;}
  main .rewards-hero.qb-approved-landing .qb-approved-actions button {min-height:58px;}
}


/* QI_BENTO_LEGACY_MASCOT_BRAND_FIX_2026 */

/* Remove the old rectangular mascot throughout the
   public Rewards landing view. */
main:has(.rewards-hero)
img[src*="qi-bento-chef-mascot.png"],
main:has(.rewards-hero)
img[src*="qi-bento-menu-mascot.gif"],
main:has(.rewards-hero)
.rewards-mascot {
  display: none !important;
}

/* Fallback for browsers without :has() support. */
main .rewards-hero
img[src*="qi-bento-chef-mascot.png"],
main .rewards-hero
img[src*="qi-bento-menu-mascot.gif"],
main .rewards-hero .rewards-mascot {
  display: none !important;
}

/* Keep the NEW transparent Owner chef visible. */
main img[src*="qi-bento-owner-chef-transparent.png"] {
  display: block !important;
  background: transparent !important;
}

/* Correct dark branding text on the burgundy header. */
header small,
header .brand small,
header .brand-subtitle,
header .brand-tagline {
  color: #f4cf83 !important;
  -webkit-text-fill-color: #f4cf83 !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Preserve readable title text in the cream Rewards hero. */
main .rewards-hero > h1 {
  color: #74172e !important;
  -webkit-text-fill-color: #74172e !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

main .rewards-hero > p,
main .rewards-hero > p strong {
  color: #67483e !important;
  -webkit-text-fill-color: #67483e !important;
  opacity: 1 !important;
}

/* Avoid overriding dark foreground on the ordering CTA. */
main .qi-purchase-actions button,
main .qi-ordering-actions button {
  opacity: 1;
}

/* Qi Bento original food image presentation */
#menu .qi-drive-menu-photo { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; object-position:center; height:auto; border-radius:14px; margin:0 0 12px; background:#f6eee1; }
@media (max-width:600px) { #menu .qi-drive-menu-photo { aspect-ratio: 5/4; } }

/* QI_BENTO_MILESTONE_ORIGINAL_PHOTOS_20261019
   Original Qi Bento photography for the Visit 3, 6 and 10 Foodie Bonanza gifts.
   Fit full original square photo; no zoom/cropping or overlay. */
.premium-bonanza .bonanza-milestone.qb-gift-reward-card .qb-gift-milestone-art {
  height: clamp(150px, 20vw, 198px);
  min-height: 150px;
  max-height: 198px;
  overflow: hidden;
  display: grid;
  place-items: center;
}
.premium-bonanza .bonanza-milestone.qb-gift-reward-card .qb-gift-card-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  transform: none;
  max-width: 100%;
  max-height: 100%;
}

/* QI_BENTO_MILESTONES_CENTERED_TRANSPARENT_2026
   Original milestone artwork as cutouts; no beige square photo backgrounds. */
.premium-bonanza .bonanza-milestone .qb-gift-milestone-art,
.premium-bonanza .bonanza-milestone.qb-gift-reward-card .qb-gift-milestone-art {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 4px !important;
  box-sizing: border-box !important;
  background: transparent !important;
  overflow: hidden !important;
  width: 100% !important;
  height: clamp(144px, 19vw, 190px) !important;
  min-height: 144px !important;
  max-height: 190px !important;
}
.premium-bonanza .bonanza-milestone .qb-gift-card-image,
.premium-bonanza .bonanza-milestone.qb-gift-reward-card .qb-gift-card-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: auto !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  transform: none !important;
  box-shadow: none !important;
}
@media (max-width: 600px) {
  .premium-bonanza .bonanza-milestone .qb-gift-milestone-art {height: 160px !important; max-height:160px !important;}
}


/* QI_BENTO_COMPACT_MILESTONES_OCT2026
   Larger original food cutouts and reduced empty spacing.
   Presentation only; reward behaviour is unchanged.
*/

.premium-bonanza .bonanza-milestone.qb-gift-reward-card {
  box-sizing: border-box;
  min-height: 195px;
  padding: 12px;
  overflow: hidden;
}

/* Keep transparent food artwork centered. */

.premium-bonanza
.bonanza-milestone.qb-gift-reward-card
.qb-gift-milestone-art {
  height: 164px !important;
  min-height: 164px !important;
  max-height: 164px !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  overflow: hidden !important;
}

/* Enlarge the visible food within its transparent canvas. */

.premium-bonanza
.bonanza-milestone.qb-gift-reward-card
.qb-gift-card-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  max-width: 100% !important;
  max-height: 100% !important;
  object-fit: contain !important;
  object-position: center !important;
  transform: scale(1.55) !important;
  transform-origin: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Taller tea cup has different proportions. */

.premium-bonanza
.qb-gift-reward-card[data-qb-gift="3"]
.qb-gift-card-image {
  transform: scale(1.42) !important;
}

/* Make both original bowls more prominent. */

.premium-bonanza
.qb-gift-reward-card[data-qb-gift="6"]
.qb-gift-card-image {
  transform: scale(1.7) !important;
}

.premium-bonanza
.qb-gift-reward-card[data-qb-gift="10"]
.qb-gift-card-image {
  transform: scale(1.7) !important;
}

/* Phone layout. */

@media (max-width: 600px) {
  .premium-bonanza
  .bonanza-milestone.qb-gift-reward-card {
    min-height: 184px;
    padding: 10px;
  }

  .premium-bonanza
  .bonanza-milestone.qb-gift-reward-card
  .qb-gift-milestone-art {
    height: 152px !important;
    min-height: 152px !important;
    max-height: 152px !important;
  }
}

/* Customer wallet offers: show the food and the reason to use each deal. */
.member-offers-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px}
.member-offer-card{display:grid;grid-template-columns:minmax(120px,36%) 1fr;min-height:174px;overflow:hidden;border:1px solid #e7d1b5;border-radius:18px;background:linear-gradient(145deg,#fffdf8,#fff5e4);box-shadow:0 8px 22px #4b30200c}
.member-offer-image{width:100%;height:100%;min-height:174px;max-height:220px;object-fit:cover;background:#f2e3d2}
.member-offer-content{display:flex;flex-direction:column;align-items:flex-start;padding:18px 18px 16px}
.member-offer-label{display:inline-flex;margin-bottom:9px;padding:5px 9px;border-radius:999px;background:#f2dfbd;color:#743020;font-size:10px;font-weight:850;letter-spacing:.1em}
.member-offer-content h3{margin:0 0 8px;color:#68182c;font-size:18px;line-height:1.25}
.member-offer-value{margin:0 0 8px;color:#8a4b12;font-size:17px;font-weight:900}
.member-offer-content p{margin:0 0 11px;color:#654d42;font-size:14px;line-height:1.45}
.member-offer-content small{margin-top:auto;color:#766357;font-size:12px;line-height:1.4}
@media(max-width:520px){.member-offer-card{grid-template-columns:112px 1fr;min-height:150px}.member-offer-image{min-height:150px;max-height:190px}.member-offer-content{padding:13px 12px}.member-offer-content h3{font-size:16px}.member-offer-content p{font-size:13px}.member-offer-label{font-size:9px}}

/* Friday duo: show both included menu items, including on narrow phones. */
.member-offer-duo{position:relative;display:grid;grid-template-rows:1fr 1fr;align-self:stretch;min-height:240px;background:#f2e3d2;overflow:hidden}
.member-offer-duo>img{display:block;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:1;object-fit:cover}
.member-offer-duo-plus{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#68182c;color:#fff4dd;border:2px solid #fff4dd;font:bold 22px/1 system-ui;box-shadow:0 2px 8px #30101b30}
.qb-wallet-coupon-art{display:grid;grid-template-columns:1fr;margin:-10px -10px 16px;min-height:150px;border-radius:15px;overflow:hidden;background:#f2e3d2}.qb-wallet-coupon-art.is-pair{grid-template-columns:1fr 1fr}.qb-wallet-coupon-art img{display:block;width:100%;height:170px;object-fit:contain;background:linear-gradient(145deg,#f7ead5,#fffaf1)}
