.contents-schedule {
  color: #333;
  padding-bottom: 10rem;
  background: url(../img/schedule/bg_h.jpg) no-repeat center top/cover;
}
@media (max-width: 767px) {
  .contents-schedule {
    background: url(../img/schedule/bg_h_sp.jpg) no-repeat center 4%/cover;
  }
}

.schedule-wrap {
  padding-block: 20rem 13rem;
}
@media screen and (max-width: 767px) {
  .schedule-wrap {
    padding-block: 9rem 2rem;
  }
}

.schedule_inner {
  max-width: 1240px;
  margin-inline: auto;
  padding-inline: 2rem;
  width: 100%;
}
@media screen and (max-width: 767px) {
  .schedule_inner.sp-wide {
    padding-inline: 0.6rem;
  }
}
.schedule_inner .schedule_summer {
  background: rgba(111, 223, 255, 0.21);
  border-radius: 10px;
  color: #3c4279;
  letter-spacing: 1px;
  line-height: 210%;
  padding: 13px 13px 18px;
  margin-top: 10px;
}
.schedule_inner .schedule_summer a {
  color: #1b7ce8;
  text-decoration: underline;
}
.schedule_inner .schedule_summer_title {
  color: #1b7ce8;
  font-size: 2.4rem;
  font-weight: 500;
  text-align: center;
  margin-bottom: 0.5rem;
}
.schedule_inner .schedule_summer_text {
  font-size: 1.6rem;
  font-weight: 500;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .schedule_inner .schedule_summer {
    letter-spacing: 0;
    line-height: 140%;
    padding: 18px 13px;
  }
  .schedule_inner .schedule_summer_title {
    font-size: 1.6rem;
    margin-bottom: 0.5rem;
  }
  .schedule_inner .schedule_summer_text {
    font-size: 1.2rem;
  }
}

.schedule_title_en {
  width: min(35vw, 37.2rem);
  height: auto;
  aspect-ratio: 372/51;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .schedule_title_en {
    width: max(29.3rem, 50vw);
    aspect-ratio: 293/40;
  }
}

.schedule_title_ja {
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  line-height: 1.1;
  margin-top: 1.6rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .schedule_title_ja {
    font-size: 1.6rem;
  }
}

.schedule_calendar {
  margin-top: 3.2rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .schedule_calendar {
    max-width: 520px;
    margin-inline: auto;
    margin-top: 2.3rem;
  }
}

.calendar_date {
  font-size: 3rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  text-align: center;
  line-height: 1.24;
  color: #404690;
  font-feature-settings: "palt";
  font-family: "Zen Kaku Gothic New", sans-serif;
}
@media screen and (max-width: 767px) {
  .calendar_date {
    font-size: 2.5rem;
  }
}
.calendar_date span {
  font-size: 4rem;
}
@media screen and (max-width: 767px) {
  .calendar_date span {
    font-size: 3.4rem;
  }
}

.calendar_img {
  margin-top: 0.4rem;
}
@media screen and (max-width: 767px) {
  .calendar_img {
    margin-top: 0;
  }
}

.schedule_btn {
  margin-top: 43px;
  display: flex;
  justify-content: center;
}
.schedule_btn .btn-calendar {
  width: 191px;
  height: 45px;
  font-size: 18px;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif;
  letter-spacing: 0.08em;
}
.schedule_btn .btn-calendar .is-small {
  font-size: 15px;
}
@media screen and (max-width: 767px) {
  .schedule_btn .btn-calendar .is-small {
    font-size: 13px;
    letter-spacing: 0.025em;
  }
}
.schedule_btn.next {
  position: absolute;
  top: 0;
  right: 0;
  margin: 0;
}
.schedule_btn.next .btn-calendar:before {
  right: 18px;
}
.schedule_btn.prev {
  position: absolute;
  top: 0;
  left: 0;
  margin: 0;
}
.schedule_btn.prev .btn-calendar:before {
  transform: translateY(-50%) rotate(180deg);
  left: 18px;
  right: inherit;
}
@media screen and (max-width: 767px) {
  .schedule_btn {
    margin-top: 15px;
  }
  .schedule_btn .btn-calendar {
    width: 92px;
    height: 36px;
    font-size: 13px;
  }
  .schedule_btn .top_btn:before {
    width: 8px;
    height: 7px;
  }
  .schedule_btn.next .btn-calendar {
    padding-right: 1.2rem;
  }
  .schedule_btn.next .btn-calendar:before {
    right: 4px;
  }
  .schedule_btn.prev .btn-calendar {
    padding-left: 1.2rem;
  }
  .schedule_btn.prev .btn-calendar:before {
    left: 4px;
  }
}

