@charset "utf-8";
/* 「学生特集」 TOP専用CSS【PC/SP】 */
.text_link--text {
  display: flex;
  font-weight: bold;
  margin-top: min((10vw / 7.5), 10px);
  align-items: center;
  gap: 0.15em;
}
.text_link--text2 {
  font-weight: bold;
}
.text_link:link, .text_link:visited {
  color: #000;
}
.text_link[target="_blank"] .text_link--text::after, .text_link:not([target="_blank"]) .text_link--text::before {
  content: '';
  aspect-ratio: 1;
}
.text_link--text::before {
  height: 1.5em;
  background: url(../../../common/images/icon_arrow_right_blue.svg) no-repeat 0 0 / cover;
}
.text_link[target="_blank"]:not([href^="#"]) .text_link--text::after {
  height: 1em;
  background: url(../../../common/images/icon_launch_right_blue.svg) no-repeat 0 0 / cover;
}
/*mainWrap*/
/*ssiWrap*/
.areabox {
  display: none;
}
.is-kanto-secret .areabox {
  display: block;
}
/*tabigiftWrap*/
#tabi-gift {
  background: url(../images/tabigift_bg.jpg) repeat 0 0;
  padding: min((50vw / 7.5), 70px) 0;
  &.tabigiftWrap {
    .tabigif__inner {
      width: min((700vw / 7.5), 1270px);
      position: relative;
      margin: 0 auto;
    }
    .tabigif__bg {
      box-shadow: 0 -35px 35px -35px rgba(0, 0, 0, 0.05), 0 35px 35px -35px rgba(0, 0, 0, 0.05);
      background: linear-gradient(90deg,rgba(217, 217, 217, 0) 0%, rgba(255, 255, 255, .8) 20%, rgba(255, 255, 255, .8) 80%, rgba(217, 217, 217, 0) 100%);
      @media(width <=740px) {
        background: linear-gradient(90deg,rgba(217, 217, 217, 0) 0%, rgba(255, 255, 255, .7) 12%, rgba(255, 255, 255, .7) 88%, rgba(217, 217, 217, 0) 100%);
      }
    }
    .inner-box {
      padding: min((70vw / 7.5), 70px) 0 min((65vw / 7.5), 50px);
    }
    .title-section-category {
      background: none;
      padding-bottom: min((5vw / 7.5), 5px);
      @media(width <=740px) {
        width: min((522vw / 7.5), 522px);
        height: min((178vw / 7.5), 178px);
        margin-bottom: min((20vw / 7.5), 20px);
      }
      img {
        width: 100%;
      }
    }
    .tabigift__lead {
      font-size: min((22vw / 7.5), 22px);
      text-align: center;
    }
    .tabigift__notes {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: min((10vw / 7.5), 10px);
      font-size: min((16vw / 7.5), 16px);
      margin-top: min((15vw / 7.5), 20px);
    }
    .button-base {
      width: min((500vw / 7.5), 370px);
      margin: auto;
      padding-top: min((40vw / 7.5), 25px);
    }
    .button-base-link {
      background: #fff;
      border:1px solid #000;
      color: #000;
      font-size: min((24vw / 7.5), 18px);
      padding: min((6vw / 7.5), 5px) min((40vw / 7.5), 40px);
      &::after {
        height: 1.8em;
        background-image: url(/cmn/icon/icon_arrow_right_black.svg);
      }
      &[target="_blank"]::after {
        background-image: url(/cmn/icon/icon_blank_black.svg);
      }
    }
  }
}
/*ttnWrap*/
.ttnWrap {
  background: #e5f3fd;
}
.ttnWrap .inner-box{
  display: flex;
  flex-direction: column;
}
.ttn {
  display: flex;
  flex-wrap: wrap;
}
.ttn__list {
  background: #fff;
  border: 1px solid #000;
}
.ttn__item {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
}
.ttn__link {
  position: relative;
}
.ttn__link::after {
  content: "";
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 0 min((20vw / 7.5), 20px) min((20vw / 7.5), 20px);
  border-color: transparent transparent #001f57 transparent;
  position: absolute;
  bottom: 0;
  right: 0;
}
.ttnWrap .atn-txt {
  color: #001f57;
  font-weight: bold;
  text-align: right;
  order: 3;
}
.ttn-banner__list {
  display: flex;
  justify-content: center;
  gap: min((22vw / 7.5), 22px) min((20vw / 7.5), 20px);
  order: 4;
  margin-top: min((20vw / 7.5), 20px);
}
.campaign__banner {
  display: flex;
  justify-content: center;
  margin-top: min((75vw / 7.5), 30px);
  order: 5;
}
.campaign__banner--image {
  width: fit-content;
  background: #fff;
}
/*recommeWrap*/
/*↓新旧上下限js混在応急処置↓*/
.item-box-price .minmax-old:not(:empty) + .minmax-new {
  display: none;
}
/*↑新旧上下限js混在応急処置↑*/
/*動画*/
.movieWrap .inner-box {
  padding-top: min((60vw / 7.5), 45px);
  padding-bottom: 0;
}
.movie_aori {
  font-size: min((30vw / 7.5), 20px);
  font-weight: bold;
  text-align: center;
  margin-top: min((100vw / 7.5), 70px);
}
.inner-box > .youtube__wrapper:not(:first-child) {
  margin-top: min((60vw / 7.5), 45px);
}
.movie__youtube {
  width: 100%;
  .youtube__wrapper:not(.is-type-tiktok) & {
    margin: auto;
    width: min((620vw / 7.5), 620px);
    padding: min((10vw / 7.5), 10px);
    background: var(--main-color);
  }
}
.movie_aori + .movie__youtube {
  margin-top: min((30vw / 7.5), 20px);
}
.movie__caption {
  font-size: min((20vw / 7.5), 16px);
  text-align: center;
  font-weight: 500;
  margin-top: .5em;
  .youtube__wrapper.is-type-tiktok & {
    font-size: min((22vw / 7.5), 18px);
  }
}
.youtube__block {
  padding-top: calc((9 / 16) * 100%); /*YouTubeアスペクト比*/
  background: no-repeat center center / 100%;
  position: relative;
  .youtube__wrapper.is-type-tiktok & {
    padding-top: calc((410 / 230) * 100%); /*tiktokは縦長*/
  }
}
.youtube__block:not(.is-comson) {
  cursor: pointer;
  transition: opacity .3s;
  &::before, &::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    left: 0;
    margin: auto;
  }
  &::before {
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, .38);
    transition: background .3s;
  }
  &::after {
    width: min(((85 / 640) * 100%), 85px);
    padding-top: min(((85 / 640) * 100%), 85px);
    height: 0;
    background: url("../images/movie_icon.png") no-repeat center center / contain;
  }
  .campaignWrap & {
    &::before {
      background: rgba(0, 0, 0, 0);
    }
    &::after {
      content: none;
    }
  }
}
.youtube__iframe {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}
/*campaignWrap*/
.campaignWrap {
  #campaign-special-movie ~ [id^="campaign-"] {
    margin-top: min((150vw / 7.5), 130px);
  }
  .title-section-category {
    :is(#campaign-special-movie, #campaign-digest-movie, #campaign-making-movie, #campaign-story) & {
      --secttl-mb: min((45vw / 7.5), 30px);
    }
    :is(#campaign-special-movie, #campaign-digest-movie, #campaign-making-movie):has(.lead-section) & {
      --secttl-mb: min((30vw / 7.5), 15px);
    }
    #campaign-sns & {
      --secttl-mb: min((60vw / 7.5), 40px);
    }
    margin-bottom: var(--secttl-mb) !important;
  }
  .lead-section {
    text-align: center;
    font-size: var(--seclead-fs, calc(24vw / 7.5));
    font-weight: var(--seclead-fw, bold);
    margin-bottom: .75em;
  }
  @media (width > 860px) {
    --seclead-fs: 24px;
    --seclead-fw: 500;
  }
}
@media (width < 861px) {
  .tiktok-movie__lineup, .story__lineup {
    width: min((620vw / 7.5), 620px);
    margin: auto;
  }
  .sns-campaign__contents {
    width: calc(710vw / 7.5);
    margin: 0 auto;
  }
}
.tiktok-movie__content {
  margin-top: min((110vw / 7.5), 90px);
  .title-section-category-sub {
    margin-bottom: .75em;
  }
}
.tiktok-movie:first-child .tiktok-movie__content:first-child {
  margin-top: 0;
}
.tiktok-movie__lineup {
  display: grid;
  --gap-yoko: min((42vw / 7.5), 24px);
  gap: min((56vw / 7.5), 30px) var(--gap-yoko);
  grid-template-columns: repeat(auto-fit, calc((100% - var(--gap-yoko)) / 2));
  justify-content: center;
  @media (width > 860px) {
    grid-template-columns: repeat(auto-fit, calc((100% - var(--gap-yoko) * 3) / 4));
  }
}
.story__lineup {
  display: grid;
  --gap: min((40vw / 7.5), 32px);
  gap: var(--gap);
  @media (width > 860px) {
    grid-template-columns: repeat(auto-fit, calc((100% - var(--gap)) / 2));
    justify-content: center;
  }
  .story__lineup--item--link {
    display: block;
  }
}
.sns-campaign__contents + .sns-campaign__contents {
  margin-top: min((110vw / 7.5), 100px);
}
.sns-campaign__title {
  color: var(--main-color);
  font-weight: bold;
  font-size: min((30vw / 7.5), 26px);
  line-height: calc(36 / 30);
  border-left: min((6vw / 7.5), 6px) solid;
  padding-left: 1em;
  padding-bottom: .2em;
  margin-bottom: min((40vw / 7.5), 20px);
  @media (width < 861px) {
    br {
      display: none;
    }
  }
}
.sns-campaign__detail--wrapper {
  @media (width > 860px) {
    display: grid;
    grid-template-columns: max-content 1fr;
    .sns-campaign__detail {
      grid-template-columns: subgrid;
      grid-column: span 2;
      align-items: baseline;
    }
  }
}
.sns-campaign__detail {
  display: grid;
  gap: .25em 2.5em;
  border-top: 1px solid #cfcfcf;
  padding: .75em;
  justify-items: start;
  &:last-child {
    border-bottom: 1px solid #cfcfcf;
  }
  @media (width < 861px) {
    padding: .5em 0;
    .sns-campaign__detail--title {
      font-weight: bold;
    }
  }
  .sns-campaign__detail--button {
    padding-top: 0;
    .button-base-link {
      min-height: auto;
      font-size: 1em;
      padding: .3em 1em .4em 1.5em;
      gap: .5em;
      font-weight: normal;
      &::after {
        height: 1.5em;
        margin: 0;
      }
    }
  }
}
/*articleWrap*/
.article__list {
  margin-top: min((65vw / 7.5), 65px);
}
.article__item {
  background: #fff;
}
.article__link {
  padding: min((35vw / 7.5), 15px);
  position: relative;
}
.article__link::after {
  display: block;
  content: '';
  background: url(../images/for_student_travel_ico_bottom.png) no-repeat 0 0 / contain;
  width: min((60vw / 7.5), 30px);
  height: min((60vw / 7.5), 30px);
  position: absolute;
  bottom: 0;
  right: 0;
}
.is-hash {
  color: #036eb8;
}
/*faqWrap*/
.faq__list--item {
  border: solid min((2vw / 7.5), 1px) #000;
  border-radius: min((20vw / 7.5), 20px);
  overflow: hidden;
  margin-top: min((35vw / 7.5), 20px);
}
.faq__list--item:first-of-type {
  margin-top: min((60vw / 7.5), 65px);
}
.faq__list--item:nth-child(n+2) {}
.faq__list--question {
  display: flex;
  background: #bee6f9;
  font-weight: bold;
  padding: min((25vw / 7.5), 15px) min((20vw / 7.5), 15px);
}
.faq__list--answer {
  display: flex;
  background: #fff;
  padding: min((25vw / 7.5), 15px) min((20vw / 7.5), 15px);
}
.faq__list--question::before, .faq__list--answer::before {
  color: var(--main-color);
  font-weight: bold;
  padding-right: min((10vw / 7.5), 10px);
}
.faq__list--question::before {
  content: 'Q.';
}
.faq__list--answer::before {
  content: 'A.';
}
.faq__list--answer--category {
  color: var(--main-color);
  font-weight: bold;
}
.faq__list--answer--category:nth-child(n+2) {
  padding-top: min((25vw / 7.5), 15px);
}
.faq__list--answer--notes {
  display: block;
  font-size: min((20vw / 7.5), 12px);
  text-indent: -1em;
  padding-left: 1em;
}
.faq__list--answer--notes:first-of-type {
  margin-top: 1em;
}
/*infoWrap*/
/* == ★ PC ★ ===============*/
@media (min-width:861px) {
  /*mainWrap*/
  /*ttnWrap*/
  .ttn {
    margin-top: 50px;
    margin-left: -22px;
  }
  .ttn__list {
    height: 202px;
    margin-left: 22px;
    margin-bottom: 20px;
  }
  .ttn__list.full {
    width: 992px;
  }
  .ttn__list.half {
    width: 485px;
  }
  .ttn__list.third {
    width: 316px;
  }
  .ttn__link::after {
    bottom: 3px;
    right: 4px;
  }
  .ttnWrap .atn-txt {
    font-size: 16px;
    margin-top: -16px;
  }
  /*recommeWrap*/
  /*campaignWrap*/
  /*articleWrap*/
  .articleWrap .article__list.is-block-grid {
    grid-template-columns: repeat(auto-fit, 236px);
    gap: 40px 15px;
  }
  .article__image {
    height: 120px;
  }
  .article__detail--label {
    font-size: 12px;
  }
  .article__detail--title {
    font-size: 16px;
  }
  .article__detail--text {
    font-size: 14px;
  }
  /*faqWrap*/
}
/* == ★ SP ★ ===============*/
@media (max-width:860px) {
  .breadcrumb {
    width: 100%;
  }
  /*mainWrap*/
  /*ttnWrap*/
  .ttn {
    margin-top: calc(50vw / 7.5);
    margin-left: calc(-22vw / 7.5);
  }
  .ttn__list {
    min-height: calc(202vw / 7.5);
    margin-left: calc(22vw / 7.5);
    margin-bottom: calc(20vw / 7.5);
  }
  .ttn__list.full {
    width: 100%;
  }
  .ttn__list:not(.full) {
    width: calc((100% - (22vw / 7.5) * 2) / 2);
  }
  .ttnWrap .atn-txt {
    font-size: calc(20vw / 7.5);
  }
  .ttn-banner__list {
    flex-direction: column;
  }
  /*recommeWrap*/
  .recommeWrap .inner-box {
    width: 100%;
  }
  .recommeWrap .title-item-category {
    width: calc(710vw / 7.5);
  }
  .recommeWrap .button-base {
    width: calc(700vw / 7.5);
    margin: 0 auto;
  }
  /*campaignWrap*/
  /*articleWrap*/
  .articleWrap {
    overflow: hidden;
  }
  .articleWrap .inner-box {
    width: 100%;
    padding-bottom: calc(90vw / 7.5);
  }
  .articleWrap .article__list {
    gap: calc(25vw / 7.5) calc(40vw / 7.5);
  }
  .is-sp .article__item {
    width: calc(600vw / 7.5);
    height: 100%;
    margin: 0 auto;
  }
  .is-sp .article__image {
    height: calc(305vw / 7.5);
  }
  /*slick*/
  .slick-list {
    /*width: calc(600vw / 7.5);
    margin: 0 auto;*/
    overflow: hidden;
  }
  .slick-slide {
    height: auto !important;
    width: calc(600vw / 7.5) !important;
    margin: 0 calc(18vw / 7.5);
    padding: 0 0 16px !important;
  }
  .slick-slide > div {
    height: 100%;
  }
  .slick-track {
    display: flex;
  }
  .article__nextprev.slick-arrow {
    width: calc(100vw / 7.5);
    height: calc(100vw / 7.5);
    background: url(../images/for_student_travel_ico_right.png) no-repeat center center / cover;
    position: absolute;
    top: 100%;
    bottom: -10%;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 5;
    cursor: pointer;
  }
  .article__nextprev.slick-arrow .arrow::before, .article__nextprev.slick-arrow .arrow::after {
    display: none;
  }
  .article__nextprev.is-prev {
    transform: rotate(180deg) translateX(calc(285vw / 7.5));
  }
  .article__nextprev.is-next {
    transform: translateX(calc(285vw / 7.5));
  }
  /*faqWrap*/
  .faq__list {
    width: calc(680vw / 7.5);
    margin: 0 auto;
  }
  .faq__list--question::before, .faq__list--answer::before {
    font-size: calc(28vw / 7.5);
  }
}
/* == ★ タブレット対応 ★ ===============*/
.is-tab .article__list.is-block-grid {
  display: grid;
}
/* == ★ ホバー設定 ★ ===============*/
@media (hover : hover) and (pointer : fine) {
  .text_link {
    transition: opacity .4s;
  }
  .text_link:hover {
    opacity: .6;
  }
  /*ttnWrap*/
  .ttn__link, .ttn-banner__list--item--link {
    transition: opacity .4s;
  }
  .ttn__link:hover, .ttn-banner__list--item--link:hover {
    opacity: .6;
  }
  .campaign__banner img {
    transition: opacity .4s;
  }
  .campaign__banner img:hover {
    opacity: .6;
  }
  .story__lineup--item--link {
    transition: transform .3s;
    &:hover {
      transform: translateY(max((-8vw / 7.5), -8px));
    }
  }
  /*動画*/
  .youtube__block:hover::before {
    background: rgba(0, 0, 0, .58);
  }
  .campaignWrap .youtube__block:hover::before {
    background: rgba(0, 0, 0, .28);
  }
  /*articleWrap*/
  .article__link {
    transition: opacity .4s;
  }
  .article__link:hover {
    opacity: .6;
  }
}