.calendar-formats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.calendar-format-card label { display: block; min-height: 0; padding: 0; overflow: hidden; text-align: left; }
.calendar-format-image { position: relative; display: flex; aspect-ratio: 4 / 3; align-items: center; justify-content: center; overflow: hidden; padding: 0; border-bottom: 0; background: #fff; }
.calendar-format-image img { width: 100%; height: 100%; object-fit: contain; }
.calendar-format-copy { display: grid; min-height: 82px; align-content: center; gap: 4px; padding: 11px 13px 12px; }
.calendar-format-copy strong { font-size: .92rem; line-height: 1.2; }
.calendar-format-copy small { color: var(--pc-muted); font-size: .75rem; line-height: 1.3; }
.calendar-format-card--peana .calendar-format-copy { min-height: 104px; }
.calendar-format-copy .calendar-format-note { color: var(--pc-text); font-size: .7rem; font-weight: 750; line-height: 1.3; }
.calendar-selected-preview { display: grid; grid-template-columns: minmax(220px, .8fr) minmax(0, 1.2fr); gap: 22px; align-items: center; margin-top: 18px; padding: 18px; border: 1px solid #d8dde5; border-radius: 16px; background: #f7f8fa; scroll-margin-top: 88px; }
.calendar-selected-preview > p { grid-column: 1 / -1; margin: 0; color: var(--pc-muted); text-align: center; }
.calendar-selected-preview__image { display: grid; width: 100%; min-height: 0; aspect-ratio: 4 / 3; overflow: hidden; place-items: center; border-radius: 12px; background: #fff; }
.calendar-selected-preview__image img { width: 100%; height: 100%; max-height: none; object-fit: contain; border-radius: 12px; }
.calendar-selected-preview__eyebrow { color: var(--pc-pink); font-size: .72rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.calendar-selected-preview h3 { margin: 5px 0 12px; font-size: 1.35rem; }
.calendar-selected-preview ul { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: #4d5666; font-size: .84rem; }
.calendar-quantities { grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); }
.calendar-quantities label { min-height: 132px; align-content: center; gap: 4px; text-align: center; }
.calendar-quantities label > span { color: var(--pc-pink); font-size: 1rem; font-weight: 850; }
.calendar-quantities label > small { color: var(--pc-muted); font-size: .78rem; }
.calendar-quantities .quantity-saving { display: block; margin-top: 5px; color: #14633d; font-size: .76rem; font-weight: 850; }
.calendar-quantities .quantity-saving--base { color: var(--pc-muted); }
.calendar-custom-quantity {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 8px;
  max-width: 440px;
  margin-top: 18px;
}
.calendar-custom-quantity label { margin: 0; font-weight: 800; }
.calendar-custom-quantity input {
  width: 100%;
  min-height: 52px;
  padding: 0 14px;
  border: 1px solid #bcc7d5;
  border-radius: 12px;
  background: #fff;
  color: var(--pc-text);
  font: inherit;
}
.calendar-custom-quantity input:focus { border-color: var(--pc-pink); outline: 3px solid rgba(235, 0, 105, .15); }
.calendar-custom-quantity small { margin: 0; color: var(--pc-muted); line-height: 1.45; }
.calendar-date { max-width: 360px; }
.calendar-date input { width: 100%; }

@media (max-width: 760px) {
  .calendar-formats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .calendar-format-copy { min-height: 88px; padding: 10px 11px 11px; }
  .calendar-format-card--peana .calendar-format-copy { min-height: 106px; }
  .calendar-selected-preview { grid-template-columns: 1fr; }
  .calendar-quantities { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 390px) {
  .calendar-format-copy { min-height: 94px; }
}