.schedule_register {
  margin-top: 6.5rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .schedule_register {
    margin-top: 3.6rem;
    padding-bottom: 7rem;
    max-width: 500px;
    margin-inline: auto;
  }
  .schedule_register.end {
    padding-bottom: 14rem;
  }
}
@media screen and (max-width: 767px) {
  .schedule_register:not(:has(a)) .schedule_person1 {
    bottom: -34%;
    width: 7.6rem;
    height: 13.3rem;
  }
  .schedule_register:not(:has(a)) .schedule_person2 {
    bottom: -39%;
    width: 7.9rem;
    height: 13.9rem;
  }
}
@media screen and (max-width: 374px) {
  .schedule_register:not(:has(a)) .schedule_person1 {
    bottom: -40%;
    width: 6.6rem;
    height: 12.3rem;
  }
  .schedule_register:not(:has(a)) .schedule_person2 {
    bottom: -45%;
    width: 6.9rem;
    height: 12.9rem;
  }
}

.schedule_register_item {
  max-width: 968px;
  margin-inline: auto;
  border-radius: 4rem;
  background: url(../img/schedule/bg_registration.jpg) no-repeat center/cover;
  padding-block: 6rem 5.4rem;
}
@media screen and (max-width: 767px) {
  .schedule_register_item {
    max-width: 94.4903581267%;
    border-radius: 1.3rem;
    padding-block: 3.4rem 2.9rem;
    background: url(../img/schedule/bg_registration_sp.jpg) no-repeat center/cover;
  }
}
.schedule_register_item .lead {
  font-size: clamp(20px, 3vw, 30px);
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.33;
  text-shadow: 3px 2px 0px #ffec7a;
  color: #3c4279;
  text-align: center;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .schedule_register_item .lead {
    font-size: 2.5rem;
    letter-spacing: 0.1em;
    line-height: 1.25;
  }
}
.schedule_register_item .lead a {
  color: #e9753b;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
}
.schedule_register_item .text {
  margin-top: 2.6rem;
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: 0.075em;
  color: #3c4279;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .schedule_register_item .text {
    margin-top: 1rem;
    font-size: 1.6rem;
    line-height: 1.9;
  }
}
.schedule_register_item .text a {
  color: #e9753b;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
}

.schedule_person1 {
  top: 12rem;
  left: -1rem;
  width: 17.3rem;
  height: 32.2rem;
}
@media screen and (max-width: 767px) {
  .schedule_person1 {
    left: 2.5rem;
    width: 8.6rem;
    height: 16.1rem;
  }
}

.schedule_person2 {
  top: 11rem;
  right: -17rem;
  width: 17.9rem;
  height: 31.4rem;
}
@media screen and (max-width: 767px) {
  .schedule_person2 {
    right: -3rem;
    width: 8.9rem;
    height: 15.8rem;
  }
}

.schedule_person1,
.schedule_person2 {
  position: absolute;
}
@media screen and (max-width: 767px) {
  .schedule_person1,
  .schedule_person2 {
    top: auto;
    bottom: -25%;
  }
}

.schedule_program {
  padding-block: 10.4rem 18rem;
  background: url(../img/schedule/bg_h2.jpg) no-repeat center top/cover;
}
@media screen and (max-width: 767px) {
  .schedule_program {
    padding-block: 4rem 11rem;
    background: url(../img/schedule/bg_h2_sp.jpg) no-repeat center top/cover;
  }
}

.program_title {
  position: relative;
  z-index: 1;
}

.program_title-en {
  width: 9.3rem;
  height: auto;
  aspect-ratio: 93/13;
  margin-inline: auto;
}
@media screen and (max-width: 767px) {
  .program_title-en {
    width: 7.8rem;
    aspect-ratio: 78/11;
  }
}

