.promotion-theme[data-theme="carnaval"] { --offer-ink: #5d226d; --offer-paper: #fff0da; --offer-accent: #dc8850; }
.promotion-theme[data-theme="pascoa"] { --offer-ink: #54326d; --offer-paper: #f6eef9; --offer-accent: #c1a1cc; }
.promotion-theme[data-theme="maes"] { --offer-ink: #7b344e; --offer-paper: #fbedf1; --offer-accent: #ca879d; }
.promotion-theme[data-theme="junina"] { --offer-ink: #753619; --offer-paper: #fff1cd; --offer-accent: #d89447; }
.promotion-theme[data-theme="pais"] { --offer-ink: #214961; --offer-paper: #eaf3f7; --offer-accent: #81a9bf; }
.promotion-theme[data-theme="criancas"] { --offer-ink: #204f62; --offer-paper: #eaf8ed; --offer-accent: #77ae93; }
.promotion-theme[data-theme="aparecida"] { --offer-ink: #203e77; --offer-paper: #edf2fa; --offer-accent: #bf9f5d; }
.promotion-theme[data-theme="natal"] { --offer-ink: #174a37; --offer-paper: #fcf4dd; --offer-accent: #b48a3b; }
.promotion-theme[data-theme="reveillon"] { --offer-ink: #5e461b; --offer-paper: #fffaf0; --offer-accent: #c1a767; }

.promotion-heading[data-theme]:not([data-theme="default"]) {
  padding: 8px 12px;
  border: 1px solid var(--offer-accent);
  border-radius: 12px;
  background: var(--offer-paper);
}
.promotion-heading[data-theme] h2 { color: var(--offer-ink, var(--brown)); }
.weekly-deals-section { position: relative; isolation: isolate; }
.promotion-snow { display: none; }
.weekly-deals-section[data-theme="natal"] .promotion-snow {
  display: block;
  position: absolute;
  inset: -10px 0 -12px;
  z-index: -1;
  overflow: hidden;
  border: 1px solid #b48a3b;
  border-radius: 18px;
  background: linear-gradient(145deg, #245541, #14392d 75%);
  pointer-events: none;
}
.promotion-snow::before,
.promotion-snow::after {
  content: "";
  position: absolute;
  inset: -112px 0 0;
  background:
    radial-gradient(circle at 18px 20px, #fff9ec 0 1px, transparent 2px),
    radial-gradient(circle at 78px 61px, #fff9ec 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 126px 93px, #fff9ec 0 1px, transparent 2px);
  background-size: 152px 112px;
  opacity: 0.58;
}
.promotion-snow::after {
  background-position: 42px 40px;
  opacity: 0.28;
}
@media (prefers-reduced-motion: no-preference) {
  .weekly-deals-section[data-theme="natal"].promotion-in-view .promotion-snow::before,
  .weekly-deals-section[data-theme="natal"].promotion-in-view .promotion-snow::after {
    animation: promotion-snowfall 4.8s linear infinite;
  }
}
@keyframes promotion-snowfall {
  to { transform: translateY(112px); }
}
.promotion-heading-title { display: flex; align-items: center; gap: clamp(8px, 2vw, 24px); }
.promotion-heading .promotion-mascot {
  display: block;
  width: auto;
  height: clamp(68px, 9vw, 96px);
  object-fit: contain;
  margin-bottom: -8px;
  align-self: end;
}
.weekly-deal-card[data-theme] { border-color: var(--offer-accent, var(--line)); }
.weekly-deal-card[data-theme] .weekly-deal-photo { background: var(--offer-paper, var(--cream-2)); }
.weekly-deal-card[data-theme] .weekly-deal-tag,
.weekly-deal-card[data-theme] .weekly-deal-button { background: var(--offer-ink, var(--brown)); color: #fffdfa; }
.weekly-deal-card[data-theme] .weekly-deal-button:hover { text-decoration: underline; }
.weekly-deal-card[data-theme] .weekly-deal-category,
.weekly-deal-card[data-theme] .weekly-deal-price strong { color: var(--offer-ink, var(--brown-2)); }

.weekly-deal-discount {
  position: absolute;
  right: 6px;
  bottom: 6px;
  display: grid;
  place-content: center;
  width: 50px;
  aspect-ratio: 1;
  border: 1px solid #fffdfa;
  border-radius: 50%;
  background: var(--offer-ink, var(--brown));
  color: #fffdfa;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  text-align: center;
}
.weekly-deal-discount strong { font-size: 12px; }
.weekly-deal-discount small { font-size: 9px; }
@media (max-width: 620px) {
  .weekly-deal-discount { width: 40px; right: 4px; bottom: 3px; }
  .weekly-deal-discount strong { font-size: 11px; }
  .weekly-deal-discount small { font-size: 8px; }
  .weekly-deal-tag { top: 5px; padding: 4px 6px; line-height: 1.1; }
}

.promotion-preview {
  --preview-ink: var(--offer-ink, var(--brown));
  --preview-paper: var(--offer-paper, var(--cream2));
  padding: 10px 12px;
  border: 1px solid var(--offer-accent, var(--line));
  border-radius: 12px;
  background: var(--preview-paper);
  color: var(--preview-ink);
  overflow-wrap: anywhere;
}
.promotion-preview small, .promotion-preview strong { display: block; }
.promotion-preview small { margin-bottom: 4px; font-weight: 700; }
.promotion-preview-price { display: block; margin-top: 4px; font-weight: 800; }
.promotion-preview-discount { display: block; margin-top: 2px; font-size: 12px; font-weight: 700; }
