@charset "UTF-8";
/*-------------------------------
終了しました枠
-------------------------------*/
.cp-end {
  color: #ff0000;
  font-weight: bold;
  text-align: center;
  background: #fffee3;
  border: 1px solid #fff17f;
  margin-bottom: 20px;
  padding: 24px 24px 19px;
}

@media screen and (max-width: 767px) {
  .cp-end {
    margin-top: 20px;
  }
}

@media only screen and (max-width: 767px) {
  .ec-featureRole {
    padding: 0 2%;
    overflow: hidden;
  }
}

/*-------------------------------
大枠
-------------------------------*/
/*-------------------------------
sp時に非表示
-------------------------------*/
@media screen and (max-width: 767px) {
  .pc {
    display: none;
  }
}

.sp {
  display: none;
}

@media screen and (max-width: 767px) {
  .sp {
    display: block;
  }
}

/*-------------------------------
デザイン
-------------------------------*/
@media only screen and (max-width: 768px) {
  .natsub .mv-image {
    margin-left: -2%;
    margin-right: -2%;
  }
}

.natsub__anchor {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
  margin-top: 50px !important;
  padding-bottom: 50px !important;
}

@media only screen and (max-width: 768px) {
  .natsub__anchor {
    gap: 10px;
    margin-top: 20px !important;
    padding-bottom: 30px !important;
  }
}

.natsub__anchorList {
  width: 100%;
  margin-top: 23px;
  margin-bottom: 5px;
}

@media only screen and (max-width: 768px) {
  .natsub__anchorList {
    margin-top: 18px;
  }
}

.natsub__anchorList:nth-child(1) .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_train.svg");
}

.natsub__anchorList:nth-child(1).ticket .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_ticket.svg");
}

.natsub__anchorList:nth-child(2) .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_cal.svg");
}

.natsub__anchorList:nth-child(2).ticket .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_train.svg");
}

.natsub__anchorList:nth-child(3) .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_event.svg");
}

.natsub__anchorList:nth-child(3).ticket .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_cal.svg");
}

.natsub__anchorList:nth-child(4) .natsub__anchorLink:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_anchor_icon_ticket.svg");
}

.natsub__anchorLink {
  position: relative;
  text-align: center;
  color: #000;
  font-size: 16px;
  font-weight: bold;
  background: #fff;
  padding: 30px 10px 15px;
  border: 2px solid #000;
  box-shadow: 0 5px 0 #000;
  border-radius: 10px;
  height: 100%;
  display: block;
  transition: .3s;
}

@media only screen and (max-width: 768px) {
  .natsub__anchorLink {
    padding: 12px 4px 10px;
  }
}

.natsub__anchorLink:before {
  position: absolute;
  content: "";
  width: 45px;
  height: 45px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
}

@media only screen and (max-width: 768px) {
  .natsub__anchorLink:before {
    width: 37px;
    height: 37px;
    top: -20px;
  }
}

.natsub__anchorLink:hover {
  transform: translateY(5px);
  box-shadow: 0 0 0 #000;
}

.natsub__anchorLink__top {
  height: 25px;
  width: auto;
  color: #000;
  font-size: 28px;
}

@media only screen and (max-width: 768px) {
  .natsub__anchorLink__top {
    height: 14px;
  }
}

.natsub__anchorLink__bottom {
  display: block;
  color: #000;
  font-size: 14px;
  font-weight: 300;
  margin-top: 15px;
}

@media only screen and (max-width: 768px) {
  .natsub__anchorLink__bottom {
    font-size: 10px;
    margin-top: 5px;
  }
}

.natsub .bgwhite,
.natsub .bggray,
.natsub .bgyellow {
  position: relative;
  margin-left: calc(((100vw - 1160px) / 2)* -1);
  margin-right: calc(((100vw - 1160px) / 2)* -1);
  z-index: 1;
}

@media only screen and (max-width: 1280px) {
  .natsub .bgwhite,
  .natsub .bggray,
  .natsub .bgyellow {
    margin-left: -60px;
    margin-right: -60px;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .bgwhite,
  .natsub .bggray,
  .natsub .bgyellow {
    margin-left: -2%;
    margin-right: -2%;
  }
}

.natsub .overwrap {
  overflow: hidden;
}


.natsub .bgwhite-bottom,
.natsub .bggray-bottom,
.natsub .bgyellow-bottom {
  padding-bottom: 48px !important;
}

@media only screen and (max-width: 768px) {
  .natsub .bgwhite-bottom,
  .natsub .bggray-bottom,
  .natsub .bgyellow-bottom {
    padding-bottom: 40px !important;
  }
}

.natsub .bgwhite-bottom:after,
.natsub .bggray-bottom:after,
.natsub .bgyellow-bottom:after {
  position: absolute;
  content: "";
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 28px;
  width: 100%;
  background-position: center;
  background-repeat: repeat-x;
  background-size: contain;
  z-index: -1;
}

@media only screen and (max-width: 768px) {
  .natsub .bgwhite-bottom:after,
  .natsub .bggray-bottom:after,
  .natsub .bgyellow-bottom:after {
    height: 20px;
  }
}

/*.natsub .bgwhite {
  background-color: #fff;
}*/

.natsub .bgwhite-top:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_w.svg");
}

.natsub .bgwhite-bottom:after {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_w.svg");
}

.natsub .bggray {
  background-color: #f5f5f5;
}

.natsub .bggray-top:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_g.svg");
}

.natsub .bggray-bottom:after {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_g.svg");
}

.natsub .bgyellow {
  background-color: #fcfdee;
}

.natsub .bgyellow-top:before {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_y.svg");
}

.natsub .bgyellow-bottom:after {
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_wave_y.svg");
}

.natsub .readtext {
  font-size: 16px;
  font-weight: 600;
  line-height: 200%;
  color: #0025b0;
  margin: 30px 0 15px;
}

@media only screen and (max-width: 768px) {
  .natsub .readtext {
    font-size: 13px;
  margin: 20px 0;
  }
}

