@charset "UTF-8";
@media screen and (min-width: 641px) {
  #main_nsd .pc_none {
    display: none;
  }
  #main_nsd {
    font-family: "M PLUS Rounded 1c", sans-serif;
    font-weight: 500;
    min-width: 1080px;
    position: relative;
    z-index: 0;
    overflow-x: hidden;
  }
  #main_nsd .auto {
    width: 1080px;
    margin: 0 auto;
    position: relative;
  }
  #main_nsd img {
    display: block;
    width: 100%;
    height: auto;
    box-sizing: border-box;
  }
  #main_nsd a {
    display: block;
    text-decoration: none;
    margin: 0 auto;
  }

  #main_nsd h2, h3, h4, p {
    margin: 0;
    padding: 0;
  }
  #main_nsd ul {
    list-style: none;
    margin: 0;
    padding: 0;
  }

  #main_nsd h3.title_big {
    width: 106%;
    margin: 0 0 56px -3%;
  }
  #main_nsd span.color_red {
    color: #e72963;
  }
  #main_nsd span.color_yellow {
    color: #f4e536;
  }
  section {
    position: relative;
    z-index: 1;
  }
  section:nth-of-type(n+1)::after {
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: 0;
    background-image: url(../img/snowflake.png);
    background-repeat: repeat-y;
    background-position: top 2vw center;
    background-size: 100%;
    z-index: -1;
  }
  #main_nsd .fix_button {
    position: fixed;
    top: max(50vh, 320px);
    right: -26px;
    z-index: 999999;
    width: 214px;
    background-color: #fff;
    border-radius: 15px;
    transform: translateY(-50%);
  }
  #main_nsd .fix_button a img {
    border: 4px solid #000;
    border-radius: 15px;
    transition-duration: .3s;
  }
  #main_nsd .fix_button a:hover img {
    transform: scale(1.06);
    opacity: 1;
  }
  /*▼▼ページネーション▼▼*/
  #main_nsd .swiper-pagination-bullet {
    width: 12px;
    height: 12px;
    margin: 0 7px;
  }
  #main_nsd .swiper-pagination-bullet-active {
    opacity: 1;
    background: #ffffff;
  }
  #main_nsd .swiper-container-horizontal>.swiper-pagination-bullets, .swiper-pagination-custom, .swiper-pagination-fraction {
    bottom: 0;
  }
  /*▲▲ページネーション▲▲*/
  /*=========================
▼▼conts_kv▼▼
===========================*/
  #main_nsd .conts_kv {
    margin-bottom: -40px;
    z-index: 2;
  }
  #main_nsd .conts_kv .swiper-wrapper {
    padding-bottom: 40px;
  }
  /*=========================
▲▲conts_kv▲▲
===========================*/
  /*=========================
▼▼conts_link▼▼
===========================*/
  #main_nsd .conts_link {
    background: linear-gradient(180deg, rgba(79, 221, 230, 1) 0%, rgba(72, 202, 230, 1) 100%);
    padding: 133px 0 117px;
  }
  #main_nsd .conts_link .auto {
    width: 1106px;
  }
  #main_nsd .conts_link .link_block_group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
  }
  #main_nsd .conts_link .link_block a {
    width: 525px;
    height: 165px;
    margin: 0 13px 20px;
    /*background-color: #f1f1f1;*/
    transition-duration: .3s;
  }
  #main_nsd .conts_link .link_block a:hover {
    transform: scale(1.03);
  }
  /*=========================
▲▲conts_link▲▲
===========================*/
  /*=========================
▼▼conts_whats_nsd▼▼
===========================*/
  #main_nsd .conts_whats_nsd {
    background: linear-gradient(180deg, rgba(56, 175, 227, 1) 0%, rgba(52, 159, 227, 1) 50%, rgba(68, 182, 217, 1) 100%);
    padding: 100px 0 167px;
  }
  #main_nsd:has(>.conts_link) .conts_whats_nsd::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -70px;
    right: 0;
    background-image: url(../img/wave_00.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd:has(>.conts_link) .conts_whats_nsd .auto::before {
    content: "";
    display: block;
    width: 542px;
    height: 180px;
    position: absolute;
    top: -205px;
    left: -396px;
    background-image: url(../img/cloud_03.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd:has(>.conts_link) .conts_whats_nsd .auto::after {
    content: "";
    display: block;
    width: 463px;
    height: 160px;
    position: absolute;
    top: -168px;
    right: -382px;
    background-image: url(../img/cloud_02.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_whats_nsd h3.title_big {
    margin: 0 0 50px -3%;
  }
  #main_nsd .conts_whats_nsd .slogan {
    text-align: center;
    color: #fff;
    font-size: 32px;
    font-weight: 700;
    line-height: 1.8;
    margin-bottom: 44px;
  }
  #main_nsd .conts_whats_nsd .slogan span.line_yellow {
    display: inline-block;
    line-height: 1.1;
    background-color: #fdff71;
    border-radius: 4px;
    color: #000;
    padding: 1px 2px;
  }
  #main_nsd .conts_whats_nsd .text {
    line-height: 2.5;
    text-align: center;
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    margin-bottom: 56px;
  }
  #main_nsd .conts_whats_nsd .text .under_line {
    border-bottom: 2px solid #247dea;
    padding-bottom: 3px;
  }
  /*=========================
▲▲conts_whats_nsd▲▲
===========================*/
  /*=========================
▼▼conts_merit▼▼
===========================*/
  #main_nsd .conts_merit {
    background: linear-gradient(180deg, rgba(88, 213, 217, 1) 0%, rgba(100, 232, 210, 1) 35%, rgba(159, 232, 185, 1) 65%, rgba(81, 225, 230, 1) 100%);
    padding: 115px 0 127px;
  }
  #main_nsd .conts_merit::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -62px;
    right: 0;
    background-image: url(../img/wave_01.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd .conts_merit .auto::before {
    content: "";
    display: block;
    width: 331px;
    height: 111px;
    position: absolute;
    top: -218px;
    left: -261px;
    background-image: url(../img/cloud_01.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_merit .auto::after {
    content: "";
    display: block;
    width: 542px;
    height: 210px;
    position: absolute;
    top: -270px;
    right: -347px;
    background-image: url(../img/cloud_04.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
  }
  #main_nsd .conts_merit .block_wrapper {
    background-color: #fff;
    padding: 72px 100px 84px;
    border: 7px solid #000;
    box-shadow: 3px 4px 0 1px #fff9b1;
    border-radius: 50px;
    position: relative;
    margin-bottom: 134px;
  }
  #main_nsd .conts_merit .block_wrapper.merit_02, #main_nsd .conts_merit .block_wrapper.merit_03 {
    padding: 72px 100px 90px;
    margin-bottom: 143px;
  }
  #main_nsd .conts_merit .block_title {
    font-size: 60px;
    font-weight: 700;
    line-height: 1.1;
    padding-left: 150px;
    letter-spacing: -3px;
    width: 741px;
  }
  #main_nsd .conts_merit .merit_03 .block_title {
    font-size: 48px;
    width: 765px;
  }
  #main_nsd .conts_merit hgroup {
    position: relative;
    margin-bottom: 25px;
  }
  #main_nsd .conts_merit hgroup .number {
    width: 180px;
    position: absolute;
    top: -21px;
    left: -43px;
  }
  #main_nsd .conts_merit hgroup h4.block_title.sub {
    line-height: 1.1;
    margin-bottom: 5px;
    font-size: 35px;
    letter-spacing: 0
  }
  #main_nsd .conts_merit .block_img {
    width: 539px;
  }
  #main_nsd .conts_merit .merit_02 .block_img, #main_nsd .conts_merit .merit_03 .block_img {
    margin: 0 auto;
  }
  #main_nsd .conts_merit .block_img img {
    border-radius: 15px;
    border: 5px solid #000;
    box-shadow: 3px 4px 0 1px #fff9b1;
  }
  #main_nsd .conts_merit .ic_img_yoko {
    width: 253px;
    border: 3px solid #000;
    margin-right: 20px;
    border-radius: 3px;
  }
  #main_nsd .conts_merit .ic_img_tate {
    width: 139px;
    border: 3px solid #000;
    border-radius: 3px;
  }
  #main_nsd .conts_merit .img_group {
    position: relative;
    margin-bottom: 27px;
  }
  #main_nsd .conts_merit .ic_group {
    position: absolute;
    top: 10px;
    left: 430px;
  }
  #main_nsd .conts_merit .ic_img_group {
    display: flex;
    align-items: flex-end;
  }
  #main_nsd .conts_merit .ic_text {
    content: "";
    display: block;
    width: 505px;
    height: 85px;
    position: absolute;
    top: 224px;
    left: -40px;
    background-image: url(../img/ic_text.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
  #main_nsd .conts_merit .block_text {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.7;
  }
  #main_nsd .conts_merit .apply_button {
    position: absolute;
    bottom: -50px;
    left: 50%;
    transform: translateX(-50%);
  }
  #main_nsd .conts_merit .merit_02 .apply_button, #main_nsd .conts_merit .merit_03 .apply_button {
    bottom: -56px;
  }
  /*▼▼大ボタン▼▼*/
  #main_nsd .apply_button a {
    width: 750px;
    text-align: center;
    color: #fff;
    font-size: 39px;
    font-weight: 700;
    padding: 20px 37px 25px;
    border-radius: 70px;
    box-shadow: 1.2px 2px 0 4.5px #000;
    border: solid 2px #000;
    background: linear-gradient(135deg, rgba(255, 108, 96, 1) 0%, rgba(255, 86, 150, 1) 100%);
    position: relative;
    box-sizing: border-box;
    transition-duration: .3s;
    z-index: 0
  }
  #main_nsd .apply_button a:hover {
    color: #000;
  }
  #main_nsd .apply_button a::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: #fdff71;
    border-radius: 70px;
    opacity: 0;
    transition: opacity .3s;
  }
  #main_nsd .apply_button a:hover::before {
    opacity: 1;
  }
  #main_nsd .apply_button a::after {
    content: "";
    display: block;
    width: 76px;
    height: 14px;
    position: absolute;
    top: 47px;
    right: 30px;
    background-image: url(../img/arrow_right.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transition: .3s;
  }
  #main_nsd .apply_button a:hover::after {
    right: 20px;
    background-image: url(../img/arrow_right_black.png);
  }
  /*▲▲大ボタン▲▲*/
  /*=========================
▲▲conts_merit▲▲
===========================*/
  /*=========================
▼▼conts_guide▼▼
===========================*/
  #main_nsd .conts_guide {
    background: linear-gradient(180deg, #3fbfe3 0%, rgba(117, 197, 193, 1) 35%, rgba(76, 197, 211, 1) 65%, rgba(62, 175, 227, 1) 100%);
    padding: 76px 0 185px;
  }
  #main_nsd .conts_guide::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -64px;
    right: 0;
    background-image: url(../img/wave_02.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd .conts_guide .auto::before {
    content: "";
    display: block;
    width: 542px;
    height: 180px;
    position: absolute;
    top: -179px;
    left: -382px;
    background-image: url(../img/cloud_03.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_guide .auto::after {
    content: "";
    display: block;
    width: 463px;
    height: 160px;
    position: absolute;
    top: -173px;
    right: -397px;
    background-image: url(../img/cloud_02.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_guide .title_text {
    text-align: center;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.8;
    margin-bottom: 32px;
  }
  #main_nsd .conts_guide h3.title_big {
    margin: 0 0 28px -3%;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link_group {
    width: 800px;
    margin: 0 auto;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link {
    margin-bottom: 25px;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link a {
    width: 250px;
    text-align: center;
    color: #000;
    font-size: 28px;
    font-weight: 700;
    padding: 16px 0px 16px;
    border-radius: 15px;
    box-shadow: 1.2px 2px 0 0.5px #000;
    border: solid 3px #000;
    background: #fff;
    position: relative;
    transition: .3s
  }
  #main_nsd .conts_guide nav.in_page_link_block {
    margin-bottom: 105px;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link a:hover {
    background: #fdff71;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link a::after {
    content: "";
    display: block;
    width: 23px;
    height: 13px;
    position: absolute;
    top: 32px;
    right: 26px;
    background-image: url(../img/arrow_down.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transition: .3s;
  }
  #main_nsd .conts_guide nav.in_page_link_block .page_link a:hover::after {
    top: 37px;
  }
  #main_nsd .conts_guide .ski_resort_list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    width: 956px;
    margin: 0 auto -40px;
  }
  #main_nsd .conts_guide .ski_resort_block {
    padding: 275px 30px 47px;
    background: #fff;
    border-radius: 20px;
    border: solid 4px #000;
    width: calc(100%/2 - 85px);
    position: relative;
    margin-bottom: 146px;
  }
  #main_nsd .conts_guide .ski_resort_block:nth-of-type(odd) {
    margin-right: 30px;
  }
  #main_nsd .conts_guide .ski_resort_block:last-of-type {
    margin-right: 0px;
  }
  #main_nsd .conts_guide .resort_name {
    width: 469px;
    position: absolute;
    top: -63px;
    left: -10px;
  }
  #main_nsd .conts_guide .explanation_text {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.6;
    margin-bottom: 16px;
  }
  #main_nsd .conts_guide .hashtag {
    font-size: 18px;
    font-weight: 700;
    line-height: 1.4;
    margin-bottom: 10px;
  }
  /*▼▼小ボタン▼▼*/
  #main_nsd .conts_guide .ski_resort_block .apply_button {
    position: absolute;
    bottom: -29px;
    left: 50%;
    transform: translateX(-50%);
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a {
    width: 403px;
    text-align: center;
    color: #fff;
    font-size: 25px;
    font-weight: 700;
    padding: 7px 0 10px;
    border-radius: 70px;
    box-shadow: 1.2px 2px 0 3px #000;
    border: solid 2px #000;
    background: linear-gradient(135deg, rgba(255, 108, 96, 1) 0%, rgba(255, 86, 150, 1) 100%);
    position: relative;
    z-index: 0
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a:hover {
    color: #000;
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a::before {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: #fdff71;
    border-radius: 70px;
    opacity: 0;
    transition: opacity .3s;
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a:hover::before {
    opacity: 1;
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a::after {
    content: "";
    display: block;
    width: 50px;
    height: 9px;
    position: absolute;
    top: 25px;
    right: 30px;
    background-image: url(../img/arrow_right.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    transition: .3s;
  }
  #main_nsd .conts_guide .ski_resort_block .apply_button a:hover::after {
    right: 25px;
    background-image: url(../img/arrow_right_black.png);
  }
  #main_nsd .conts_guide .join_text {
    width: 677px;
    margin: 0 auto 23px;
  }

  /*▲▲小ボタン▲▲*/
  /*=========================
▲▲conts_guide▲▲
===========================*/
  /*=========================
▼▼conts_rental▼▼
===========================*/
  #main_nsd .conts_rental {
    background: linear-gradient(180deg, rgba(80, 207, 230, 1) 0%, rgba(81, 221, 230, 1) 35%, rgba(80, 200, 230, 1) 65%, rgba(81, 191, 230, 1) 99%);
    padding: 110px 0 193px;
  }
  #main_nsd .conts_rental::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -62px;
    right: 0;
    background-image: url(../img/wave_03.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd .conts_rental .auto::before {
    content: "";
    display: block;
    width: 331px;
    height: 111px;
    position: absolute;
    top: -184px;
    left: -261px;
    background-image: url(../img/cloud_01.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_rental .auto::after {
    content: "";
    display: block;
    width: 542px;
    height: 210px;
    position: absolute;
    top: -221px;
    right: -408px;
    background-image: url(../img/cloud_04.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_rental .lental_merit {
    font-size: 43px;
    line-height: 1.2;
    margin-bottom: 23px;
    text-align: center;
  }
  #main_nsd .conts_rental .lental_support {
    font-size: 27px;
    line-height: 1.7;
    text-align: center;
    margin-bottom: 8px;
  }
  #main_nsd .conts_rental h3.title_big {
    width: 102%;
    margin: 0 0 32px -1%;
  }
  #main_nsd .conts_rental .lental_point_block {
    margin-bottom: 85px;
  }
  #main_nsd .conts_rental .lental_point img {
    margin: -9px 0;
  }
  /*=========================
▲▲conts_rental▲▲
===========================*/
  /*=========================
▼▼conts_family▼▼
===========================*/
  #main_nsd .conts_family {
    background: linear-gradient(180deg, rgba(66, 170, 224, 1) 0%, rgba(76, 197, 211, 1) 35%, rgba(121, 197, 192, 1) 75%, rgba(95, 172, 208, 1) 99%);
    padding: 183px 0 54px;
  }
  #main_nsd .conts_family::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -66px;
    right: 0;
    background-image: url(../img/wave_04.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd .conts_family .auto::before {
    content: "";
    display: block;
    width: 542px;
    height: 180px;
    position: absolute;
    top: -278px;
    left: -421px;
    background-image: url(../img/cloud_03.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
    z-index: 0;
  }
  #main_nsd .conts_family .auto::after {
    content: "";
    display: block;
    width: 463px;
    height: 160px;
    position: absolute;
    top: -274px;
    right: -364px;
    background-image: url(../img/cloud_02.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_family h3.title_big {
    width: 102%;
    margin: 0 0 128px -1%;
  }
  #main_nsd .conts_family .block_wrapper {
    background-color: #fff;
    padding: 0 0 109px;
    border: 7px solid #000;
    box-shadow: 3.2px 3.8px 0 1px #008ee8;
    border-radius: 50px;
    position: relative;
    margin-bottom: 126px;
  }
  #main_nsd .conts_family .block_title {
    position: relative;
    margin-bottom: 79px;
  }
  #main_nsd .conts_family .block_title.speech_bubble::after {
    content: "";
    display: block;
    width: 368px;
    height: 180px;
    position: absolute;
    top: -106px;
    right: -30px;
    background-image: url(../img/speech_bubble_01.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
  }
  #main_nsd .conts_family .block_wrapper .block_text_group {
    margin: -41px 160px 31px;
  }
  #main_nsd .conts_family .block_wrapper .block_text {
    font-size: 40px;
    font-weight: 700;
    text-align: center;
    line-height: 1.5;
  }
  #main_nsd .conts_family .block_wrapper .block_text_small {
    font-size: 25px;
    font-weight: 700;
    line-height: 1.6;
    text-align: center;
    margin: 0 140px 32px;
  }
  #main_nsd .conts_family .block_wrapper .explanation_block {
    width: 800px;
    margin: 0 auto;
  }
  #main_nsd .conts_family .block_img {
    margin: 0 auto;
  }
  #main_nsd .conts_family .block_img img {
    border-radius: 15px;
    border: 5px solid #000;
  }
  #main_nsd .conts_family .block_img {
    width: 539px;
    margin-bottom: 42px;
  }
  #main_nsd .conts_family .apply_button {
    position: absolute;
    bottom: -49px;
    left: 50%;
    transform: translateX(-50%);
  }
  /*=========================
▲▲conts_family▲▲
===========================*/
  /*=========================
▼▼conts_reason▼▼
===========================*/
  #main_nsd .conts_reason {
    background: linear-gradient(180deg, rgba(113, 192, 212, 1) 0%, rgba(88, 172, 226, 1) 30%, rgba(81, 167, 230, 1) 100%);
    padding: 95px 0 100px;
  }
  #main_nsd .conts_reason::before {
    content: "";
    display: block;
    width: 100%;
    height: 148px;
    position: absolute;
    top: -61px;
    right: 0;
    background-image: url(../img/wave_05.png);
    background-repeat: repeat-x;
    background-position: center;
    background-size: 2390px;
  }
  #main_nsd .conts_reason .auto::before {
    content: "";
    display: block;
    width: 411px;
    height: 138px;
    position: absolute;
    top: -161px;
    left: -291px;
    background-image: url(../img/cloud_01.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_reason .auto::after {
    content: "";
    display: block;
    width: 542px;
    height: 210px;
    position: absolute;
    top: -196px;
    right: -375px;
    background-image: url(../img/cloud_04.png);
    background-repeat: no-repeat;
    background-position: center;
    background-size: 100%;
  }
  #main_nsd .conts_reason h3.title_big {
    width: 99%;
    margin: 0 auto 52px;
  }
  #main_nsd .conts_reason .text_block {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.9;
    text-align: center;
  }
  #main_nsd .conts_reason .text_block .text {
    margin-bottom: 26px;
  }
  #main_nsd span.font_big {
    font-size: 26px;
    line-height: 1.6;
  }
  /*=========================
▲▲conts_reason▲▲
===========================*/
  #pokemon-bnr a{
  	margin-bottom:60px;
  }
}