.calendar {
  margin: 12px 0;
  overflow-x: auto;
}
.calendar ul {
  display: flex;
  min-width: 800px;
}
.calendar li {
  width: calc(100% / 7);
  height: auto;
  border: 1px solid #853a7a;
  margin: 1.5px 2px;
  border-radius: 5px;
  padding: 3px 6px;
}
.calendar .day {
  font-weight: bold;
  letter-spacing: 1px;
  font-size: 2.2rem;
}
.calendar .day span{
  font-size: 1.4rem;
  vertical-align: top;
}
.calendar .week li{
  background-color: #853a7a;
  text-align: center;
  color: #fff;
  height: auto;
  border: none;
}
.calendar .week li:first-child{
  background-color: #d34857;
}
.calendar ul:not(.week) li:first-child {
  color: #ef4154;
}
.calendar .week li:last-child{
  background-color: #5f66d0;
}
.calendar ul:not(.week) li:last-child{
  color: #5f66d0;
}
.calendar .gray {
  background: #b6adb5;
  opacity: 0.4;
  border: none;
}
.calendar .txt p.labelRed{
  color: #fff;
  background-color: #fa5050;
  padding: 2px;
}
.calendar .txt p.labelGreen{
  color: #fff;
  background-color: #62d05f;
  padding: 2px 6px;
  margin-bottom: 8px;
}
.calendar .txtBlue{
  color: #36aadf;
}
.calendar .txtBlack{
  color: #000;
}
.calendar .txtPink{
  color: #e865f2;
}
.calendar .txt {
  text-align: center;
}
.calendar .txt p {
  font-size: clamp(1.2rem, 1.2vw, 1.34rem);
  display: inline-block;
  padding: 0 6px 6px;
  margin-bottom: 6px;
  line-height: 1.4;
}
.calendar span.time {
  display: block;
}
.calendar-note span{
  color: #fff;
  background-color: #62d05f;
  display: inline-block;
}

@media print, screen and (max-width: 767px) {
  .calendar {
    overflow-x: scroll;
  }
}