.natsub .readtext strong {
  font-size: 24px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #fff011;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
  line-height: 150%;
}

@media only screen and (max-width: 768px) {
  .natsub .readtext strong {
    font-size: 19px;
  }
}

.natsub .cstxt strong {
  font-size: 36px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #fff011;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
  line-height: 180%;
}

.natsub .cstxt02{
  font-size: 30px;
}

@media only screen and (max-width: 768px) {
  .natsub .cstxt strong {
    font-size: 28px;
  }
  .natsub .cstxt02{
  font-size: 26px;
    line-height: 32px;
}
}

.natsub .campaign {
  margin-top: 150px;
  padding: 0 15px 100px;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign {
    margin-top: 20px;
    margin-bottom: 0px;
  }
}

.natsub .campaign.ticket {
  margin-top: 90px;
}

.natsub .campaign__container {
  max-width: 1160px;
  width: 100%;
  margin: auto;
  padding: 50px 0;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__container {
    padding: 30px 0;
  }
}

.natsub .campaign__row {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 74px;
  margin-top: -140px;
  z-index: 2;
}

@media only screen and (max-width: 1280px) {
  .natsub .campaign__row {
    gap: 40px;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__row {
    gap: 30px;
    margin-top: 0;
  }
}

.natsub .campaign__row.ticket {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 15px;
}

@media only screen and (max-width: 1280px) {
  .natsub .campaign__row.ticket {
    grid-template-columns: 1fr;
    margin-top: -120px;
  }
}

.natsub .campaign__row.ticket:before {
  display: none;
}

.natsub .campaign__row.ticket .campaign__col {
  width: 100%;
}

.natsub .campaign__row.ticket .campaign__col .archtitle {
  margin: 0;
}

.natsub .campaign__row.ticket .campaign__col .btn-outer {
  margin-top: 20px;
}

@media only screen and (max-width: 1280px) {
  .natsub .campaign__row.ticket .campaign__col__inner {
    display: flex;
    gap: 50px;
    justify-content: center;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__row.ticket .campaign__col__inner {
    display: block;
    gap: 0;
    justify-content: center;
  }
}

.natsub .campaign__row:before {
  pointer-events: none;
  position: absolute;
  content: "";
  height: 805px;
  width: 1920px;
  /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_campaign_pc.png");*/
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -1;
  top: 80px;
  right: calc(((100vw - 1160px) / 2)* -1);
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__row:before {
    top: 28%;
    width: 100vw;
    height: 30%;
    right: auto;
    left: -15px;
    /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_campaign_sp.png");*/
  }
}

.natsub .campaign__col {
  width: calc(50% - 37px);
  border: 6px solid #0025b1;
  border-radius: 60px;
  padding: 6px 6px 50px;
  background-color: #fffff9;
  margin: 50px 0 0;
}

.natsub .campaign__col.comingsoon{
  background-color: #d5dbf1;
}

@media only screen and (max-width: 1280px) {
  .natsub .campaign__col {
    width: calc(50% - 20px);
      margin-top: 0;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__col {
    width: 100%;
    padding: 4px 4px 30px;
    border-radius: 30px;
    border: 5px solid #0025b1;
    margin-bottom: 30px;
  }
}



.natsub .campaign__col__inner .campaign_img {
  text-align: center;
  margin-top: -60px;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__col__inner .campaign_img {
    margin-top: -40px;
  }
}

.natsub .campaign__col__inner .campaign_img img {
  image-rendering: -webkit-optimize-contrast;
  max-width: 221px;
  height: 100%;
  width: 100%;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__col__inner .campaign_img img {
    max-width: 40%;
  }
}

.natsub .campaign__col__inner .archtitle {
  text-align: center;
  margin: 20px auto 30px;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__col__inner .archtitle {
    margin: 10px auto 20px;
  }
}

.natsub .campaign__col__inner .archtitle img {
  height: 89px;
  max-width: 394px;
  width: 100%;
  margin: auto;
  image-rendering: -webkit-optimize-contrast;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign__col__inner .archtitle img {
    height: 56px;
  }
}

.natsub .campaign-prize {
  position: relative;
  z-index: 1;
  margin-top: 100px;
  margin-bottom: 60px;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign-prize {
    margin-top: 20px;
    margin-bottom: 40px;
  }
}

.natsub .campaign-prize__title {
  position: relative;
  z-index: 1;
  text-align: center;
  margin-bottom: 30px;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign-prize__title {
    margin-bottom: 20px;
  }
}

.natsub .campaign-prize__title img {
  height: 134px;
  width: auto;
  margin: auto;
}

.natsub .campaign-prize__row {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 26px;
  z-index: 0;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign-prize__row {
    gap: 10px;
  }
}

.natsub .campaign-prize__row:before {
  pointer-events: none;
  position: absolute;
  content: "";
  height: 380px;
  width: 1920px;
  /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_prize_pc.png");*/
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  z-index: -1;
  top: -110px;
  right: calc(((100vw - 1160px) / 2)* -1);
}

@media only screen and (max-width: 768px) {
  .natsub .campaign-prize__row:before {
    top: -81vw;
    width: 100vw;
    height: 60vw;
    right: auto;
    left: -15px;
    /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_bg_prize_sp.png");*/
  }
}

.natsub .campaign-prize__col {
  width: calc((100% / 5) - 21px);
  border: 2px solid #000;
  border-radius: 4px;
  overflow: hidden;
}

@media only screen and (max-width: 768px) {
  .natsub .campaign-prize__col {
    width: calc((100% / 3) - 7px);
  }
}

.natsub .eventschedule {
  padding: 0 15px;
  margin-bottom: 100px;
}

.natsub .eventschedule__container {
  max-width: 1160px;
  width: 100%;
  margin: auto;
  padding: 80px 0;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__container {
    padding: 50px 0;
  }
}

.natsub .eventschedule__inner__title {
  position: relative;
  height: 80px;
  max-width: 416px;
  width: 100%;
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__title {
    height: auto;
    width: 80%;
  }
}

.natsub .eventschedule__inner__row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px 46px;
  margin-top: 50px !important;
}

@media only screen and (max-width: 1280px) {
  .natsub .eventschedule__inner__row {
    gap: 20px;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__row {
    margin-top: 20px !important;
  }
}

.natsub .eventschedule__inner__col {
  width: calc(50% - 23px);
  position: relative;
  text-align: center;
  color: #000;
  font-size: 16px;
  font-weight: bold;
  background: #fff;
  padding: 15px 10px;
  border: 2px solid #000;
  box-shadow: 0 5px 0 #000;
  border-radius: 10px;
  display: flex;
  transition: .3s;
}

@media only screen and (max-width: 890px) {
  .natsub .eventschedule__inner__col {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col {
    padding: 40px 10px 60px;
  }
}

.natsub .eventschedule__inner__col:before {
  position: absolute;
  content: "";
  width: 45px;
  height: 45px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  top: -24px;
  left: 50%;
  transform: translateX(-50%);
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col:before {
    width: 37px;
    height: 37px;
    top: -20px;
  }
}

.natsub .eventschedule__inner__col:hover {
  transform: translateY(5px);
  box-shadow: 0 0 0 #000;
}

.natsub .eventschedule__inner__col .card-img img {
  max-width: 190px;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-img img {
    max-width: 140px;
    width: 100% !important;
  }
}

@media only screen and (max-width: 600px) {
  .natsub .eventschedule__inner__col .card-img img {
    max-width: 120px;
    width: 100% !important;
  }
}

.natsub .eventschedule__inner__col .card-detail {
  padding-left: 10px;
  text-align: justify;
  font-weight: 300;
  display: flex;
  flex-direction: column;
  flex: 1;
}

.natsub .eventschedule__inner__col .card-detail .area-data {
  font-size: 12px;
  color: #b3b3b3;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-detail .area-data {
    position: absolute;
    top: 15px;
    width: calc(100% - 20px);
    left: 10px;
    font-size: 12px;
  }
}

.natsub .eventschedule__inner__col .card-detail .titletext {
  font-size: 15px;
  margin: 10px 0;
  font-weight: 600;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-detail .titletext {
    font-size: 14px;
  }
}

.natsub .eventschedule__inner__col .card-detail .posttext {
  font-size: 14px;
  font-weight: 300;
  margin-bottom: 5px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-detail .posttext {
    font-size: 12px;
  }
}

.natsub .eventschedule__inner__col .card-detail .btn-outer {
  margin-top: auto;
  margin-bottom: 0;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-detail .btn-outer {
    position: absolute;
    bottom: 10px;
    width: 100%;
    left: 0;
  }
}

.natsub .eventschedule__inner__col .card-detail .btn-outer .btn {
  max-width: 270px;
  font-size: 18px;
  padding: 15px 43px 15px 10px;
}

@media only screen and (max-width: 768px) {
  .natsub .eventschedule__inner__col .card-detail .btn-outer .btn {
    max-width: 80%;
    font-size: 14px;
    padding: 10px 43px 10px 40px;
  }
}

.natsub .detail {
  padding: 0 15px;
}

.natsub .detail__container {
  max-width: 1160px;
  padding: 80px 0;
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .natsub .detail__container {
    padding: 30px 0;
  }
}

.natsub .detail .detail-title {
  margin: 0;
}

.natsub .detail .detail-title img {
  height: 45px;
  width: auto;
}

@media only screen and (max-width: 600px) {
  .natsub .detail .detail-title img {
    height: 27px;
  }
}

.natsub .detail .detail_img {
  position: absolute;
  right: -50px;
  top: 52%;
}

@media only screen and (max-width: 1280px) {
  .natsub .detail .detail_img {
    display: none;
  }
}

.natsub .detail .detail_img img {
  width: 320px;
}

.natsub .detail table {
  font-weight: 600;
}

.natsub .detail table tr {
  margin-bottom: 20px;
  display: inline-table;
}

@media only screen and (max-width: 600px) {
  .natsub .detail table tr {
    display: block;
  }
}

.natsub .detail table tr:last-child {
  margin-bottom: 0;
}

.natsub .detail table th {
  background: #000;
  color: #fff;
  display: block;
  width: 145px;
  padding: 5px;
  text-align: center;
  border-radius: 5px;
}

@media only screen and (max-width: 600px) {
  .natsub .detail table th {
    margin: 0 auto 10px;
  }
}

.natsub .detail table td {
  font-size: 16px;
  padding-left: 20px;
  line-height: 160%;
}

@media only screen and (max-width: 600px) {
  .natsub .detail table td {
    padding-left: 0;
    font-size: 14px;
    text-align: justify;
  }
}

.natsub .detail table td .hashtag {
  border-radius: 5px;
  border: 2px solid #000;
  padding: 2px 30px;
}

@media only screen and (max-width: 1280px) {
  .natsub .detail table td .hashtag {
    display: block;
    text-align: center;
    margin-bottom: 6px;
    margin-top: 20px;
  }
}

.natsub .detail table td .hashtagline {
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #d9e021;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
  margin: 0 7px;
}

.natsub .detail table td .photo-theme {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

@media only screen and (max-width: 768px) {
  .natsub .detail table td .photo-theme {
    gap: 20px;
  }
}

.natsub .detail table td .photo-theme__col {
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: center;
}

.natsub .detail table td .photo-theme__col img {
  width: 60%;
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .natsub .detail table td .photo-theme__col img {
    width: 80%;
  }
}

.natsub .detail table td .photo-theme__col .title {
  font-size: 20px;
  text-align: center;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #d9e021;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
  line-height: 150%;
}

@media only screen and (max-width: 768px) {
  .natsub .detail table td .photo-theme__col .title {
    font-size: 16px;
  }
}

.natsub .detail table td .photo-theme__col .text {
  flex: 1;
}

.natsub .detail table td ul {
  text-align: left;
  margin-top: 20px !important;
}

@media only screen and (max-width: 600px) {
  .natsub .detail table td ul {
    font-size: 12px;
    text-align: justify;
  }
}

.natsub .detail table td ul li {
  margin-bottom: 0.6em;
  padding-left: 1em;
  text-indent: -1em;
}

.natsub .detail table td ul li:last-child {
  margin-bottom: 0;
}

.natsub .detail table .big {
  font-size: 24px;
}

@media only screen and (max-width: 600px) {
  .natsub .detail table .big {
    font-size: 20px;
    text-align: center;
    display: block;
  }
}

.natsub .about {
  padding: 0 15px;
}

.natsub .about__container {
  max-width: 1160px;
  padding: 140px 0;
  margin: auto;
  position: relative;
}

@media only screen and (max-width: 768px) {
  .natsub .about__container {
    padding: 80px 0 50px;
  }
}

.natsub .about__container:before {
  position: absolute;
  content: "";
  /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_about_bg_left.png");*/
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 70px;
  left: -25%;
  width: 321px;
  height: 590px;
  z-index: -1;
}

@media only screen and (max-width: 768px) {
  .natsub .about__container:before {
    /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_about_bg_sp.png");*/
    width: 100vw;
    height: 220vw;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }
}

.natsub .about__container:after {
  position: absolute;
  content: "";
  background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_about_bg_right.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  bottom: 70px;
  right: -25%;
  width: 378px;
  height: 696px;
  z-index: -1;
}

@media only screen and (max-width: 768px) {
  .natsub .about__container:after {
    display: none;
  }
}

.natsub .about__inner__title {
  position: relative;
  height: 69px;
  max-width: 456px;
  width: 100%;
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .natsub .about__inner__title {
    height: auto;
    width: 50%;
  }
}

.natsub .about__inner__title:before {
  position: absolute;
  content: "";
  /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_about_title_pc.png");*/
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  bottom: 70px;
  left: 50%;
  width: 100vw;
  height: 350px;
  top: 50%;
  z-index: -1;
  /* left: calc(((100vw - 1160px) / 2)* -1); */
  transform: translate(-50%, -50%);
}

@media only screen and (max-width: 768px) {
  .natsub .about__inner__title:before {
    /*background-image: url("/html/upload/user_data/feature/railwayday/img/2024/railway2024_about_title_sp.png");*/
    height: 37vw;
  }
}

.natsub .about__inner .readtext {
  font-size: 18px;
  font-weight: 600;
  line-height: 200%;
  text-align: center;
  margin-top: 50px;
}

@media only screen and (max-width: 768px) {
  .natsub .about__inner .readtext {
    font-size: 14px;
    margin-top: 20px;
  }
}

.natsub .about__inner .readtext strong {
  font-size: 24px;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-thickness: 0.5em;
  text-decoration-color: #d9e021;
  text-underline-offset: -0.2em;
  text-decoration-skip-ink: none;
  line-height: 150%;
}

@media only screen and (max-width: 768px) {
  .natsub .about__inner .readtext strong {
    font-size: 19px;
  }
}

.natsub .about__inner .readtext + .readtext {
  margin-top: 50px;
}

@media only screen and (max-width: 768px) {
  .natsub .about__inner .readtext + .readtext {
    margin-top: 20px;
  }
}

.natsub .recommend {
  padding: 0 15px;
}

.natsub .recommend__container {
  max-width: 910px;
  padding: 80px 0;
  margin: auto;
}

.natsub .recommend__bnr__title {
  height: 80px;
  max-width: 573px;
  width: 100%;
  margin: auto;
}

@media only screen and (max-width: 768px) {
  .natsub .recommend__bnr__title {
    height: auto;
  }
}

.natsub .recommend__bnr__row {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 34px;
  margin-top: 50px !important;
}

@media only screen and (max-width: 768px) {
  .natsub .recommend__bnr__row {
    gap: 15px;
    margin-top: 20px !important;
  }
}

.natsub .recommend__bnr__row li {
  width: calc(50% - 17px);
}

@media only screen and (max-width: 768px) {
  .natsub .recommend__bnr__row li {
    width: 100%;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .recommend__bnr__row li a {
    margin: auto;
    text-align: center;
    display: block;
  }
}

.natsub .recommend__bnr + .recommend__bnr {
  margin-top: 100px;
}

@media only screen and (max-width: 768px) {
  .natsub .recommend__bnr + .recommend__bnr {
    margin-top: 50px;
  }
}

.natsub .aligncenter {
  text-align: center;
}

.natsub .alignleft {
  text-align: left;
}

.natsub .anootation {
  margin-top: 20px;
}

.natsub .btn-outer {
  display: block;
  text-align: center;
  margin-top: 10px;
}

@media only screen and (max-width: 768px) {
  .natsub .btn-outer {
    margin-top: 10px;
  }
}

.natsub .btn-outer.btns {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 90%;
  margin: auto;
  margin-top: 40px;
}

@media only screen and (max-width: 1280px) {
  .natsub .btn-outer.btns {
    width: 100%;
    max-width: 500px;
  }
}

@media only screen and (max-width: 600px) {
  .natsub .btn-outer.btns {
    margin-top: 20px;
  }
}

.natsub .btn-outer.btns .btn {
  width: calc(100% / 2 - 10px) !important;
  max-width: 100% !important;
}

@media only screen and (max-width: 1280px) {
  .natsub .btn-outer.btns .btn {
    width: 100% !important;
  }
}

.natsub .btn-outer .btn {
  display: block;
  background: #ff4546;
  margin: auto;
  color: #fff;
  font-weight: 600;
  max-width: 300px;
  width: 100%;
  font-size: 18px;
  letter-spacing: 2px;
  padding: 15px 43px 15px 10px;
  border-radius: 50vh;
  line-height: 1;
  transition: 0.3s;
}

@media only screen and (max-width: 768px) {
  .natsub .btn-outer .btn {
    font-size: 14px;
    padding: 10px 40px 10px 20px;
    max-width: 240px;
    letter-spacing: inherit;
  }
}

.natsub .btn-outer .btn.blue {
  background: #0025b0;
  color: #FFF;
}

.natsub .btn-outer .btn.blue.arrow-right:before {
  color: #FFF;
}

.natsub .btn-outer .btn:hover {
  transform: scale(0.985);
}

.natsub .btn-outer .btn.arrow-down {
  position: relative;
}

.natsub .btn-outer .btn.arrow-down:before {
  position: absolute;
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: #fff;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 6px 6px;
  border-top-color: currentColor;
  border-bottom: 0;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
}

@media only screen and (max-width: 768px) {
  .natsub .btn-outer .btn.arrow-down:before {
    right: 15px;
  }
}

.natsub .btn-outer .btn.arrow-right {
  position: relative;
}

.natsub .btn-outer .btn.arrow-right:before {
  position: absolute;
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: #fff;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 6px 6px;
  border-left-color: currentColor;
  border-right: 0;
  top: 50%;
  right: 25px;
  transform: translateY(-50%);
}

@media only screen and (max-width: 768px) {
  .natsub .btn-outer .btn.arrow-right:before {
    right: 15px;
  }
}

.natsub .railway-border {
  box-sizing: border-box;
  width: 100%;
  padding: 8px;
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='60' ry='60' stroke='%23000000FF' stroke-width='18' stroke-dasharray='20%2c 50' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e");
  border-radius: 60px;
  border: 2px solid #000;
}

@media only screen and (max-width: 768px) {
  .natsub .railway-border {
    padding: 4px;
    background-image: url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' rx='60' ry='60' stroke='%23000000FF' stroke-width='10' stroke-dasharray='20%2c 25' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e");
    border-radius: 60px;
    border: 1px solid #000;
  }
}

.natsub .railway-border__inner {
  position: relative;
  padding: 90px 150px;
  border-radius: 50px;
  border: 2px solid #000;
  background-color: #fff;
}

@media only screen and (max-width: 1280px) {
  .natsub .railway-border__inner {
    padding: 90px 60px;
  }
}

@media only screen and (max-width: 768px) {
  .natsub .railway-border__inner {
    border-radius: 55px;
    border: 1px solid #000;
  }
}

@media only screen and (max-width: 600px) {
  .natsub .railway-border__inner {
    padding: 50px 20px 20px;
  }
}

.natsub .railway-border__title {
  display: flex;
  gap: 20px;
  align-items: center;
  margin-bottom: 50px;
}

@media only screen and (max-width: 600px) {
  .natsub .railway-border__title {
    flex-direction: column;
    gap: 10px;
    margin-bottom: 30px;
    text-align: center;
  }
}

.natsub #detail-quiz .railway-border__inner {
  background-color: #fffff9;
}

.textlink {
  color: #000;
  text-decoration: underline !important;
  padding-right: 10px;
  position: relative;
}

.textlink:before {
  position: absolute;
  content: "";
  display: inline-block;
  vertical-align: middle;
  color: #000;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 4px 4px;
  border-left-color: currentColor;
  border-right: 0;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}

.notes {
  margin-top: 50px;
  text-align: center;
  background: #f2f2f2;
  border-radius: 20px;
  padding: 20px 40px;
}

@media only screen and (max-width: 600px) {
  .notes {
    padding: 20px 15px;
    border-radius: 25px;
    margin-top: 20px;
  }
}

.notes__title {
  margin-bottom: 10px;
  margin-top: 0;
}

.notes__list {
  text-align: left;
  margin-top: 20px !important;
}

@media only screen and (max-width: 600px) {
  .notes__list {
    font-size: 12px;
    text-align: justify;
  }
}

.notes__list li {
  margin-bottom: 0.6em;
  padding-left: 1em;
  text-indent: -1em;
}

.notes__list li:last-child {
  margin-bottom: 0;
}

/*-------------------------------
共通
-------------------------------*/
/* 背景色オーバーライド */
/* 読み上げ対策 */
.ec-layoutRole .ec-featureRole__head {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  -webkit-clip-path: inset(50%);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

@media only screen and (max-width: 767px) {
  .ec-layoutRole .ec-featureRole__headdescription .event_name_img_ img {
    width: 100% !important;
  }
}

/* フリースペースMV画像オーバーライド */
.event_name_img_ {
  margin-top: 0;
  margin-bottom: 20px !important;
}

/* event_goods_listオーバーライド */
#event_goods_list {
  margin: 0 auto;
}

@media only screen and (min-width: 768px) {
  #event_goods_list {
    width: 782px;
  }
}

/* event_titleオーバーライド */
.event_title_ {
  margin-top: 40px !important;
  padding-top: 0;
  margin: 0 auto;
  margin-bottom: 30px;
  padding: 15px 0 15px 0;
  font-size: 24px;
  font-weight: bold;
  line-height: 1.2;
  border-bottom: #dadada 2px solid;
  clear: both !important;
  position: relative;
}

.event_title_:after {
  width: 80px;
  height: 2px;
  content: '';
  display: block;
  position: absolute;
  bottom: -2px;
  left: 0;
  background: #0da4b2;
}

@media only screen and (min-width: 768px) {
  .event_title_ {
    width: 782px;
  }
}

/* event_design_bottom_オーバーライド */
.event_design_bottom_.more_ {
  margin-top: 4px !important;
  margin-bottom: 40px !important;
  margin: 0 auto;
}

.event_design_bottom_.more_ p.more_btn_ {
  text-align: center;
}

.event_design_bottom_.more_ p.more_btn_ a {
  height: 50px;
  width: 240px;
  border: #0da4b2 2px solid;
  border-radius: 25px;
  background: #ffffff url("../../../../../../img/usr/common/arrow_blue_2.png") right 16px center no-repeat;
  padding: 0;
  line-height: 50px;
  font-weight: bold;
  color: #0da4b2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.event_design_bottom_.more_ p.more_btn_ a:hover {
  text-decoration: underline !important;
}

@media only screen and (min-width: 768px) {
  .event_design_bottom_.more_ {
    width: 782px;
  }
}

/* 商品紐付けで自動表示されるアンカーリンクを非表示*/
.ec-featureItems.buttons {
  display: none;
}

.ec-footerRole {
  margin-top: 0 !important;
}

.ec-featureRole__headdescription {
  padding-bottom: 0 !important;
  margin-bottom: 0 !important;
}

.ec-layoutRole {
  overflow: hidden;
}



   .recommendEvent {
        margin-top: 80px;
        margin-bottom: 100px;
    }
    .recommendEvent__inner a {
              width: 70%;
        margin: auto;
        text-align: center;
        display: block;
        transition: 0.3s;
    }
    .recommendEvent__inner a:hover {
      opacity: 0.7;
    }
    .recommendEvent__inner .readtext {
      text-align: center;
             margin-top: 20px;
        font-size: 18px;
        font-weight: 600;
    }


@media only screen and (max-width: 767px) {
  .recommendEvent {
    margin-top: 60px;
        margin-bottom: 50px;
  }
  .recommendEvent__inner a {
      width: 100%;
    }
    .recommendEvent__inner .readtext {
      text-align: center;
             margin-top: 20px;
        font-size: 14px;
        font-weight: 600;
    }
}

.cptxt{
  background: #ff4546;
  color: #FFFFFF;
  text-align: center;
  margin: 3% 0;
  padding: 1%;
  border-radius: 10px;
}

.cptxt p{
  font-size: 2.5rem;
}

.cptxt p span{
  font-size: 3rem;
  font-weight: bold;
  color: #ffef00;
}

@media only screen and (max-width: 767px) {
.cptxt p{
  font-size: 1.8rem;
}

.cptxt p span{
  font-size: 2rem;
  font-weight: bold;
  color: #ffef00;
}
}

/* *************************************************************************

	05. リニューアル記念クーポン配布中！

************************************************************************* */
.coupon-box {
  padding-top: min(4.6875vw, 60px);
  overflow: hidden;
}

.coupon-box .main-txt {
  margin-top: 0 !important;
  line-height: 1.7;
  text-align: center;
  font-weight: bold;
  font-size: min(2.03125vw, 2.6rem);
}

@media only screen and (max-width: 767px) {
  .coupon-box .main-txt {
    line-height: 1.5;
    font-size: 4.2666666667vw;
  }
}

.coupon-box .main-txt * {
  font-size: inherit;
}

.coupon-box .btn-layout {
  margin: min(4.6875vw, 60px) auto 0;
  width: min(25vw, 320px);
}

@media only screen and (max-width: 767px) {
  .coupon-box .btn-layout {
    margin: 6.6666666667vw auto 2.6666666667vw;
    max-width: auto;
    width: 90%;
  }
}

.coupon-box .end-coupon-lead {
  margin: min(3.125vw, 40px) auto 0;
  text-align: center;
  font-size: min(1.25vw, 1.6rem);
}

@media only screen and (max-width: 767px) {
  .coupon-box .end-coupon-lead {
    margin: 8vw auto 0;
    text-align: left;
    font-size: 4vw;
  }
}

.coupon-box .end-coupon-lead span {
  font-size: inherit;
}

.coupon-box .new-coupon-box {
  margin-top: 0 !important;
  padding-top: min(4.6875vw, 60px);
  line-height: 1.7;
  text-align: center;
  font-weight: bold;
  font-size: min(2.03125vw, 2.6rem);
}

@media only screen and (max-width: 767px) {
  .coupon-box .new-coupon-box {
    /*padding-top: 6.6666666667vw;*/
    padding-top: 10.6666666667vw;
    line-height: 1.5;
    font-size: 4.2666666667vw;
  }
}

.coupon-box .new-coupon-box>p,
.coupon-box .new-coupon-box span {
  font-size: inherit;
}

.coupon-box .new-coupon-box .img-button-box {
  margin: 0 auto;
  max-width: 480px;
  width: min(37.5vw, 480px);
  transition: 0.3s;
}

@media only screen and (max-width: 767px) {
  .coupon-box .new-coupon-box .img-button-box {
    width: 100%;
  }
}

@media (min-width: 768px) {
  .coupon-box .new-coupon-box .img-button-box a:hover {
    opacity: 0.8;
  }
}

.coupon-box .new-coupon-box .img-button-box .btn-txt {
  display: block;
  margin: 0;
  padding: 0.7em;
  background-color: #008000;
  text-align: center;
  font-size: min(1.25vw, 1.6rem);
  font-weight: bold;
  color: #fff;
}

@media only screen and (max-width: 767px) and (max-width: 767px) {
  .coupon-box .new-coupon-box .img-button-box .btn-txt {
    font-size: 3.7333333333vw;
  }
}

.accordion0 .bg-maru::after,
.accordion1 .bg-maru::after{
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: min(0.9375vw, 12px);
  margin: auto 0;
  border-radius: 50%;
  width: min(2.8125vw, 36px);
  height: min(2.8125vw, 36px);
  background-color: #fff;
}

@media only screen and (max-width: 767px) {
  .accordion0 .bg-maru::after,
    .accordion1 .bg-maru::after{
    right: 2.9333333333vw;
    width: 6.9333333333vw;
    height: 6.9333333333vw;
  }
}

.accordion0 .acc-toggle:checked+.acc-title .ttl03,
.accordion1 .acc-toggle:checked+.acc-title .ttl03{
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.coupon-list-box {
  display: grid;
  grid-template-columns: 48% 1fr;
  gap: min(1.5625vw, 20px) 4%;
  margin-top: min(2.34375vw, 30px) !important;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box {
    display: block;
    margin-top: 5.3333333333vw !important;
  }
}

.coupon-list-box .coupon-list-box-item {
  overflow: hidden;
  width: min(37.5vw, 480px);
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item {
    margin-top: 4vw;
    width: 100%;
  }
}

.coupon-list-box .coupon-list-box-item-inner {
  position: relative;
  display: block;
  border: solid 2px #ddd;
  border-radius: min(1.171875vw, 15px);
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item-inner {
    border-radius: 2.6666666667vw;
  }
}

.coupon-list-box .coupon-list-box-item-inner[tabindex="-1"] {
  position: relative;
  pointer-events: none;
}

.coupon-list-box .coupon-list-box-item-inner[tabindex="-1"] .end-coupon {
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  outline: solid 1px rgba(0, 0, 0, 0.7);
  border-radius: min(1.09375vw, 14px);
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  font-size: min(1.40625vw, 1.8rem);
  color: #fff;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item-inner[tabindex="-1"] .end-coupon {
    font-size: 3.4666666667vw;
  }
}

@media (min-width: 768px) {
  .coupon-list-box .coupon-list-box-item-inner:hover {
    opacity: 0.8;
  }
}

.coupon-list-box .coupon-list-box-item-inner::before,
.coupon-list-box .coupon-list-box-item-inner::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  border: solid 2px #ddd;
  border-radius: 50%;
  width: clamp(20px, 2.34375vw, 30px);
  height: clamp(20px, 2.34375vw, 30px);
  background-color: #fff;
}

@media only screen and (max-width: 767px) {

  .coupon-list-box .coupon-list-box-item-inner::before,
  .coupon-list-box .coupon-list-box-item-inner::after {
    width: 6.6666666667vw;
    height: 6.6666666667vw;
  }
}

.coupon-list-box .coupon-list-box-item-inner::before {
  left: clamp(-12px, -1.25vw, -16px);
  z-index: 1;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item-inner::before {
    left: -3.2vw;
  }
}

.coupon-list-box .coupon-list-box-item-inner::after {
  right: clamp(-12px, -1.25vw, -16px);
  z-index: 2;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item-inner::after {
    right: -3.2vw;
  }
}

.coupon-list-box .coupon-list-box-item-inner .layout {
  display: flex;
  padding: min(1.953125vw, 25px) min(2.34375vw, 30px) min(1.5625vw, 20px);
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .coupon-list-box-item-inner .layout {
    padding: 4vw 2.6666666667vw 5.3333333333vw;
  }
}

.coupon-list-box .tokuten {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
  border-radius: 50%;
  width: min(11.71875vw, 150px);
  height: min(11.71875vw, 150px);
  background-color: #f5a532;
  font-size: min(1.40625vw, 1.8rem);
  font-weight: bold;
  color: #fff;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .tokuten {
    width: 24vw;
    height: 24vw;
    font-size: 3.4666666667vw;
  }
}

.coupon-list-box .tokuten .keta3,
.coupon-list-box .tokuten .keta4 {
  font-size: min(3.59375vw, 4.6rem);
  font-family: "Roboto", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
}

@media only screen and (max-width: 767px) {

  .coupon-list-box .tokuten .keta3,
  .coupon-list-box .tokuten .keta4 {
    font-size: 6.9333333333vw;
  }
}

.coupon-list-box .tokuten .keta3 {
  line-height: 1.2 !important;
}

.coupon-list-box .tokuten .keta4 {
  line-height: 1.4 !important;
}

.coupon-list-box .details-box {
  padding: min(0.390625vw, 5px) 0 0 min(1.953125vw, 25px);
  font-size: min(1.25vw, 1.6rem);
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .details-box {
    padding: 1.3333333333vw 0 0 2.6666666667vw;
    font-size: 3.7333333333vw;
  }
}

.coupon-list-box .details-box * {
  font-size: inherit;
}

.coupon-list-box .details-box>dl {
  margin-top: 1em;
  margin-bottom: 0;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .details-box>dl {
    margin-top: 0.6em;
  }
}

.coupon-list-box .details-box>dl:first-child {
  margin-top: 0;
}

.coupon-list-box .details-box>dl>dt {
  color: #e58600;
}

.coupon-list-box .details-box>dl>dd {
  padding-left: 1em;
  color: #333;
}

.coupon-list-box .details-box>dl .kome {
  font-size: min(0.9375vw, 1.2rem);
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .details-box>dl .kome {
    font-size: 2.6666666667vw;
  }
}

.coupon-list-box .btn-txt {
  display: block;
  margin: 0 -2px -2px;
  border-radius: 0 0 min(1.171875vw, 15px) min(1.171875vw, 15px);
  padding: 0.7em;
  background-color: #008000;
  text-align: center;
  font-size: min(1.25vw, 1.6rem);
  font-weight: bold;
  color: #fff;
}

@media only screen and (max-width: 767px) {
  .coupon-list-box .btn-txt {
    border-radius: 0 0 2.6666666667vw 2.6666666667vw;
  }
}

@media only screen and (max-width: 767px) and (max-width: 767px) {
  .coupon-list-box .btn-txt {
    font-size: 3.7333333333vw;
  }
}

.cont-box {
  border-radius: min(2.34375vw, 30px);
  padding: min(5.46875vw, 70px) min(6.25vw, 80px);
  background-color: #fff;
  border: 6px solid #0025b0;
}

@media only screen and (max-width: 767px) {
    .cont-box {
      border-radius: 4vw;
      padding: 6.6666666667vw 5.0666666667vw;
      border: 5px solid #0025b0;
    }
}

/* *************************************************************************

	09. キャンペーン詳細

************************************************************************* */
#detail {
  position: relative;
}

