.schedule__calendar {
  margin: 14.35vw auto 10.98vw auto;
  width: 75.11vw;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (max-width: 896px) {
  .schedule__calendar {
    margin: 32.05vw auto 0 auto;
    width: 89.74vw;
  }
}

.schedule__calendar__title {
  color: #ff166a;
  font-family: "Climate Crisis", sans-serif;
  font-size: 5.78vw;
}

@media (max-width: 896px) {
  .schedule__calendar__title {
    font-size: 9.23vw;
  }
}

.schedule__calendar__subtitle {
  color: #ff166a;
  font-weight: 500;
  font-size: 1.46vw;
}

@media (max-width: 896px) {
  .schedule__calendar__subtitle {
    margin: 1.79vw 0 0 0;
    font-weight: 700;
    font-size: 5.11vw;
  }
}

.schedule__calendar__text {
  margin: 2.93vw 0 0 0;
  font-size: 1.17vw;
}

@media (max-width: 896px) {
  .schedule__calendar__text {
    margin: 10.26vw 0 0 0;
    font-size: 4.10vw;
    text-align: center;
    line-height: 2em;
  }
}

.schedule__calendar__box {
  position: relative;
  margin: 5.86vw 0 0 0;
  width: 82vw;
  background: #fff;
  border-radius: 5vw;
  display: flex;
  flex-direction: column;
  align-items: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box {
    margin: 10.26vw 0 0 0;
    width: 89.74vw;
    border-radius: 8vw;
  }
}

.schedule__calendar__box__year {
  margin: 3.66vw 0 0 0;
  font-family: 'Roboto', sans-serif;
  font-size: 1.83vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__year {
    margin: 5.66vw 0 0 0;
    font-size: 3.83vw;
  }
}

.schedule__calendar__box__prev-month {
  position: absolute;
  top: 8.78vw;
  left: 5.86vw;
  display: flex;
  align-items: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box__prev-month {
    top: 12.75vw;
    left: 4.65vw;
  }
}

.schedule__calendar__box__prev-month__text {
  font-weight: 700;
  font-size: 1.83vw;
  color: #242526;
}

@media (max-width: 896px) {
  .schedule__calendar__box__prev-month__text {
    font-size: 4.01vw;
  }
}

.schedule__calendar__box__prev-month__arrow {
  margin: 0 0 0 1.32vw;
  width: 2.42vw;
  height: 2.42vw;
  background: #ff166a;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box__prev-month__arrow {
    width: 5.42vw;
    height: 5.42vw;
  }
}

.schedule__calendar__box__prev-month__arrow__image {
  transform: rotate(180deg);
  width: 0.84vw;
  height: 0.84vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__prev-month__arrow__image {
    width: 2.64vw;
    height: 2.64vw;
  }
}

.schedule__calendar__box__month {
  position: absolute;
  top: 5.27vw;
  left: 50%;
  transform: translate(-50%, 0);
  font-family: 'Roboto', sans-serif;
  font-size: 5.49vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__month {
    top: 10.26vw;
    font-size: 9.23vw;
  }
}

.schedule__calendar__box__next-month {
  position: absolute;
  top: 8.78vw;
  left: 69.62vw;
  display: flex;
  align-items: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box__next-month {
    top: 12.75vw;
    left: 72.85vw;
  }
}

.schedule__calendar__box__next-month__text {
  font-weight: 700;
  font-size: 1.83vw;
  color: #242526;
}

@media (max-width: 896px) {
  .schedule__calendar__box__next-month__text {
    font-size: 4.01vw;
  }
}

.schedule__calendar__box__next-month__arrow {
  margin: 0 0 0 1.32vw;
  width: 2.42vw;
  height: 2.42vw;
  background: #ff166a;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box__next-month__arrow {
    width: 5.42vw;
    height: 5.42vw;
  }
}

