/* ===== Museum Calendar Datepicker ===== */

.museum-calendar-date-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.museum-calendar-widget {
  width: 100%;
  max-width: none;
  margin-top: 0.75rem;
}

.museum-calendar-widget .museum-calendar {
  position: relative;
  width: 100%;
  padding: 2.5rem 3rem 2rem !important;
  border: 1px solid #dad7d2 !important;
  background: #ffffff !important;
  box-shadow: none !important;
  border-radius: 0 !important;
}

.museum-calendar-widget .museum-calendar.is-loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 253, 250, 0.7);
  pointer-events: none;
}

/* ---- Header ---- */

.museum-calendar-widget .museum-calendar__header {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 1rem !important;
  margin-bottom: 2rem !important;
}

.museum-calendar-widget .museum-calendar__title {
  display: inline-flex !important;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  justify-self: start !important;
}

.museum-calendar-widget .museum-calendar__month {
  color: #1a1815;
  font-family: "EB Garamond", Georgia, serif;
  font-size: 2.125rem; /* ~34px */
  font-weight: 400;
  line-height: 1;
  text-transform: capitalize;
}

.museum-calendar-widget .museum-calendar__year {
  color: #a8a49e;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.75rem; /* 12px */
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-transform: uppercase;
}

/* Nav group — two buttons side by side, top-right */

.museum-calendar-widget .museum-calendar__nav-group {
  display: inline-flex !important;
  gap: 0.375rem !important;
  justify-self: end !important;
}

.museum-calendar-widget .museum-calendar__nav {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.625rem;  /* ~42px */
  height: 2.625rem;
  padding: 0;
  border: 1px solid #dad7d2;
  border-radius: 0.25rem;
  background: #ffffff;
  color: #908d87;
  cursor: pointer;
  font-size: 1.25rem;
  font-weight: 300;
  line-height: 1;
  transition: border-color 120ms ease-out, color 120ms ease-out;
}

.museum-calendar-widget .museum-calendar__nav:hover:not(:disabled) {
  border-color: #b0aba4;
  color: #1a1815;
}

.museum-calendar-widget .museum-calendar__nav:focus-visible {
  outline: 2px solid #b73d1d;
  outline-offset: 2px;
}

.museum-calendar-widget .museum-calendar__nav:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

/* ---- Weekdays ---- */

.museum-calendar-widget .museum-calendar__weekdays,
.museum-calendar-widget .museum-calendar__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.museum-calendar-widget .museum-calendar__weekdays {
  padding-bottom: 0.75rem;
  margin-bottom: 0;
  border-bottom: 1px solid #e8e4df;
}

.museum-calendar-widget .museum-calendar__weekday {
  color: #b0aba4;
  font-family: "JetBrains Mono", monospace;
  font-size: 0.6875rem; /* 11px */
  font-weight: 400;
  letter-spacing: 0.16em;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}

/* ---- Grid & Days ---- */

.museum-calendar-widget .museum-calendar__grid {
  gap: 0 !important;
}

.museum-calendar-widget .museum-calendar__day {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 6rem !important; /* 96px */
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #1a1815 !important;
  cursor: pointer;
  font-family: "Inter Tight", Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1;
  transition: color 120ms ease-out;
  box-shadow: none !important;
}

/* Visual indicator box inside each day cell */
.museum-calendar-widget .museum-calendar__day::before {
  content: "";
  position: absolute;
  inset: 0.5rem; /* ~80px box inside 96px cell */
  border: 1px solid transparent;
  border-radius: 0.25rem;
  background: transparent;
  transition: border-color 120ms ease-out, background-color 120ms ease-out;
}

/* Available hover */
.museum-calendar-widget .museum-calendar__day:hover:not(.is-disabled):not(.is-selected):not(.is-outside):not(.is-past):not(.is-unavailable)::before {
  border-color: #dad7d2;
  background: #faf7f1;
}

.museum-calendar-widget .museum-calendar__day:focus-visible {
  outline: 2px solid #b73d1d;
  outline-offset: 2px;
}

/* Outside month / past / disabled */
.museum-calendar-widget .museum-calendar__day.is-outside,
.museum-calendar-widget .museum-calendar__day.is-past,
.museum-calendar-widget .museum-calendar__day.is-disabled {
  color: #d1ceca !important;
  cursor: not-allowed;
}

.museum-calendar-widget .museum-calendar__day.is-available {
  color: #1a1815 !important;
}

/* Today (not yet selected) — terracotta outline box */
.museum-calendar-widget .museum-calendar__day.is-today:not(.is-selected)::before {
  border-color: #b73d1d;
}

/* Selected — dark filled box */
.museum-calendar-widget .museum-calendar__day.is-selected {
  color: #faf7f1 !important;
}

.museum-calendar-widget .museum-calendar__day.is-selected::before {
  border-color: #1a1815;
  background: #1a1815;
}

/* Unavailable / closed — muted with diagonal stroke */
.museum-calendar-widget .museum-calendar__day.is-unavailable:not(.is-past):not(.is-outside) {
  color: #bdbab5 !important;
}

.museum-calendar-widget .museum-calendar__day.is-unavailable:not(.is-past):not(.is-outside)::after {
  content: "";
  position: absolute;
  left: 37%;
  right: 37%;
  top: 50%;
  height: 1px;
  background: currentColor;
  transform: rotate(-15deg);
  opacity: 0.55;
}

/* ---- Feedback & selected label ---- */

.museum-calendar-widget .museum-calendar__selected-label {
  min-height: 1.25rem;
  margin-top: 0.375rem;
  color: #1a1815;
  font-family: "Inter Tight", Arial, sans-serif;
  font-size: 0.875rem;
  line-height: 1.45;
}

.museum-calendar-widget .museum-calendar__selected-label em {
  font-style: italic;
}

.museum-calendar-widget .museum-calendar-feedback {
  min-height: 1.25rem;
  margin-top: 0.75rem;
  color: #908d87;
  font-family: "Inter Tight", Arial, sans-serif;
  font-size: 0.875rem;
  line-height: 1.45;
}

/* ---- Responsive ---- */

@media (max-width: 991.98px) {
  .museum-calendar-widget .museum-calendar {
    padding: 1.75rem 2rem 1.5rem !important;
  }

  .museum-calendar-widget .museum-calendar__day {
    min-height: 5rem !important;
  }
}

@media (max-width: 767.98px) {
  .museum-calendar-widget .museum-calendar {
    padding: 1.25rem 1.25rem 1rem !important;
  }

  .museum-calendar-widget .museum-calendar__header {
    margin-bottom: 1.25rem !important;
  }

  .museum-calendar-widget .museum-calendar__month {
    font-size: 1.75rem;
  }

  .museum-calendar-widget .museum-calendar__day {
    min-height: 3.75rem !important;
    font-size: 0.9375rem;
  }
}