.program_title-jp {
  margin-top: 0.9rem;
  font-size: 3.2rem;
  font-weight: 700;
  color: #3c4279;
  text-align: center;
  position: relative;
  z-index: 1;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .program_title-jp {
    margin-top: 0.4rem;
    line-height: 1.15625;
  }
}
.program_title-jp::before {
  content: "";
  position: absolute;
  bottom: -0.4rem;
  left: 50.5%;
  transform: translateX(-50%);
  width: 34.1rem;
  height: 2.1rem;
  z-index: -1;
  background: url(../img/schedule/program_accent.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .program_title-jp::before {
    width: 14.6rem;
    height: 1.8rem;
    bottom: -0.6rem;
    left: 51%;
    background: url(../img/schedule/program_accent_sp.png) no-repeat center/contain;
  }
}

.program_deco {
  position: absolute;
  top: 0;
  left: 49.6%;
  transform: translateX(-50%);
  width: 39.5rem;
  height: 11.3rem;
  z-index: -1;
}

.program_lead {
  margin-top: 3rem;
  font-size: 1.4rem;
  font-weight: 500;
  letter-spacing: 0.07em;
  font-feature-settings: "palt";
  line-height: 1.7;
  text-align: center;
  color: #424242;
}
@media screen and (max-width: 767px) {
  .program_lead {
    margin-top: 2.6rem;
    font-size: 1.1rem;
    line-height: 1.8545454545;
  }
}
.program_lead span {
  font-size: 2.1rem;
  line-height: 1.7538095238;
}
@media screen and (max-width: 767px) {
  .program_lead span {
    font-size: 1.8rem;
  }
}
.program_lead span.text-info {
  color: #e53f27;
  font-size: 1.8rem;
  font-weight: 700;
}
@media screen and (max-width: 767px) {
  .program_lead span.text-info {
    font-size: 1.6rem;
  }
}

.program_list {
  margin-top: 3rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(3.5vw, 5rem);
}
@media screen and (max-width: 767px) {
  .program_list {
    margin-top: 2rem;
    grid-template-columns: 1fr;
    gap: 0;
    max-width: 400px;
    margin-inline: auto;
  }
}
.program_list:nth-child(n+2) {
  padding-top: 5rem;
  margin-top: 5.8rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .program_list:nth-child(n+2) {
    padding-top: 0;
    margin-top: 0;
  }
}
.program_list:nth-child(n+2)::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 5px;
  background: url(../img/schedule/line_program.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .program_list:nth-child(n+2)::before {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .program_list:first-child .program_item:first-child {
    padding-top: 0;
    margin: 0;
  }
  .program_list:first-child .program_item:first-child::before {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .program_list:first-child .program_item:not(:first-child) .program_icon, .program_list:nth-child(n+2) .program_item .program_icon {
    top: 1.2rem;
  }
}

.program_item {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 6;
  gap: 0;
  position: relative;
}
@media screen and (max-width: 767px) {
  .program_item {
    display: block;
    padding-top: 2.8rem;
    margin-top: 2.6rem;
    grid-row: unset;
  }
  .program_item::before {
    content: "";
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    height: 5px;
    background: url(../img/schedule/line_program_sp.png) no-repeat center/contain;
  }
}

.program_icon {
  font-size: 0;
  position: absolute;
  top: -1.7rem;
  left: 0;
  display: flex;
  align-items: center;
  width: 6.4rem;
  height: 6.4rem;
}
@media screen and (max-width: 990px) {
  .program_icon {
    scale: 0.7;
    top: -2.6rem;
    left: -1rem;
  }
}
@media screen and (max-width: 767px) {
  .program_icon {
    scale: 1;
    top: -1.6rem;
    left: 0;
    width: 6rem;
    height: 6rem;
  }
}
@media screen and (min-width: 768px) and (hover: hover) {
  .program_icon:hover .is-balloon {
    pointer-events: auto;
    opacity: 1;
    scale: 1 1;
  }
}
.program_icon .is-icon {
  border-radius: 50%;
  box-shadow: 0.4rem 0.4rem 0 rgba(244, 139, 3, 0.25);
}
.program_icon .is-balloon {
  position: absolute;
  top: 0.6rem;
  left: 5.5rem;
  z-index: 1;
  scale: 0 1;
  opacity: 0;
  transform-origin: left;
  transition: opacity 0.3s, scale 0.3s;
  max-width: unset;
}
@media screen and (max-width: 767px) {
  .program_icon .is-balloon {
    top: 0.2rem;
    left: 5.1rem;
  }
}
.program_icon .is-balloon.is-show {
  pointer-events: auto;
  opacity: 1;
  scale: 1 1;
}

.program_img {
  width: 100%;
  height: auto;
  aspect-ratio: 365/260;
}
.program_img img {
  width: 100%;
}
.program_img.tasting {
  position: relative;
}
.program_img.tasting::before {
  content: "";
  position: absolute;
  top: -8px;
  left: -2px;
  width: 64px;
  height: 64px;
  background: url(../img/schedule/icon_tasting.png) no-repeat center/contain;
  filter: drop-shadow(3px 3px 0 rgba(244, 139, 3, 0.25));
}
@media screen and (max-width: 767px) {
  .program_img.tasting::before {
    width: 60px;
    height: 60px;
    filter: drop-shadow(4px 4px 0 rgba(244, 139, 3, 0.25));
  }
}

.program_detail-title {
  margin-top: 1rem;
  font-size: clamp(14px, 1.5vw, 21px);
  font-weight: 700;
  letter-spacing: 0.1em;
  line-height: 1.47;
  color: #3c4279;
  font-feature-settings: "palt";
  display: flex;
  align-items: center;
  min-height: 5.5rem;
  padding-left: 0.8rem;
}
@media screen and (max-width: 767px) {
  .program_detail-title {
    font-size: 2.2rem;
    line-height: 1.3;
    min-height: 5rem;
  }
}

.program_detail-wrap {
  background-color: #f9f5e3;
  border-radius: 0.6rem;
  padding: 1rem 1.7rem;
  display: flex;
  flex-wrap: wrap;
  font-feature-settings: "palt";
}
.program_detail-wrap .text {
  font-size: clamp(14px, 1.5vw, 16px);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.4;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .program_detail-wrap .text {
    font-size: 1.5rem;
  }
}
.program_detail-wrap .date {
  display: flex;
  align-items: center;
  margin-right: 1.6rem;
}
@media screen and (max-width: 1024px) {
  .program_detail-wrap .date {
    margin-right: 0;
  }
}
@media screen and (max-width: 767px) {
  .program_detail-wrap .date {
    margin-right: 1.5rem;
  }
}
.program_detail-wrap .week {
  padding-top: 0.2rem;
  font-size: clamp(12px, 1.5vw, 13px);
  line-height: 1.4;
}
@media screen and (max-width: 1024px) {
  .program_detail-wrap .week {
    padding-top: 0;
  }
}
@media screen and (max-width: 767px) {
  .program_detail-wrap .week {
    font-size: 1.2rem;
    line-height: 2.1rem;
  }
}

.program_date {
  margin-top: 1rem;
}
.program_date .text {
  letter-spacing: 0.02em;
}
.program_date .text:first-of-type {
  margin-right: 1.4rem;
}
.program_date .text:last-of-type {
  margin-left: auto;
}

.program_detail-text {
  margin-block: 0.6rem 1.2rem;
  font-size: clamp(14px, 1.5vw, 17px);
  font-weight: 500;
  letter-spacing: 0.075em;
  line-height: 1.47;
  padding-inline: 0.8rem;
}
@media screen and (max-width: 767px) {
  .program_detail-text {
    font-size: 1.6rem;
    line-height: 1.43;
    padding-inline: 0.4rem;
    min-height: 9.2rem;
    margin-block: 0.6rem 1rem;
  }
}
.program_detail-text span {
  display: block;
  font-size: 1.1rem;
  letter-spacing: 0;
  font-weight: 400;
}

.program_info .company {
  margin-top: 0.4rem;
  width: 100%;
  font-size: 1.2rem;
  letter-spacing: 0.1em;
  padding-left: 0.2rem;
}
@media screen and (max-width: 767px) {
  .program_info .company {
    margin-top: 0.4rem;
  }
}
.program_info .text:first-of-type {
  margin-right: 4.4rem;
}
@media screen and (max-width: 767px) {
  .program_info .text:first-of-type {
    margin-right: 3.8rem;
  }
}

.program_btn-wrap {
  margin-top: 3rem;
  display: flex;
  justify-content: center;
}
.program_btn-wrap .program_btn {
  width: min(27vw, 251px);
  height: 59px;
  background: url("../img/schedule/bg_btn.png") no-repeat center/cover;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: min(2vw, 18px);
  font-weight: 700;
  letter-spacing: 0.025em;
  border-radius: 100vmax;
  position: relative;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .program_btn-wrap .program_btn {
    font-size: 1.7rem;
    width: 23.2rem;
    height: 5.4rem;
    background: url("../img/schedule/bg_btn_sp.png") no-repeat center/cover;
  }
}
@media (hover: hover) {
  .program_btn-wrap .program_btn:hover {
    opacity: 0.8;
  }
}
.program_btn-wrap .program_btn::before {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  right: 15px;
  background: url("../img/top/icon_btn.svg") no-repeat center/cover;
  width: 11px;
  height: 9px;
}
@media screen and (max-width: 767px) {
  .program_btn-wrap .program_btn::before {
    right: 15px;
    width: 9px;
    height: 8px;
  }
}

.program_tasting {
  margin-top: 9rem;
  background-color: #f9f5e3;
  border-radius: 4rem;
  display: flex;
  align-items: center;
  padding: 2.5rem 2rem;
  gap: 2rem;
}
@media screen and (max-width: 767px) {
  .program_tasting {
    margin-top: 5.6rem;
    border-radius: 2rem;
    padding: 3.6rem 1.5rem 4.4rem;
    display: grid;
    grid-template-columns: 10.6rem 1fr;
    grid-template-rows: repeat(2, auto);
    max-width: 400px;
    margin-inline: auto;
    gap: 0;
  }
}

.program_tasting-img {
  width: min(30vw, 15.5rem);
  height: auto;
  aspect-ratio: 155/110;
}
@media screen and (max-width: 767px) {
  .program_tasting-img {
    margin-top: -2rem;
    width: 10.6rem;
    aspect-ratio: 116/107;
  }
}

.program_tasting-detail {
  flex: 1;
}
@media screen and (max-width: 767px) {
  .program_tasting-detail {
    display: contents;
  }
}

.program_tasting-heading {
  font-size: min(2.7vw, 2.5rem);
  color: #763416;
  font-weight: 700;
  letter-spacing: 0.025em;
  line-height: 1.5;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .program_tasting-heading {
    margin-left: 2rem;
    margin-right: -1rem;
    font-size: 2.2rem;
    line-height: 1.7;
  }
}
.program_tasting-heading.old_color {
  color: #fe9002;
}

.program_tasting-text {
  margin-top: 2rem;
  font-size: min(1.9vw, 1.7rem);
  font-weight: 500;
  letter-spacing: 0.1em;
}
@media screen and (max-width: 767px) {
  .program_tasting-text {
    margin-top: 1.6rem;
    font-size: 1.6rem;
    line-height: 1.6875;
    grid-column: span 2/span 2;
    font-feature-settings: "palt";
  }
}

.schedule_cafeteria {
  background: url(../img/schedule/bg_cafeteria_main.jpg) no-repeat center/cover;
  padding-block: 9rem 8rem;
  position: relative;
}
@media screen and (max-width: 767px) {
  .schedule_cafeteria {
    background: url(../img/schedule/bg_cafeteria_main_sp.jpg) no-repeat center/cover;
    padding-block: 0 8.4rem;
  }
}
.schedule_cafeteria::before, .schedule_cafeteria::after {
  content: "";
  position: absolute;
  left: 0;
  width: 100%;
  height: 15px;
  background-repeat: repeat-x;
  background-size: contain;
}
.schedule_cafeteria::before {
  top: -14px;
  background-image: url(../img/schedule/bg_cafeteria_top.png);
  background-position: left bottom;
}
@media screen and (max-width: 767px) {
  .schedule_cafeteria::before {
    background-image: url(../img/schedule/bg_cafeteria_top_sp.png);
  }
}
.schedule_cafeteria::after {
  bottom: -14px;
  background-image: url(../img/schedule/bg_cafeteria_bottom.png);
  background-position: left top;
}
@media screen and (max-width: 767px) {
  .schedule_cafeteria::after {
    background-image: url(../img/schedule/bg_cafeteria_bottom_sp.png);
  }
}

.cafeteria_title {
  position: relative;
  z-index: 1;
}
@media screen and (max-width: 767px) {
  .cafeteria_title {
    padding-top: 13.5rem;
  }
}

.cafeteria_person1,
.cafeteria_person2 {
  position: absolute;
  z-index: -1;
}

.cafeteria_person1 {
  width: 30rem;
  height: 34.8rem;
  top: 7.5rem;
  left: 19rem;
}
@media screen and (max-width: 1239px) {
  .cafeteria_person1 {
    left: 6rem;
    width: 25rem;
    height: 29rem;
  }
}
@media screen and (max-width: 920px) {
  .cafeteria_person1 {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .cafeteria_person1 {
    display: block;
    width: 15rem;
    height: 17.9rem;
    top: 3.3rem;
    left: 8rem;
  }
}

.cafeteria_person2 {
  width: 27.1rem;
  height: 30.8rem;
  top: 9rem;
  right: -5rem;
}
@media screen and (max-width: 1239px) {
  .cafeteria_person2 {
    right: -15rem;
    width: 22.5rem;
    height: 25.6rem;
  }
}
@media screen and (max-width: 920px) {
  .cafeteria_person2 {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  .cafeteria_person2 {
    display: block;
    width: 14.5rem;
    height: 16.5rem;
    top: 3.5rem;
    right: -5.5rem;
  }
}

.cafeteria_title-jp {
  text-align: center;
  font-size: 3.2rem;
  font-weight: 700;
  letter-spacing: 0.025em;
  font-feature-settings: "palt";
  color: #ee6b01;
  position: relative;
  z-index: 1;
}
.cafeteria_title-jp::before {
  content: "";
  position: absolute;
  bottom: -0.2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 32.6rem;
  height: 2.1rem;
  z-index: -1;
  background: url(../img/schedule/cafeteria_accent.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .cafeteria_title-jp::before {
    width: 32.2rem;
    background: url(../img/schedule/cafeteria_accent_sp.png) no-repeat center/contain;
  }
}

.cafeteria_lead {
  margin-top: 2.4rem;
  text-align: center;
  font-size: 1.7rem;
  font-weight: 500;
  letter-spacing: 0.025em;
  line-height: 1.47;
}
@media screen and (max-width: 767px) {
  .cafeteria_lead {
    font-size: 1.6rem;
    line-height: 1.56;
  }
}

.cafeteria_list {
  margin-top: 5.2rem;
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2.4rem 1.1rem;
}
@media screen and (max-width: 767px) {
  .cafeteria_list {
    margin-top: 2.6rem;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    max-width: 400px;
    margin-inline: auto;
  }
}

.cafeteria_item {
  background-color: #309bac;
  border-radius: 2rem;
  border: 0.2rem solid #cec729;
  padding: 2.8rem 1rem 2.2rem;
  color: #fff;
}
@media screen and (max-width: 767px) {
  .cafeteria_item {
    border-radius: 1.5rem;
    padding: 2.4rem 0 4rem;
  }
}

.cafeteria_item_label {
  background-color: #ffc500;
  border-radius: 100vmax;
  text-align: center;
  max-width: 26.2rem;
  margin-inline: auto;
  padding: 0.3rem 1rem;
  font-size: 1.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.4;
  color: #494949;
  position: relative;
}
@media screen and (max-width: 767px) {
  .cafeteria_item_label {
    font-size: 1.6rem;
    max-width: 24.1rem;
  }
}
.cafeteria_item_label::before, .cafeteria_item_label::after {
  content: "";
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.cafeteria_item_label::before {
  left: -2rem;
  width: 1.7rem;
  height: 6.1rem;
  background: url(../img/schedule/icon_cafeteria1.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .cafeteria_item_label::before {
    width: 1.6rem;
    height: 5.6rem;
  }
}
.cafeteria_item_label::after {
  right: -2.4rem;
  width: 2.4rem;
  height: 5.9rem;
  background: url(../img/schedule/icon_cafeteria2.png) no-repeat center/contain;
}
@media screen and (max-width: 767px) {
  .cafeteria_item_label::after {
    width: 2.2rem;
    height: 5.5rem;
  }
}

.cafeteria_group {
  font-size: 1.6rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.1;
  margin-top: 1.6rem;
  text-align: center;
}
@media screen and (max-width: 767px) {
  .cafeteria_group {
    font-size: 1.5rem;
    line-height: 1.125;
  }
}

.cafeteria_item_title {
  margin-top: 0.8rem;
  font-size: clamp(20px, 2.5vw, 27px);
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.4;
  text-align: center;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .cafeteria_item_title {
    margin-top: 0.8rem;
    font-size: 2.2rem;
    letter-spacing: 0;
  }
}

.cafeteria_item_text {
  margin-top: 1rem;
  font-size: clamp(12px, 2vw, 16px);
  font-weight: 500;
  letter-spacing: 0.04em;
  line-height: 1.625;
  text-align: center;
  font-feature-settings: "palt";
}
@media screen and (max-width: 767px) {
  .cafeteria_item_text {
    margin-top: 1.6rem;
    font-size: 1.4rem;
    line-height: 1.43;
    min-height: 8rem;
  }
}

.cafeteria_item_link {
  margin-top: 1rem;
  text-align: center;
  font-size: clamp(12px, 2vw, 15px);
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.3;
}
@media screen and (max-width: 767px) {
  .cafeteria_item_link {
    font-size: 1.4rem;
  }
}
.cafeteria_item_link a {
  color: #fff;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
  transition: opacity 0.3s;
  font-feature-settings: "palt";
  word-break: break-all;
}
@media screen and (max-width: 767px) {
  .cafeteria_item_link a {
    font-size: 1.3rem;
  }
}
@media (hover: hover) {
  .cafeteria_item_link a:hover {
    opacity: 0.8;
  }
}

.schedule_button-prev {
  display: flex;
  justify-content: center;
  position: relative;
  margin-top: 10rem;
  transition: 0.3s;
}
@media (min-width: 768px) {
  .schedule_button-prev:hover {
    opacity: 0.8;
  }
}
@media (max-width: 767px) {
  .schedule_button-prev {
    margin-top: 6rem;
  }
}

.schedule_button-prev-link {
  background-image: url(../img/story/button_bg.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  position: relative;
  width: 28rem;
  height: 6.3rem;
  display: flex;
  align-items: center;
  color: #fff;
  font-weight: 700;
  font-size: 1.8rem;
  position: relative;
  justify-content: center;
  transition: opacity 0.3s;
}
.schedule_button-prev-link::before {
  content: "";
  display: inline-block;
  width: 11px;
  aspect-ratio: 20/17;
  background-image: url(../img/story-detail/preview_arrow.svg);
  background-repeat: no-repeat;
  background-size: contain;
  vertical-align: middle;
  position: absolute;
  top: 50%;
  transform: translate(0, -50%);
  left: 3.1rem;
}

.cafeteria_donate {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2rem;
  margin-top: 70px;
  padding: 30px 83px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #004831;
}
.cafeteria_donate_title {
  font-size: clamp(20px, 10.2372881356px + 1.2711864407vw, 26px);
  font-weight: 600;
  line-height: 1.42;
  width: 30%;
}
.cafeteria_donate div {
  width: 67%;
  padding-left: 7rem;
  position: relative;
}
.cafeteria_donate div:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 7px;
  height: 100%;
  background: #bfd730;
  border-radius: 50px;
}
.cafeteria_donate dl {
  width: 100%;
}
.cafeteria_donate dl dt {
  font-size: clamp(16px, 9.4915254237px + 0.8474576271vw, 20px);
  font-weight: 600;
  margin-bottom: 1rem;
}
.cafeteria_donate dl dd {
  font-size: clamp(14px, 10.7457627119px + 0.4237288136vw, 16px);
  line-height: 1.625;
  font-weight: 400;
  letter-spacing: -1px;
}
.cafeteria_donate dl + dl {
  margin-top: 2.5rem;
  border-top: dotted 10px #bfd730;
  padding-top: 2.5rem;
}
@media screen and (max-width: 767px) {
  .cafeteria_donate {
    border-radius: 1.5rem;
    margin-top: 48px;
    padding: 45px 16px;
    flex-direction: column;
  }
  .cafeteria_donate_title {
    font-size: 25px;
    line-height: 1.4;
    width: 100%;
    text-align: center;
  }
  .cafeteria_donate div {
    width: 100%;
    padding-left: 0;
    padding-top: 28px;
    margin-top: 15px;
  }
  .cafeteria_donate div:before {
    content: "";
    width: 100%;
    height: 11px;
    border-radius: 50px;
  }
  .cafeteria_donate dl dt {
    font-size: 17px;
    text-align: center;
  }
  .cafeteria_donate dl dd {
    font-size: 14px;
    line-height: 1.75;
  }
  .cafeteria_donate dl + dl {
    border-top: dotted 16px #bfd730;
  }
}