.detail-box {
  text-align: center;
}

.detail-box .detail-item {
  display: flex;
  margin: 0;
  border-top: solid 1px #ddd;
  padding: min(2.96875vw, 38px) min(2.34375vw, 30px) min(2.8125vw, 36px);
  line-height: 1.6;
  text-align: left;
}

@media only screen and (max-width: 767px) {
  .detail-box .detail-item {
    display: block;
    padding: 6.9333333333vw 0;
  }
}

.detail-box .detail-item>dt {
  flex-shrink: 0;
  width: min(18.28125vw, 234px);
  line-height: inherit;
  font-size: min(1.25vw, 16px);
  font-weight: bold;
  color: #0025b0;
}

@media only screen and (max-width: 767px) {
  .detail-box .detail-item>dt {
    width: 100%;
    font-size: 4vw;
  }
}

.detail-box .detail-item>dd {
  line-height: inherit;
  font-size: min(1.25vw, 16px);
}

.detail-box .detail-item>dd * {
  font-size: inherit;
}

@media only screen and (max-width: 767px) {
  .detail-box .detail-item>dd {
    margin-top: 0.5em;
    font-size: 3.7333333333vw;
  }
}

.detail-box .detail-item>dd .kome {
  font-size: inherit;
}

.detail-box .detail-item>dd .kome>li {
  margin-top: 0.5em;
  font-size: inherit;
}

