/* Promoções — compactação visual sem alterar a identidade do design */
.promotions,
.promotions * { box-sizing: border-box !important; }

.promotions {
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:12px 0 14px !important;
  overflow:visible !important;
  color:#292929;
  font-family:inherit;
}

.promotions .promotion-single {
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 0 9px !important;
  padding:0 3px !important;
}

.promotions .promotion-heading { flex:1 1 auto !important; min-width:0 !important; }
.promotions .promotion-single small {
  display:block !important;
  color:#9a6c20 !important;
  font-size:9px !important;
  font-weight:700 !important;
  letter-spacing:1.5px !important;
}
.promotions .promotion-single h3 {
  margin:0 !important;
  color:#292929 !important;
  font-size:23px !important;
  font-weight:750 !important;
  line-height:1.1 !important;
}
.promotions .promotion-single p {
  margin:2px 0 0 !important;
  color:#777 !important;
  font-size:11px !important;
  line-height:1.15 !important;
}
.promotions .promotion-megaphone {
  display:grid !important;
  place-items:center !important;
  flex:0 0 40px !important;
  width:40px !important;
  height:40px !important;
  border:1px solid #e5c77d !important;
  border-radius:12px !important;
  background:#f3eee3 !important;
  font-size:20px !important;
}
.promotions .promotion-arrows {
  display:flex !important;
  flex:0 0 auto !important;
  gap:5px !important;
  margin-left:auto !important;
}
.promotions .promotion-arrows button {
  display:grid !important;
  place-items:center !important;
  width:30px !important;
  height:30px !important;
  padding:0 !important;
  border-radius:50% !important;
  background:#f5f5f5 !important;
  border:1px solid #e4e4e4 !important;
  font-size:20px !important;
  line-height:1 !important;
  color:#444 !important;
  cursor:pointer !important;
}

/* Os três combos ficam visíveis ao mesmo tempo; não há rolagem lateral. */
.promotions .promotion-content {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  padding:0 2px 5px !important;
  margin:0 !important;
  overflow:visible !important;
}

.promotions .promotion-card {
  position:relative !important;
  display:flex !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  float:none !important;
  clear:none !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  gap:7px !important;
  padding:11px 9px 8px !important;
  margin:0 !important;
  background:#fff !important;
  border:1px solid #e8e8e8 !important;
  border-top:6px solid #101010 !important;
  border-radius:18px !important;
  box-shadow:0 3px 8px #0000000c !important;
  white-space:normal !important;
  cursor:pointer !important;
  overflow:hidden !important;
  scroll-snap-align:none !important;
}

.promotions .promotion-card-top {
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  gap:4px !important;
  width:100% !important;
  min-width:0 !important;
}
.promotions .promotion-quantity {
  display:flex !important;
  flex-direction:row !important;
  align-items:baseline !important;
  gap:3px !important;
  white-space:nowrap !important;
  min-width:0 !important;
  max-width:100% !important;
}
.promotions .promotion-quantity strong {
  font-size:23px !important;
  line-height:1 !important;
  font-weight:750 !important;
  color:#292929 !important;
}
.promotions .promotion-quantity span {
  font-size:10px !important;
  color:#555 !important;
}
.promotions .promotion-discount {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  max-width:100% !important;
  padding:4px 6px !important;
  border-radius:16px !important;
  background:#ffe68a !important;
  color:#5c4a14 !important;
  font-weight:750 !important;
  font-size:9px !important;
  white-space:nowrap !important;
}
.promotions .promotion-prices {
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  padding:0 !important;
}
.promotions .promotion-original {
  display:block !important;
  color:#858585 !important;
  font-size:9px !important;
  line-height:1.15 !important;
  text-decoration:line-through !important;
  margin:0 0 3px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.promotions .promotion-current {
  display:block !important;
  font-size:10px !important;
  line-height:1.1 !important;
  color:#292929 !important;
  white-space:nowrap !important;
}
.promotions .promotion-current strong {
  font-size:19px !important;
  font-weight:800 !important;
  letter-spacing:-.5px !important;
  color:#111 !important;
}
.promotions .promotion-hidden-value { display:none !important; }
.promotions .promotion-choose {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:4px !important;
  width:100% !important;
  min-width:0 !important;
  min-height:34px !important;
  margin-top:auto !important;
  padding:7px 6px !important;
  border:0 !important;
  border-top:1px solid #e2e2e2 !important;
  border-radius:0 0 9px 9px !important;
  background:#f8f8f8 !important;
  color:#222 !important;
  text-align:left !important;
  font-family:inherit !important;
  font-size:9px !important;
  font-weight:600 !important;
  line-height:1.15 !important;
  white-space:normal !important;
  cursor:pointer !important;
  -webkit-tap-highlight-color:transparent !important;
}
.promotions .promotion-choose span {
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
}
.promotions .promotion-choose b {
  flex:0 0 auto !important;
  font-size:15px !important;
  font-weight:400 !important;
}

.promotions .promotion-selection-summary {
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  flex-wrap:wrap !important;
  margin:2px 2px 0 !important;
  padding:5px 7px !important;
  border-radius:8px !important;
  background:#fff !important;
  border:1px solid #e5e5e5 !important;
  color:#666 !important;
  font-size:10px !important;
  box-shadow:0 2px 6px rgba(0,0,0,.05) !important;
}
.promotions .promotion-selection-summary strong { color:#198754 !important; font-size:11px !important; }
.promotions .promotion-card.promotion-picked {
  transform:translateY(-1px) !important;
  box-shadow:0 0 0 2px #25cff2,0 5px 12px rgba(37,207,242,.14) !important;
}
.promotions .promotion-card { transition:transform .18s ease,box-shadow .18s ease !important; }

@media(max-width:380px) {
  .promotions { margin:10px 0 12px !important; }
  .promotions .promotion-single { gap:5px !important; margin-bottom:7px !important; }
  .promotions .promotion-megaphone { flex-basis:34px !important; width:34px !important; height:34px !important; font-size:17px !important; border-radius:10px !important; }
  .promotions .promotion-single h3 { font-size:20px !important; }
  .promotions .promotion-single p { font-size:10px !important; }
  .promotions .promotion-arrows button { width:27px !important; height:27px !important; font-size:18px !important; }
  .promotions .promotion-content { gap:5px !important; padding-left:0 !important; padding-right:0 !important; }
  .promotions .promotion-card { padding:9px 6px 6px !important; border-top-width:5px !important; border-radius:15px !important; gap:5px !important; }
  .promotions .promotion-quantity strong { font-size:20px !important; }
  .promotions .promotion-quantity span { font-size:8px !important; }
  .promotions .promotion-discount { font-size:8px !important; padding:3px 5px !important; }
  .promotions .promotion-current { font-size:9px !important; }
  .promotions .promotion-current strong { font-size:16px !important; }
  .promotions .promotion-choose { min-height:31px !important; padding:6px 4px !important; font-size:8px !important; }
  .promotions .promotion-choose b { font-size:13px !important; }
  .promotions .promotion-selection-summary { font-size:9px !important; }
}
