@charset "utf-8";

#stNsContentsWrapAll * {
  text-decoration: none !important;
}

.st-ns_ContentsWrapAll {
  box-sizing: border-box;
  color: #102440;
  font-family: "Noto Sans JP", "Helvetica Neue", "Helvetica", "Hiragino Sans", "Arial", "Yu Gothic", "Meiryo", sans-serif;
  font-feature-settings: "palt";
  font-size: 16px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 1.3px;
  line-height: 1.6;
  margin-top: -20px;
  overflow: hidden;
  position: relative;
  width: 100%;
}

#wrapper {
  min-width: auto !important;
  overflow: hidden !important;
}

#mainContent {
  margin-bottom: 0 !important;
  padding: 0 !important;
}

.st-ns_ContentsWrapAll .st-ns_flex {
  display: flex;
  display: -ms-flex;
  display: -webkit-flex;
  justify-content: space-between;
}

.st-ns_ContentsWrapAll a {
  color: #000;
  display: block;
  text-decoration: none;
  transition: 0.3s;
}

.st-ns_ContentsWrapAll a:hover img {
  opacity: 1;
}

.st-ns_ContentsWrapAll img {
  display: block;
  height: auto;
  width: 100%;
}

.st-ns_ContentsWrapAll a:before, 
.st-ns_ContentsWrapAll a:after {
  content: "";
  display: block;
  position: absolute;
}

.st-ns_commonSize {
  box-sizing: border-box;
  display: block;
  margin: 0 auto;
  max-width: 1160px;
  padding: 0 80px;
  width: 100%;
}

.contents_wrap h1 {
  border: none;
  margin: 0;
  padding: 0;
}

.st-ns_ContentsWrapAll h2 {
  border-bottom: none;
  margin: 0;
  padding: 0;
}

.st-ns_ContentsWrapAll h3 {
  background: rgba(255, 255, 255, 0);
  border-bottom: none;
  line-height: 1.3;
  margin: 0;
  padding: 0;
}

.st-ns_sp, 
.st-ns_sp a, 
img.st-ns_sp {
  display: none;
}
/*common_start*/
/*accordion_start*/
.st-ns_invisible.st-ns_acoBt__txt, 
.st-ns_acoBt__txt {
  display: none;
  padding-bottom: 20px;
}

.st-ns_acoBt_parent {
  padding-bottom: 48px;
  position: relative;
}

.st-ns_acoBt {
  bottom: 0;
  height: 60px;
  left: 0;
  position: absolute;
  transition: 0.3s;
  width: 100%;
}

.st-ns_on.st-ns_acoBt {
  bottom: 0;
  transition: 0.3s;
}

.st-ns_acoBt:before, 
.st-ns_acoBt:after {
  content: "";
  display: block;
  position: absolute;
}

.st-ns_acoBt:before {
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 1) 100%);
  bottom: 20px;
  height: 60px;
  left: 0;
  width: 100%;
}

.st-ns_acoBt:after {
  border-color: #bfbfbf;
  border-right: 2px solid;
  border-top: 2px solid;
  bottom: 20px;
  height: 15px;
  left: 50%;
  transform: rotate(135deg) translate(0, 50%);
  transition: 0.3s;
  width: 15px;
}

.st-ns_on.st-ns_acoBt:before {
  display: none;
}

.st-ns_on.st-ns_acoBt:after {
  bottom: 25px;
  transform: rotate(-45deg) translate(0, -50%);
  transition: 0.3s;
}

h2.st-ns_commonTitleH2 {
  font-size: 50px;
  font-weight: bold;
  line-height: 1.3;
  margin-bottom: 40px;
  padding-top: 80px;
  text-align: center;
}

h2.st-ns_commonTitleH2 .st-ns_txtIm {
  display: block;
  margin: 0 auto;
  max-width: 300px;
}

h3.st-ns_commonTitleH3 {
  font-size: 24px;
  margin: 0 auto 10px;
  padding-top: 48px;
  text-align: center;
  width: fit-content;
  width: -moz-fit-content;
}

.st-ns_areaH2 {
  padding-bottom: 180px;
}

/*hover_start*/
.st-ns_ContentsWrapAll a, 
.st-ns_ContentsWrapAll a img, 
.st-ns_ticket__bt .NS_general_7ticket {
  opacity: 1;
  transition: 0.3s;
}

.st-ns_ContentsWrapAll a:hover, 
.st-ns_ticket__bt .NS_general_7ticket:hover {
  transform: translate(10px, 0px);
  transition: 0.3s;
}

/*hover_end*/
/*breadcrumb_start*/
.st-ns_breadcrumb {
  background: #fff;
  border-bottom: 1px solid #fff;
  box-sizing: border-box;
  display: flex;
  height: calc(1em + (8px * 2));
  line-height: 1.5;
  padding: 8px;
  white-space: nowrap;
  width: 100%;
}

ol.st-ns_breadcrumb li {
  float: left;
  font-size: 12px;
  padding-left: 20px;
  position: relative;
  letter-spacing: 0.05em;
}

ol.st-ns_breadcrumb li:before {
  border-right: solid 1px;
  border-top: solid 1px;
  color: #000;
  content: "";
  display: block;
  height: 6px;
  left: 0.2rem;
  position: absolute;
  top: 38%;
  transform: rotate(45deg) translate(0, -25%);
  width: 6px;
}

ol.st-ns_breadcrumb li:first-child:before {
  display: none;
}