.detail-box .detail-item>dd .kome>li:first-of-type {
  margin-top: 0;
}

.detail-box .detail-item>dd ol {
  margin-top: 1em;
  padding-left: 1em;
  list-style: none;
}

.detail-box .detail-item>dd ol>li {
  margin-top: 0.5em;
  text-indent: -1em;
  font-size: inherit;
}

.detail-box .detail-item:last-of-type {
  border-bottom: solid 1px #ddd;
}

.detail-box .entry-box {
  margin: min(-1.171875vw, -15px) auto min(3.125vw, 40px);
  width: min(29.6875vw, 380px);
}

@media only screen and (max-width: 767px) {
  .detail-box .entry-box {
    margin: -4vw auto 6.9333333333vw;
    width: 100%;
  }
}

.detail-box .entry-box .kome {
  margin-top: min(1.171875vw, 15px) !important;
  font-size: min(0.9375vw, 12px) !important;
}

@media only screen and (max-width: 767px) {
  .detail-box .entry-box .kome {
    margin-top: 3.4666666667vw !important;
    font-size: 2.9333333333vw !important;
  }
}

/* �A�R�[�f�B�I�� */
.accordion0,
.accordion1{
  position: relative;
  transform: translateZ(0);
}

.accordion0 .acc-toggle,
.accordion1 .acc-toggle {
  display: none;
}

