.jpb-bundle__items {
  display: grid;
  gap: 12px;
  margin: 18px 0;
}

.jpb-bundle__item {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid rgba(0, 0, 0, .12);
  border-radius: 10px;
}

.jpb-bundle__image img {
  display: block;
  width: 88px;
  height: 88px;
  object-fit: contain;
}

.jpb-bundle__details h3,
.jpb-bundle__quantity {
  margin: 0 0 7px;
}

.jpb-bundle__details label {
  display: grid;
  gap: 5px;
}

.jpb-bundle__summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
  margin: 16px 0;
  padding: 14px;
  border-radius: 10px;
  background: #f2f8f4;
}

.jpb-bundle__summary strong {
  font-size: 1.35em;
}

.jpb-bundle__saving {
  padding: 4px 9px;
  border-radius: 999px;
  background: #177245;
  color: #fff;
  font-weight: 700;
}
.jpb-promotion-archive {
  width: min(1480px, calc(100% - 40px));
  margin: 0 auto;
  padding: 64px 0 90px;
}
.jpb-promotion-archive__header { max-width: 760px; margin-bottom: 36px; }
.jpb-promotion-archive__header h1 { margin: 6px 0 12px; font-size: clamp(2.2rem, 5vw, 4.8rem); }
.jpb-eyebrow { letter-spacing: .16em; text-transform: uppercase; font-size: .76rem; font-weight: 800; }
.jpb-promotion-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.jpb-promotion-card { display: flex; flex-direction: column; height: 100%; overflow: hidden; border: 1px solid #ecece8; border-radius: 16px; background: #fff; color: #111; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.06); }
.jpb-promotion-card__image { position: relative; display: block; aspect-ratio: 1 / 1; background: #f6f6f4; overflow: hidden; }
.jpb-promotion-card__image img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.jpb-promotion-card:hover .jpb-promotion-card__image img { transform: none; }
.jpb-promotion-card__badge { position: absolute; top: 16px; right: 16px; padding: 8px 12px; border-radius: 999px; background: #e32636; color: #fff; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.jpb-promotion-card__body { display: flex; flex-direction: column; flex: 1 1 auto; gap: 10px; padding: 18px 18px 16px; }
.jpb-promotion-card__body h2, .jpb-promotion-card__body p { margin: 0; }
.jpb-promotion-card__body h2 { font-size: 1.08rem; line-height: 1.3; color: #111; }
.jpb-promotion-card__body h2 a { color: #111; text-decoration: none; }
.jpb-promotion-card__body > p { color: #555; flex: 1 1 auto; }
.jpb-promotion-card__price { display: flex; align-items: baseline; gap: 12px; color: #111; }
.jpb-promotion-card__price strong { font-size: 1.2rem; }
.jpb-promotion-card__price span { display: none; }
.jpb-promotion-card__actions { margin-top: auto; display: flex; justify-content: flex-end; }
.jpb-promotion-card__body > a.button,
.jpb-promotion-card__actions .button {
  margin-top: auto;
  align-self: flex-end;
  justify-self: end;
  background: none;
  border: 0;
  box-shadow: none;
  color: #111;
  font-weight: 600;
  padding: 0;
}
.jpb-promotion-archive__empty { padding: 48px; border: 1px solid #25282d; border-radius: 22px; text-align: center; }
.jpb-promotion-pagination { margin-top: 40px; text-align: center; }

@media (max-width: 980px) {
  .jpb-promotion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .jpb-promotion-archive { width: min(100% - 24px, 1480px); padding-top: 36px; }
  .jpb-promotion-grid { grid-template-columns: 1fr; }
}
