/* Do not show unavailable days while the server calendar is still unknown. */
.booking-calendar { min-height: 194px; }
.calendar-state {
  min-height: 194px; padding: 24px 18px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 11px; text-align: center;
  border: 1px solid #d8ddcf; border-radius: 16px;
  background: linear-gradient(145deg, #eef0e7, #f7f6f0); color: var(--ink);
}
.calendar-state[hidden], .calendar-content[hidden], .calendar-retry[hidden] { display: none; }
.calendar-loader { position: relative; display: grid; place-items: center; width: 62px; height: 62px; }
.calendar-loader::before {
  content: ''; position: absolute; inset: 0; border-radius: 50%;
  border: 1.5px solid #c9d1bf; border-top-color: #526746; border-right-color: #526746;
  animation: calendar-spin 1.3s linear infinite;
}
.calendar-loader svg { display: block; width: 29px; height: 33px; fill: #59694d; }
.calendar-wordmark { font: 500 12px var(--body); letter-spacing: 3px; margin-left: 3px; color: #526147; }
.calendar-state p { font-size: 14px; line-height: 1.5; color: #68715f; }
.calendar-retry { padding: 10px 18px; border-radius: 9px; background: var(--olive); color: var(--cream); font: inherit; font-size: 14px; }
.calendar-state.is-error .calendar-loader::before { animation: none; border-color: #c9d1bf; }
@keyframes calendar-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .calendar-loader::before { animation: none; } }