.accordion0 .acc-title,
.accordion0 .acc-content,
.accordion1 .acc-title,
.accordion1 .acc-content {
  backface-visibility: hidden;
  transform: translateZ(0);
  transition: all 0.2s;
}

.accordion0 .acc-title,
.accordion1 .acc-title {
  display: block;
  margin-bottom: 0;
  cursor: pointer;
}

.accordion0 .acc-title::after,
.accordion0 .acc-title::before,
.accordion1 .acc-title::after,
.accordion1 .acc-title::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto 0;
  background-color: #0025b0;
  transition: all 0.3s;
  z-index: 1;
}

.accordion0 .acc-title::after,
.accordion1 .acc-title::after {
  transform: rotate(90deg);
}

.accordion0 .acc-content,
.accordion1 .acc-content {
  overflow: hidden;
  max-height: 0;
}

.accordion0 .acc-toggle:checked+.acc-title::before,
.accordion1 .acc-toggle:checked+.acc-title::before {
  transform: rotate(90deg) !important;
}

.accordion0 .acc-title,
.accordion1 .acc-title {
  margin-bottom: min(1.5625vw, 20px);
}

.accordion0 .acc-title::after,
.accordion0 .acc-title::before,
.accordion1 .acc-title::after,
.accordion1 .acc-title::before {
  right: min(2.1875vw, 28px);
  width: min(0.3125vw, 2px);
  height: min(1.5625vw, 20px);
}

