:root {
  --primary: #00AFEC;
  --wh: #fff;
  --wh2: #eee;
  --wh3: #f6f6f6;
  --bk: #000;
  --bk2: #333;
  --gray: #B6BCC1;
  --blue: #15A0D4;
  --blue_dark: #0366B3;
  --yellow: #ECE800;
}

/* program */
/* -------------------------------------------------------- */
@media only screen and (max-width: 764px) {
  .program .p_circle_wrap .p_circle.p_circle_02 {
    top: 210px;
    left: calc(50% - 168px);
  }
}
.program .main_container {
  padding-bottom: 0;
}

/* parts */
/* ------------------------------- */
.btn_more {
  width: 160px;
  border: 1px solid var(--wh);
}
@media only screen and (max-width: 764px) {
  .btn_more {
    width: 100%;
  }
}
.btn_more .link2 {
  position: relative;
  width: 100%;
  height: 100%;
  display: block;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  z-index: 2;
}
.btn_more .link2 > span {
  position: relative;
  padding-right: 12px;
  color: var(--primary);
  font-size: 1.4rem;
  font-weight: 700;
  line-height: 1.4;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}
@media only screen and (max-width: 374px) {
  .btn_more .link2 > span {
    font-size: 1.2rem;
  }
}
.btn_more .link2::before, .btn_more .link2::after {
  position: absolute;
  content: "";
  width: 11px;
  height: 9px;
  background: url("../img/common/icon_external.svg") no-repeat 0 0/contain;
  top: calc(50% - 4px);
}
.btn_more .link2::before {
  left: -34px;
  -webkit-transition: -webkit-transform 0.4s;
  transition: -webkit-transform 0.4s;
  transition: transform 0.4s;
  transition: transform 0.4s, -webkit-transform 0.4s;
}
@media only screen and (max-width: 764px) {
  .btn_more .link2::before {
    left: -16px;
  }
}
.btn_more .link2::after {
  right: 30px;
  -webkit-transition: -webkit-transform 0.4s;
  transition: -webkit-transform 0.4s;
  transition: transform 0.4s;
  transition: transform 0.4s, -webkit-transform 0.4s;
}
@media only screen and (max-width: 764px) {
  .btn_more .link2::after {
    right: 36vw;
  }
}
@media only screen and (max-width: 540px) {
  .btn_more .link2::after {
    right: 28vw;
  }
}
.btn_more .link2.soon::before, .btn_more .link2.soon::after {
  top: calc(50% - 3px);
}
.btn_more .link2.gray {
  color: var(--wh);
  background: var(--gray);
  -webkit-transition: none;
  transition: none;
}
.btn_more .link2.gray > span {
  padding-right: 0;
  color: var(--wh);
  -webkit-transition: none;
  transition: none;
}
.btn_more .link2.gray::before, .btn_more .link2.gray::after {
  content: none;
}
.btn_more.gray {
  border: 1px solid var(--gray);
  background: var(--gray);
}

@media only screen and (min-width: 765px) {
  a:hover .btn_more .link2 > span {
    color: var(--wh);
    -webkit-transform: translateX(12px);
            transform: translateX(12px);
  }
}
@media only screen and (min-width: 765px) {
  a:hover .btn_more .link2::before {
    -webkit-transform: translateX(60px);
            transform: translateX(60px);
  }
}
@media only screen and (min-width: 765px) {
  a:hover .btn_more .link2::after {
    -webkit-transform: translateX(60px);
            transform: translateX(60px);
  }
}

/* main */
/* -------------------------------------------------------- */
.main_top {
  margin-bottom: 40px;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}
@media only screen and (max-width: 764px) {
  .main_top .main_top_01 h1 {
    width: 100%;
  }
}

