:root {
  --color-text: #333333;
  --color-tex-rgb: rgb(51, 51, 51);

  --color-sun-txt: #bb051d;
  --color-sun-bg: #fce9e9;

  --color-sat-txt: #2574d3;
  --color-sat-bg: #ecf6fc;

  --color-week-bg: #4f616b;

  --color-line: #bbbbbb;

  --color-space: #f0f0f0;

  --line-normal-height: 1.2;
  --line-pc-height: 1.2;

  --space-width-sp: 20px;

  --width-pc: 1200px;
}

.calendar-wrap table {
  width: 100%;
  border-spacing: 0;
  border-top: solid 1px var(--color-line);
}

.calendar-wrap thead {
  display: none;
  text-align: center;
}

.calendar-wrap th,
.calendar-wrap td {
  display: block;
  /*width: 100%;*/
  padding: 0;
  border-bottom: solid 1px var(--color-line);
}
.calendar-wrap td {
  display: flex;
}
.calendar-wrap .calendar-none {
  display: none;
}

.calendar-wrap [class*="calender-label"] {
  display: none;
}

/* 日付 */
.calendar-wrap td .calendar-day-number {
  font-weight: normal;
  font-style: normal;
  padding: 15px 5px 15px 10px;
  font-size: 2rem;
  display: block;
  background-color: var(--color-space);
  width: 25%;
  white-space: nowrap;
}

.calendar-labels {
  padding: 15px 5px 20px 10px;
  width: 75%;
}

.calendar-labels div {
  color: var(--color-text);
  font-size: 1.8rem;
  background-position: left center;
  background-repeat: no-repeat;
  background-size: 20px;
  line-height: var(--line-normal-height);
  margin-bottom: 6px;
}

.event span {
  display: block;
  margin-bottom: 0em;
}
.time {
  letter-spacing: 0;
  padding-left: 22px;
  background-image: url(/image/calendar/time.svg);
}
.person {
  padding-left: 22px;
  background-image: url(/image/calendar/person.svg);
}

.calendar-labels div:last-child {
  margin-bottom: 0;
}

.calendar-wrap td.calendar-holiday .calendar-day-number,
.calendar-wrap td.calendar-sun .calendar-day-number {
  color: var(--color-sun-txt);
  background-color: var(--color-sun-bg);
}

.calendar-wrap td.calendar-sat .calendar-day-number {
  color: var(--color-sat-txt);
  background-color: var(--color-sat-bg);
}

/* モバイル用曜日を追加 */
.calendar-wrap td i:after {
  font-size: 1.4rem;
  position: relative;
  left: -5px;
}

.calendar-wrap td:nth-child(1) i:after {
  content: "（月）";
}
.calendar-wrap td:nth-child(2) i:after {
  content: "（火）";
}
.calendar-wrap td:nth-child(3) i:after {
  content: "（水）";
}
.calendar-wrap td:nth-child(4) i:after {
  content: "（木）";
}
.calendar-wrap td:nth-child(5) i:after {
  content: "（金）";
}
.calendar-wrap td:nth-child(6) i:after {
  content: "（土）";
}
.calendar-wrap td:nth-child(7) i:after {
  content: "（日）";
}

/*------------------------------------------*/
/* tablet(portrait) & smartphone(landscape) */
/*------------------------------------------*/

@media screen and (min-width: 560px) {
  .event span {
    display: inline-block;
    margin-bottom: 0;
    margin-right: .3em;
  }
}

/*------------------------*/
/* tablet(landscape) & pc */
/*------------------------*/

@media screen and (min-width: 960px) {
  .calendar-wrap table {
    border-left: solid 1px var(--color-line);
  }
  .calendar-wrap thead {
    display: table-header-group;
  }

  .calendar-wrap th,
  .calendar-wrap td {
    display: table-cell;
    background-color: white;
    padding: 7px;
    border-bottom: 1px solid var(--color-line);
    border-right: 1px solid var(--color-line);
  }
  .calendar-wrap th {
    color: white;
    background-color: var(--color-week-bg);
    vertical-align: top;
    padding-top: 7px;
    padding-bottom: 7px;
  }

  .calendar-wrap td {
    width: 14.3%;
    height: 100px;
    vertical-align: top;
  }

  .calendar-wrap td i:after {
    display: none;
  }
  .calendar-wrap td.calendar-day-off {
    background-color: var(--color-space);
  }
  .calendar-wrap td.calendar-holiday,
  .calendar-wrap td.calendar-sun {
    color: var(--color-sun-txt);
    background-color: var(--color-sun-bg);
  }
  .calendar-wrap td.calendar-sat {
    color: var(--color-sat-txt);
    background-color: var(--color-sat-bg);
  }

  .calendar-wrap td .calendar-day-number {
    font-style: normal;
    font-weight: bold;
    font-size: 16px;
    display: block;
    padding: 0 3px;
    margin-bottom: 10px;
    line-height: 1.2;
    background-color: transparent;
    border-right: none;
  }
  .calendar-wrap td.calendar-holiday .day,
  .calendar-wrap td.calendar-sun .day {
    color: var(--color-sun-txt);
  }
  .calendar-wrap td.calendar-sat .day {
    color: var(--color-sat-txt);
  }
  .calendar-wrap td.calendar-holiday .calendar-day-number,
  .calendar-wrap td.calendar-sun .calendar-day-number {
    background-color: transparent;
  }

  .calendar-wrap td.calendar-sat .calendar-day-number {
    background-color: transparent;
  }

  /* 何もない日 */
  .calendar-wrap td.calendar-none {
    display: table-cell;
    background-color: var(--color-space);
  }

  .calendar-labels {
    width: auto;
    padding: 0;
  }
  .calendar-labels div {
    font-size: 1.6rem;
    line-height: var(--line-pc-height);
    margin-bottom: 8px;
    letter-spacing: 0;
  }

  .event span {
    display: block;
    margin-right: 0;
  }
  .time {
    white-space: nowrap;
  }
  .calendar-labels div:last-child {
    margin-bottom: 5px;
  }
}
