/**
 * Business Day Calendar — grid layout matching living schedule design.
 */

.xo-event-calendar {
  --bdc-header-bg: #048d6c;
  --bdc-border: #d9d9d9;
  --bdc-sunday: #ff0000;
  --bdc-saturday: #00a1ff;
  --bdc-weekday: #222222;
  --bdc-today-bg: #cfcfcf;
  --bdc-other: 0.38;

  position: relative;
  overflow: auto;
  font-family: "Noto Sans JP", "Helvetica Neue", Helvetica, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

.xo-event-calendar table.xo-month,
.xo-event-calendar table.bdc-month {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  table-layout: fixed;
  margin: 0;
  background: #fff;
  border: 1px solid var(--bdc-border);
}

.xo-event-calendar table.xo-month caption {
  display: none;
}

.xo-event-calendar table.xo-month>thead th {
  background: var(--bdc-header-bg);
  color: #fff;
  text-align: center;
  vertical-align: middle;
  font-weight: 700;
  font-size: 26px;
  line-height: 1;
  height: 75px;
  padding: 0 !important;
  border: 1px solid var(--bdc-header-bg);
}

.xo-event-calendar table.xo-month>tbody>tr>td.bdc-day {
  height: 100px;
  vertical-align: top;
  background: #fff;
  border: 1px solid var(--bdc-border);
  padding: 8px 10px 6px !important;
  color: var(--bdc-weekday);
}

.xo-event-calendar .bdc-day-number {
  font-size: 25px;
  font-weight: 700;
  line-height: 1;
  text-align: left;
}

.xo-event-calendar td.bdc-day.sunday .bdc-day-number,
.xo-event-calendar td.bdc-day.holiday-all .bdc-day-number {
  color: var(--bdc-sunday);
}

.xo-event-calendar td.bdc-day.saturday .bdc-day-number {
  color: var(--bdc-saturday);
}

.xo-event-calendar td.bdc-day.other-month {
  opacity: var(--bdc-other);
}

.xo-event-calendar td.bdc-day.today {
  background: var(--bdc-today-bg) !important;
  opacity: 1;
}

.xo-event-calendar td.bdc-day.today .bdc-day-number {
  color: #fff;
}

.xo-event-calendar .bdc-day-events {
  margin-top: 6px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.xo-event-calendar .month-event-title {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 1px 2px;
  font-size: 13px;
  line-height: 1.4;
  font-weight: 700;
  color: #000 !important;
  background: transparent !important;
}

.xo-event-calendar .holiday-titles {
  display: none;
}

.xo-event-calendar a {
  pointer-events: none;
}

@media screen and (max-width: 767px) {
  .xo-event-calendar .xo-month-wrap {
    overflow-x: auto;
    overflow-y: hidden;
  }

  .xo-event-calendar table.xo-month {
    min-width: 750px;
  }

  .xo-event-calendar table.xo-month>thead th {
    font-size: 20px;
    height: 60px;
  }

  .xo-event-calendar table.xo-month>tbody>tr>td.bdc-day {
    height: 80px;
    padding: 6px 8px 4px !important;
  }

  .xo-event-calendar .bdc-day-number {
    font-size: 20px;
  }

  .xo-event-calendar .month-event-title {
    font-size: 10px;
  }
}