.contents_list {
  margin: 0 auto 60px;
  max-width: 1200px;
}
@media only screen and (max-width: 764px) {
  .contents_list {
    margin: 0 auto 20px;
  }
}
.contents_list .contents_item {
  position: relative;
  padding-top: 40px;
  padding-bottom: 40px;
}
@media only screen and (max-width: 764px) {
  .contents_list .contents_item {
    padding-top: 60px;
    padding-bottom: 60px;
  }
}
.contents_list .contents_item::after {
  position: absolute;
  content: "";
  width: 100%;
  height: 3px;
  top: 0;
  left: 0;
  background: url("../img/program/line.svg") repeat-x 0 0;
}
@media only screen and (max-width: 764px) {
  .contents_list .contents_item::after {
    background: url("../img/program/line_sp.svg") repeat-x 0 0;
  }
}
.contents_list .contents_item:first-of-type::after {
  content: none;
}
.contents_list .new {
  margin-bottom: 28px;
}
@media only screen and (max-width: 764px) {
  .contents_list .new {
    margin-bottom: 8px;
    width: 62px;
  }
}
.contents_list .item {
  color: var(--wh);
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
  gap: 0 60px;
}
@media only screen and (max-width: 764px) {
  .contents_list .item {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 0;
  }
}
.contents_list .item .item_text {
  position: relative;
  padding-left: 40px;
  width: 45.2%;
  max-width: 543px;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text {
    padding-left: 0;
    width: 100%;
    max-width: inherit;
  }
}
.contents_list .item .item_text::before {
  position: absolute;
  content: "";
  width: 23px;
  height: 28px;
  background: url("../img/program/icon_triangle.svg") no-repeat 0 0/100% auto;
  top: 15px;
  left: 0;
}
@media only screen and (max-width: 1199px) {
  .contents_list .item .item_text::before {
    top: 2%;
  }
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text::before {
    width: 10px;
    height: 11px;
    background: url("../img/program/icon_triangle_sp.svg") no-repeat 0 0/100% auto;
    top: 9px;
    left: 0;
  }
}
.contents_list .item .item_text .ttl {
  margin-bottom: 24px;
  font-size: clamp(2.2rem, 2.4vw, 3.2rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text .ttl {
    margin-bottom: 16px;
    padding-left: 18px;
    font-size: 1.8rem;
  }
}
.contents_list .item .item_text p {
  font-size: clamp(1.2rem, 1.14vw, 1.4rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text p {
    text-align: justify;
    font-size: 1.4rem;
  }
}
.contents_list .item .item_text p.catch {
  margin-bottom: 8px;
  padding-bottom: 2px;
  font-size: clamp(1.6rem, 1.5vw, 1.8rem);
  font-weight: 700;
  letter-spacing: 0.05em;
  display: inline-block;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text p.catch {
    margin-bottom: 16px;
    padding-bottom: 6px;
    font-size: 1.6rem;
  }
}
.contents_list .item .item_text p.catch span {
  background: url("../img/program/line_txt.svg") repeat left top;
  background-size: auto 1.7em;
  padding-bottom: 1rem;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text p.catch span {
    background-size: 315px 1.7em;
  }
}
.contents_list .item .item_text .info {
  margin-top: 24px;
  margin-bottom: 35px;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text .info {
    margin-top: 16px;
    margin-bottom: 24px;
  }
}
.contents_list .item .item_text .info .time {
  position: relative;
  margin-bottom: 16px;
  padding-left: 26px;
  font-size: clamp(1.2rem, 1.14vw, 1.4rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text .info .time {
    margin-bottom: 13px;
    font-size: 1.2rem;
    line-height: 1.2;
  }
}
.contents_list .item .item_text .info .time::before {
  position: absolute;
  content: "";
  width: 14px;
  height: 15px;
  background: url("../img/common/icon_time.svg") no-repeat 0 0/100% auto;
  top: 0;
  left: 0;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text .info .time::before {
    top: 0px;
  }
}
.contents_list .item .item_text .info .person {
  position: relative;
  padding-left: 26px;
  font-size: clamp(1.2rem, 1.14vw, 1.4rem);
  font-weight: 500;
  letter-spacing: 0.05em;
  line-height: 1.6;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_text .info .person {
    font-size: 1.2rem;
  }
}
.contents_list .item .item_text .info .person::before {
  position: absolute;
  content: "";
  width: 14px;
  height: 17px;
  background: url("../img/common/icon_person.svg") no-repeat 0 0/100% auto;
  top: 2px;
  left: 0;
}
.contents_list .item .item_text .info .person ul {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  gap: 0 0.5em;
}
.contents_list .item .item_img_wrap {
  position: relative;
  margin-top: 10px;
  width: 49.75%;
  max-width: 597px;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  aspect-ratio: 1194/748;
}
@media only screen and (max-width: 764px) {
  .contents_list .item .item_img_wrap {
    margin-bottom: 16px;
    width: 100%;
    max-width: inherit;
  }
}
.contents_list .item .item_img_wrap .wave {
  position: absolute;
  width: 100%;
  height: 100%;
  z-index: 3;
  opacity: 0;
  top: -7px;
  right: -10px;
}
.contents_list .item .item_img_wrap .wave svg {
  position: absolute;
}
.contents_list .item .item_img_wrap .item_img {
  position: relative;
  display: -ms-flexbox;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 100%;
  overflow: hidden;
  border-radius: 10px;
}
.contents_list .item .item_img_wrap .item_img img {
  width: 100%;
  height: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}
.contents_list .item .item_img_wrap.square .wave {
  width: 64%;
  max-width: 374px;
  max-height: 374px;
  top: -7px;
  left: 50%;
  -webkit-transform: translateX(-47%);
          transform: translateX(-47%);
}
@media only screen and (max-width: 540px) {
  .contents_list .item .item_img_wrap.square .wave {
    max-width: 198px;
    max-height: 198px;
    left: calc(50% - 88px);
  }
}
.contents_list .item .item_img_wrap.square .item_img {
  max-width: 374px;
  max-height: 374px;
}
@media only screen and (min-width: 765px) {
  .contents_list a:hover .item .item_img_wrap .wave {
    opacity: 1;
  }
}
@media only screen and (min-width: 765px) {
  .contents_list a:hover .item .item_img_wrap .item_img img {
    -webkit-transform: scale(1.05);
            transform: scale(1.05);
  }
}