div.cal_calendar {
  display: flex;
  flex-wrap: wrap; /* 要素が横幅に収まらない場合に折り返す */
  justify-content: center; /* 横方向の中央揃え */
  align-items: flex-start; /* 縦方向の上揃え（必要に応じて調整） */
}
div.cal_wrapper {
  flex: 0 1 calc(33.33% - 10px); /* 要素の幅を均等に分割し、余白を設定 */
  margin: 10px 20px;
  text-align: center; /* テキストを中央揃え */
}
div.schedule_wrapper {
  padding: 10px 0px;
  width: 200px;
  border: solid 1px #CCC;
  border-radius: 5px;
  box-shadow: 1px 1px 3px #666;
  float: left; /* または float: right; */
  margin: 0 15px;
}
div.schedule_wrapper h3 {
  padding: 0px 10px;
  font-weight: normal;
  margin:0;
  font-size: 12px;
  color: #666;
  clear: both;
}
div.schedule_wrapper div.schedule_list {
  padding: 0px 10px;
  margin: 0px;
}
div.schedule_wrapper div.schedule_list ol {
  padding: 0px;
  margin: 5px auto;
  border-top: solid 1px #CCC;
}
div.schedule_wrapper div.schedule_list ol li {
  padding: 5px 10px 0px 0px;
  margin: 0px 0px 0px 30px;
  font-size: 12px;
  line-height: 1.5em;
}
div.schedule_wrapper div.schedule_list ol li:hover {
  text-decoration: underline;
}
div.cal_wrapper table.cal tr th p {
  float: left;
  padding: 5px;
  margin: 0px;
  color: #666;
  font-size: 15px;
}
div.cal_wrapper table.cal tr th div.cal_ui {
  float: right;
}
div.cal_wrapper table.cal tr th div.cal_ui input {
  visibility: hidden; /* 非表示設定 */
  border: solid 1px #CCC;
  background-color: #FFF;
  font-size: 12px;
  margin: 0px 1px;
  padding: 1px 5px;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td {
}
div.cal_wrapper table.cal tr td {
  font-size: 12px;
  text-align: center;
  padding: 2px
}
div.cal_wrapper table.cal tr.headline td {
  padding: 5px 0px;
  color: #292929;
  border-top: solid 1px #CECECE;
  border-bottom: solid 1px #CECECE;
}
div.cal_wrapper table.cal tr.headline {
}
div.cal_wrapper table.cal tr td div {
  position: relative;
  padding: 4px 14px;
  font-size: 15px;
  color: #292929;	
  text-align: center;
  background-color: #FFF;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td div span {
  display: none;
  position: absolute;
  top: 20px;
  left: 0px;
  width: 75px;
  border: solid 1px #EEE;
  background-color: #FFF;
  text-align: center;
  padding: 5px;
  z-index: 10;
  color: #000;
  font-weight: normal;
  line-height: 1.5em;
  box-shadow: 1px 1px 3px #666;
  font-size: 80%;
}
/* 以下、クラス指定するとき */
div.cal_wrapper table.cal tr td div.Sat {
  color: #939393;
}
div.cal_wrapper table.cal tr td div.Sun {
  color: #F00;
}
div.cal_wrapper table.cal tr td div.Today {
  display: inline-block; /* または display: inline-flex; */
  padding: 5px; /* 任意の値を設定 */
  line-height: 25px; /* 具体的な高さに設定 */
  text-align: center; /* テキストを中央揃えにするために追加 */
  border-radius: 50%; /* 半径を50%に設定 */
  min-width: 39px; /* 文字数によらず最小限の横幅を確保 */
  border: 2px solid #77B4FF; /* グレーのボーダーを追加 */
  width: 39px;
  height: 39px;	
}
div.cal_wrapper table.cal tr td div.Deli {
  background-color: #EFE;
}
div.cal_wrapper table.cal tr td div.Holyday {
  color: #D90000;
}
div.cal_wrapper table.cal tr td div.Aday {
  display: inline-block; /* または display: inline-flex; */
  background-color: #E5FDDF;
  padding: 8px; /* 任意の値を設定 */
  line-height: 19px; /* 具体的な高さに設定 */
  text-align: center; /* テキストを中央揃えにするために追加 */
  border-radius: 50%; /* 半径を50%に設定 */
  min-width: 35px; /* 文字数によらず最小限の横幅を確保 */
}
div.cal_wrapper table.cal tr td div.AdayHolyday {
  color: #D90000;
  display: inline-block; /* または display: inline-flex; */
  background-color: #E5FDDF;
  padding: 10px; /* 任意の値を設定 */
  line-height: 15px; /* 具体的な高さに設定 */
  text-align: center; /* テキストを中央揃えにするために追加 */
  border-radius: 50%; /* 半径を50%に設定 */
  min-width: 35px; /* 文字数によらず最小限の横幅を確保 */
}
div.cal_wrapper table.cal tr td div.Birthday {
  background-color: #EEF;
  color: #090;
  border-radius: 3px;
}
div.cal_wrapper table.cal tr td div.backward {
  color: #FFFFFF;
  font-weight: normal;
  background-color: #FFF;
  border-radius: 3px;
  pointer-events: none;
}
div.cal_wrapper table.cal tr td div.pointer {
  cursor: pointer;
}
div.cal_wrapper table.cal tr td div.pointer:hover {
  background-color: #EEE;
}