@media only screen and (max-width: 767px) {

  .accordion0 .acc-title::after,
  .accordion0 .acc-title::before,
  .accordion1 .acc-title::after,
  .accordion1 .acc-title::before {
    right: 5.8666666667vw;
    width: 0.8vw;
    height: 3.7333333333vw;
  }
}

@media (min-width: 768px) {
  .accordion0 .acc-title:hover .ttl03,
    .accordion1 .acc-title:hover .ttl03
    {
    background-color: #0025b0;
    color: #fff;
  }
}

.accordion0 .acc-toggle:checked+.acc-title+.acc-content,
.accordion1 .acc-toggle:checked+.acc-title+.acc-content {
  max-height: 1000px;
  transition: all 1.5s;
}
/*
.accordion1 .acc-title::after,
.accordion1 .acc-title::before {
  right: min(4.0625vw, 52px);
  width: min(0.46875vw, 6px);
  height: min(2.65625vw, 34px);
}

@media only screen and (max-width: 767px) {

  .accordion1 .acc-title::after,
  .accordion1 .acc-title::before {
    right: 5.8666666667vw;
    width: 1.0666666667vw;
    height: 4.5333333333vw;
  }
}

.accordion1 .acc-title:hover {
  opacity: 0.8;
}

@media only screen and (max-width: 767px) {
  .accordion1 .acc-title:hover {
    opacity: 1;
  }
}

.accordion1 .acc-toggle:checked+.acc-title+.acc-content {
  max-height: 6000px;
  transition: all 1.5s;
}
*/
.ttl03 {
  border-radius: min(0.78125vw, 10px);
  padding: min(1.71875vw, 22px) min(4.6875vw, 60px);
  background-color: #f4f4f4;
  text-align: center;
  font-size: min(1.25vw, 1.6rem);
  font-weight: bold;
  transition: 0.3s;
}

@media only screen and (max-width: 767px) {
  .ttl03 {
    border-radius: min(0.78125vw, 10px);
    padding: min(4.2666666667vw, 16px) min(10.6666666667vw, 40px);
    font-size: 3.4666666667vw;
  }
}

.cptitleImg {
  margin-bottom: 4%;
}

.giftItemsHeadImg h3{
  color: #0025b0 !important;
  border-bottom: #0025b0 2px solid!important;
}

.more-link a{
  color: #0025b0 !important;
  border: solid 1px #0025b0 !important;
}

.more-link a:hover{
  color: #FFF !important;
  background-color: #0025b0 !important;
}

.aligncenter {
  text-align: center;
}

.imgmb {
  margin-bottom: 20px;
}

.mb30{
    margin-bottom: 30px;
}

.mb80{
    margin-bottom: 80px;
}