ol.st-ns_breadcrumb li:first-child {
  background: none;
  padding-left: 0;
}

ol.st-ns_breadcrumb li, 
ol.st-ns_breadcrumb li a {
  color: #000;
}

ol.st-ns_breadcrumb li a:hover {
  transform: translate(0, 0);
}

ol.st-ns_breadcrumb li a {
  text-decoration: none;
}
/*breadcrumb_end*/
/*top_start*/
h1.st-ns_top__im {
  background: linear-gradient(to bottom, #002255, #003377);
  border: none;
  margin: 0;
  padding: 0 0 min(3.5vw, 35px);
}
/*top_end*/

/*kikan_start*/
.st-ns_kikan {
  background: linear-gradient(to bottom, #002255, #003377);
  border-bottom: 2px solid #ffffff80;
  border-top: 2px solid #ffffff80;
  padding: min(3.5vw, 35px) 0;
  position: relative;
  z-index: 0;
}

.st-ns_kikan::before {
  background-image: radial-gradient(circle, #ffffff4d 1px, transparent 1px);
  background-position: 0 0;
  background-size: 42px 42px;
  content: "";
  display: block;
  height: 100%;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

.st-ns_kikan .st-ns_commonSize {
  box-sizing: border-box;
  display: block;
  margin: 0 auto;
  max-width: initial;
  padding: 0;
  width: 100%;
}

.st-ns_kikan_txt {
  align-items: center;
  display: flex;
  justify-content: center;
  width: 100%;
}

.st-ns_kikan_txt img {
  height: auto;
  width: 707px;
}
/*kikan_end*/

.st-ns_areaBottom {
  background: #fff;
  color: #003377;
  font-size: 14px;
  font-style: normal;
  font-weight: 500;
  letter-spacing: 0.02em;
  padding: 3px 0 3px;
  text-align: center;
}

/*contents_end*/
@media screen and (min-width: 641px) and (max-width: 1024px) {
  .st-ns_sp, 
  .st-ns_sp a, 
  img.st-ns_sp {
    display: block;
  }

  #wrapper {
    min-width: 100%;
  }

  .st-ns_commonSize {
    padding: 0;
    width: calc(100% - 80px);
  }

.st-ns_kikan_kaishi {
    height: auto;
   width: 80%;
  }

  .st-ns_kikan_txt img {
    height: auto;
   width: 100%;
  }

  .st-ns_kikan_btn {
    width: 65%;
  }
}

@media screen and (max-width: 640px) {
  .st-ns_ContentsWrapAll {
    box-sizing: border-box;
    font-size: clamp(14px, 3.5vw, 16px);
    margin-top: -25px;
    overflow: hidden;
    -webkit-text-size-adjust: 100%;
  }

  .st-ns_ContentsWrapAll {}
  .st-ns_ContentsWrapAll img {
    display: block;
    width: 100%;
  }

  .st-ns_commonSize {
    box-sizing: border-box;
    padding: 0;
    width: 100%;
  }

  /*SP_common_start*/
  h2.st-ns_commonTitleH2 {
    box-sizing: border-box;
    font-size: 7.5vw;
    margin-bottom: 5vw;
    padding-top: 12vw;
  }

  h2.st-ns_commonTitleH2 picture {
    height: 8.5vw;
    max-width: initial;
    width: auto;
  }

  h3.st-ns_commonTitleH3 {
    font-size: 6vw;
    margin-bottom: 5vw;
    padding-top: 10vw;
  }

  .st-ns_areaH2 {
    padding-bottom: 15vw;
  }

  .st-ns_sp, 
  .st-ns_sp a, 
  img.st-ns_sp {
    display: block;
  }

  .st-ns_pc,
  .st-ns_pc a, 
  img.st-ns_pc {
    display: none;
  }
  /*SP_common_end*/
  /*SP_contents_start*/
  /*SP_breadcrumb_start*/
  .st-ns_breadcrumb {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    padding-left: 2vw;
    white-space: nowrap;
    width: 100%;
  }

  .st-ns_breadcrumb > * {
    float: initial;
    font-size: 2.8vw;
  }

  ol.st-ns_breadcrumb li:nth-of-type(n + 2) {
    background-position: 1vw center;
    padding-left: 15px;
  }

  ol.st-ns_breadcrumb li:before {
    left: 0vw;
    top: 50%;
    transform: rotate(45deg) translate(0, -50%);
  }

  /*SP_breadcrumb_end*/
 
	
 /*SP_top_start*/
  h1.st-ns_top__im {
    padding: 0;
  }

  /*SP_kikan_start*/
  .st-ns_kikan {
    padding: min(5.46vw, 35px) 0;
  }

   .st-ns_kikan_btn {
      width: 80%;
    }

  .st-ns_kikan::before {
     background-image: radial-gradient(circle, #ffffff4d 1px, transparent 1px);
     background-position: 0 0;
     background-size: 32px 32px;
     content: "";
     display: block;
     height: 100%;
     position: absolute;
     top: 0;
     width: 100%;
     z-index: -1;
   }

  /*hover_start*/
  .st-ns_ContentsWrapAll a:hover, 
  .st-ns_ticket__bt .NS_general_7ticket:hover {
    transform: translate(0px, 0px);
  }

  .st-ns_ContentsWrapAll .st-ns_anc a:hover {
    transform: translate(0px, 0px);
    transition: 0.3s;
  }
  /*hover_end*/

  .st-ns_areaBottom {
    font-size: 2.5vw;
}
  /*SP_contents_end*/
}