.schedule__calendar__box__next-month__arrow__image {
  width: 0.84vw;
  height: 0.84vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__next-month__arrow__image {
    width: 2.64vw;
    height: 2.64vw;
  }
}

.schedule__calendar__box__table {
  margin: 8.05vw 0 5.71vw 0;
  width: fit-content;
  border-collapse: collapse;
  text-align: center;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table {
    margin: 14vw 0 11vw 0;
    width: 79.49vw;
  }
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__thead__tr__th {
    height: 7vw;
    padding: 1vw 0 2vw 0;
    font-size: 2.9vw;
  }

  .schedule__calendar__box__table__thead__tr__th:first-child {
    border-left: none;
  }

  .schedule__calendar__box__table__thead__tr__th:last-child {
    border-right: none;
  }
}

.schedule__calendar__box__table__tbody__tr--space {
  height: 1.46vw;
}

.schedule__calendar__box__table__thead__tr__th--sunday {
  color: #d61212;
}

.schedule__calendar__box__table__thead__tr__th--saturday {
  color: #0582f2;
}

.schedule__calendar__box__table__tbody__tr__td {
  position: relative;
  width: 10.10vw;
  height: 12.59vw;
  padding: 0.5em;
  border: 1px solid #afafaf;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td {
    height: 21.1vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td--prev-month {
  opacity: 0.3;
}

.schedule__calendar__box__table__tbody__tr__td--next-month {
  opacity: 0.3;
}

.schedule__calendar__box__table__tbody__tr__td--seminar {
  color: #fff;
  cursor: pointer;
}

.schedule__calendar__box__table__tbody__tr__td--seminar-finished {
  background: #a3a3a3;
  font-weight: bold;
}

.schedule__calendar__box__table__tbody__tr__td--seminar-freeter {
  background-color: #46b502;
  font-weight: bold;
}

.schedule__calendar__box__table__tbody__tr__td--seminar-daigakusei {
  background-color: #ff8d22;
  font-weight: bold;
}

.schedule__calendar__box__table__tbody__tr__td--seminar-finished-daigakusei {
  background: linear-gradient(to bottom, #a3a3a3 50%, #ff8d22 50%);
}

.schedule__calendar__box__table__tbody__tr__td--seminar-finished-freeter {
  background: linear-gradient(to bottom, #a3a3a3 50%, #46b502 50%);
}

.schedule__calendar__box__table__tbody__tr__td--seminar-freeter-daigakusei {
  background: linear-gradient(to bottom, #46b502 50%, #ff8d22 50%);
}

.schedule__calendar__box__table__tbody__tr__td--seminar-freeter-finished {
  background: linear-gradient(to bottom, #46b502 50%, #a3a3a3 50%);
}

.schedule__calendar__box__table__tbody__tr__td--seminar-daigakusei-freeter {
  background: linear-gradient(to bottom, #ff8d22 50%, #46b502 50%);
}

.schedule__calendar__box__table__tbody__tr__td--seminar-daigakusei-finished {
  background: linear-gradient(to bottom, #ff8d22 50%, #a3a3a3 50%);
}

.schedule__calendar__box__table__tbody__tr__td__date {
  position: absolute;
  top: 0.37vw;
  left: 0.95vw;
  font-weight: 500;
  font-size: 1.46vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__date {
    top: 0.5vw;
    left: 1vw;
    font-size: 2.11vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__date--sunday {
  color: #d61212;
}

.schedule__calendar__box__table__tbody__tr__td__date--saturday {
  color: #0582f2;
}

.schedule__calendar__box__table__tbody__tr__td__attendance {
  position: absolute;
  top: 1.46vw;
  left: 50%;
  transform: translate(-50%, 0);
  font-size: 1.54vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__attendance {
    top: 0.31vw;
    font-size: 2.39vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__attendance--1 {
  top: 0.46vw;
  font-size: 0.87vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__attendance--1 {
    top: 0.48vw;
    font-size: 1.99vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__attendance--2 {
  top: 6.00vw;
  font-size: 0.87vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__attendance--2 {
    top: 9.98vw;
    font-size: 1.99vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__title-place {
  position: absolute;
  top: 3.73vw;
  left: 50%;
  transform: translate(-50%, 0);
  width: 8.42vw;
  font-size: 0.88vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__title-place {
    top: 4.16vw;
    width: 9.2vw;
    text-align: left;
    font-size: 1.3vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__title-place--1 {
  top: 2.04vw;
  font-size: 0.67vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__title-place--1 {
    top: 3.11vw;
    font-size: 0.92vw;
  }
}

.schedule__calendar__box__table__tbody__tr__td__title-place--2 {
  top: 7.23vw;
  font-size: 0.67vw;
}

@media (max-width: 896px) {
  .schedule__calendar__box__table__tbody__tr__td__title-place--2 {
    top: 12.46vw;
    font-size: 0.92vw;
  }
}

.calendar-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.calendar-controls button {
  margin: 0 0.5em;
}

.schedule__calendar__note {
  margin: 0.5vw 0 0 0;
  text-align: center;
  font-size: 1.5vw;
  line-height: 3em;
}

.schedule__calendar__note__link {
  display: inline;
  text-decoration: underline;
}

.schedule__calendar__note__link:hover {
  text-decoration: none;
}

.schedule__calendar__line {
  margin: 1vw 0 1vw 0;
  width: 41vw;
}

.schedule__line {
  margin: 5.12vw auto 9.52vw auto;
  padding: 3.66vw 4.98vw;
  width: 60.47vw;
  background: #fff;
  border-radius: 5vw;
}

@media (max-width: 896px) {
  .schedule__line {
    width: 89.74vw;
    border-radius: 8vw;
  }
}

.schedule__line__row {
  display: flex;
}

@media (max-width: 896px) {
  .schedule__line__row {
    align-items: center;
  }
}

.schedule__line__row__qr-code {
  width: 14.57vw;
  height: 14.57vw;
}

@media (max-width: 896px) {
  .schedule__line__row__qr-code {
    width: 23.57vw;
    height: 23.57vw;
  }
}

.schedule__line__row__column {
  margin: 0 0 0 3.81vw;
}

@media (max-width: 896px) {
  .schedule__line__row__column {
    margin: 0 0 0 3.11vw;
  }
}

.schedule__line__row__column__caption {
  font-size: 1.46vw;
  line-height: 1.85em;
}

@media (max-width: 896px) {
  .schedule__line__row__column__caption {
    font-size: 3.56vw;
  }
}

.schedule__line__row__column__title {
  margin: 1.54vw 0 0 0;
  font-weight: 700;
  font-size: 2.93vw;
  color: #05c755;
}

.schedule__line__row__column__text {
  margin: 0.56vw 0 0 0;
  padding: 0.66vw 0.51vw 0.81vw 0.81vw;
  width: 25.7vw;
  white-space: nowrap;
  border: 0.15vw solid #05c755;
  font-size: 1.32vw;
}

.schedule__line__title {
  margin: 1.54vw 0 0 0;
  font-weight: 700;
  font-size: 2.93vw;
  color: #05c755;
}

@media (max-width: 896px) {
  .schedule__line__title {
    font-size: 7.9vw;
    text-align: center;
    white-space: nowrap;
  }
}

.schedule__line__text {
  margin: 0.56vw 0 0 0;
  padding: 0.66vw 0.51vw 0.81vw 0.81vw;
  width: 25.7vw;
  white-space: nowrap;
  border: 0.15vw solid #05c755;
  font-size: 1.32vw;
}

@media (max-width: 896px) {
  .schedule__line__text {
    margin: 1.56vw 0 3vw 0;
    padding: 2.16vw 0 2.31vw 0vw;
    width: 77vw;
    border: 0.45vw solid #05c755;
    font-size: 3.62vw;
    text-align: center;
  }
}