/* Promo calendar - view switcher + year grid (CAL-01 parent layer) */

.promo-calendar-wrap.is-loading {
  opacity: 0.55;
  pointer-events: none;
}

.promo-calendar__views {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 0 1rem;
}

.promo-calendar__view-link {
  display: inline-block;
  padding: 0.35rem 0.85rem;
  border: 1px solid var(--dv-color-border, #cfc9bc);
  border-radius: var(--dv-calendar-view-radius, 999px);
  text-decoration: none;
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: inherit;
}

.promo-calendar__view-link.is-active {
  background: var(--dv-color-heading, #1f2a2e);
  border-color: var(--dv-color-heading, #1f2a2e);
  color: var(--dv-color-primary-contrast, #fff);
}

.promo-calendar__year-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (min-width: 768px) {
  .promo-calendar__year-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.promo-calendar__year-month {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--dv-color-border, #cfc9bc);
  border-radius: var(--dv-radius, 0.5rem);
  text-decoration: none;
  color: inherit;
  min-height: 4.5rem;
}

.promo-calendar__year-month.has-events {
  outline: 1px solid var(--dv-rule-accent, #b0823f);
  outline-offset: -1px;
}

.promo-calendar__year-month-label {
  font-family: var(--dv-font-heading, inherit);
  font-size: 1rem;
}

.promo-calendar__year-month-count {
  font-size: 0.78rem;
  color: var(--dv-color-muted-ink, #8a8378);
}

.promo-calendar__event a {
  border-radius: var(--dv-calendar-event-radius, 0);
}

.promo-calendar__event--span a {
  font-style: italic;
}

.promo-calendar__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.promo-calendar__month {
  flex: 1 1 auto;
  text-align: center;
  line-height: 1.3;
}

.promo-calendar__nav {
  flex: 0 0 auto;
}

/* Mobile week/month render as scoped list (server-side list_mode). */
.promo-calendar--list-mode .promo-calendar__grid {
  display: none;
}

@media (max-width: 767px) {
  .promo-calendar--month:not(.promo-calendar--list-mode) .promo-calendar__grid,
  .promo-calendar--week:not(.promo-calendar--list-mode) .promo-calendar__grid {
    display: none;
  }

  .promo-calendar-wrap[data-promo-calendar-pending-mobile="1"]:not(.is-ready) {
    min-height: 8rem;
  }
}

.promo-calendar__list-item a {
  align-items: center;
}

/* Upcoming promos companion block */
.upcoming-promos__title {
  margin: 0 0 1rem;
}

.upcoming-promos__item.is-collapsed {
  display: none;
}

.upcoming-promos__more {
  margin-top: 1rem;
}

.upcoming-promos__calendar-link {
  margin: 1.25rem 0 0;
}
