:root {
  --font-main: "m-plus-2p", sans-serif;
  --font-sub-jp: "dnp-shuei-gothic-gin-std", sans-serif;
  --font-sub-en: "skope", sans-serif;
  --color-main: #009c74;
  --color-sub: #6593ca;
}

/*----------------------------------------------------------------
* base
----------------------------------------------------------------*/
body.is-modal {
  overflow: hidden;
}

body.is-modal-open {
  overflow: hidden;
  height: 100vh;
}

.feature_details01 .box {
  margin-top: 0;
}

.s_container {
  width: auto;
  max-width: none;
}
@media only screen and (max-width: 768px) {
  .s_container {
    padding: 0;
  }
}

.breadcrumb {
  position: relative;
  background: #fff;
  z-index: 1;
}

.trigger {
  cursor: pointer;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.cf::after {
  clear: both;
  content: "";
  display: block;
  height: 0;
}

@media only screen and (min-width: 769px) {
  .sp {
    display: none !important;
  }
}
@media only screen and (max-width: 768px) {
  .pc {
    display: none !important;
  }
}
/*----------------------------------------------------------------
* btn
----------------------------------------------------------------*/
.ns-btn {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 190px;
  height: 36px;
  color: #fff;
  font-family: var(--font-sub-jp);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0.05em;
  background: var(--color-main);
  border-radius: 1000px;
}
.ns-btn--center {
  margin: 15px auto 0;
}
.ns-btn[href="#"] {
  pointer-events: none;
  opacity: 0.5 !important;
}
@media only screen and (min-width: 769px) {
  .ns-btn {
    transition: opacity 0.6s ease;
  }
  .ns-btn:hover {
    opacity: 0.6;
  }
}
.ns-btn--check {
  width: 143px;
  height: 40px;
  background: #000;
}
@media only screen and (max-width: 768px) {
  .ns-btn--check {
    width: 103px;
    height: 29px;
  }
}
.ns-btn--play {
  width: 273px;
  height: 40px;
  letter-spacing: 0.05em;
  background: #000;
}
@media only screen and (max-width: 768px) {
  .ns-btn--play {
    width: 142px;
    height: 29px;
  }
}
.ns-btn--play::before {
  content: "";
  display: inline-block;
  width: 14.5px;
  height: 17px;
  background: url(/storage/brandsite/feature/img/131/motif_movie-arrow.png) center center/100% auto no-repeat;
  margin-right: 12px;
}
@media only screen and (max-width: 768px) {
  .ns-btn--play::before {
    width: 10.5px;
    height: 12px;
    margin-bottom: 2px;
    margin-right: 9px;
  }
}
.ns-btn--narisumushi {
  width: 450px;
  height: 60px;
  font-size: 27px;
  background: #4a990a;
}
@media only screen and (max-width: 768px) {
  .ns-btn--narisumushi {
    width: 249px;
    height: 29px;
    font-size: 14px;
  }
}
.ns-btn--stripe {
  width: 412.5px;
  height: 60px;
  font-size: 27px;
  background: #f97e06;
}
@media only screen and (max-width: 768px) {
  .ns-btn--stripe {
    width: 205px;
    height: 29px;
    font-size: 14px;
  }
}

/*----------------------------------------------------------------
* ns-checkbox
----------------------------------------------------------------*/
.ns-checkbox {
  position: relative;
  width: 14px;
  height: 14px;
  border: 1px solid var(--color-main);
}
.ns-checkbox::after {
  position: absolute;
  content: "";
  display: block;
  width: 32px;
  height: 33px;
  background: url(/storage/brandsite/feature/img/131/check.png) left top/100% auto no-repeat;
  bottom: -2px;
  left: -4px;
  transition: clip-path 0.3s ease;
  clip-path: inset(0 100% 0 0);
}
.ns-checkbox.is-check::after {
  clip-path: inset(0 0% 0 0);
}

span.ns-checkbox {
  display: inline-block;
  vertical-align: middle;
}

/*----------------------------------------------------------------
* fade
----------------------------------------------------------------*/
.ns-fade-up {
  transform: translateY(40px);
  opacity: 0;
}
.ns-fade-up.is-show {
  animation: fade-up 1s cubic-bezier(0.165, 0.84, 0.44, 1) forwards;
}
@keyframes fade-up {
  0% {
    opacity: 0;
    transform: translateY(40px);
  }
  60% {
    opacity: 0.8;
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

/*----------------------------------------------------------------
* ns-list-link
----------------------------------------------------------------*/
.ns-list-link {
  display: block;
  color: var(--color-main);
  font-family: var(--font-sub-jp);
  font-size: 15px;
  font-weight: 500;
  font-feature-settings: normal;
  background: url(/storage/brandsite/feature/img/131/list-link_arrow.png) right 10px center/20px auto no-repeat;
  border-top: 1px solid var(--color-main);
  border-bottom: 1px solid var(--color-main);
  padding: 14px 10px;
}

/*----------------------------------------------------------------
* marker-title
----------------------------------------------------------------*/
.ns-marker-title {
  position: relative;
  display: block;
  width: max-content;
  font-family: var(--font-sub-en);
  font-size: 16px;
  letter-spacing: 0.1em;
  margin: 0 auto;
  padding: 0 8.5px;
  z-index: 1;
}
@media only screen and (max-width: 768px) {
  .ns-marker-title {
    font-size: 14px;
    letter-spacing: 0;
  }
}
.ns-marker-title::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 12px;
  background: #fff8bd;
  bottom: -4px;
  left: 0;
  z-index: -1;
}

/*----------------------------------------------------------------
* container
----------------------------------------------------------------*/
.ns-container {
  position: relative;
  line-height: 1;
  color: var(--color-main);
  font-family: var(--font-main);
  font-size: 14px;
  font-weight: 400;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  padding-bottom: 92px;
}
@media only screen and (max-width: 768px) {
  .ns-container {
    padding-bottom: 52px;
  }
}
.ns-container a {
  text-decoration: none !important;
  cursor: pointer;
}
@media only screen and (min-width: 769px) {
  .ns-container a {
    transition: opacity 0.6s ease;
  }
  .ns-container a:hover {
    opacity: 0.6;
  }
}
@media only screen and (max-width: 768px) {
  .ns-container a {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  }
}
.ns-container img {
  height: auto;
}
.ns-container__inner {
  position: relative;
  margin-top: -266px;
  overflow: hidden;
}
@media only screen and (max-width: 768px) {
  .ns-container__inner {
    margin-top: 0;
  }
}

/*----------------------------------------------------------------
* lastly
----------------------------------------------------------------*/
.ns-lastly {
  color: var(--color-sub);
  background: #f0f0f0;
  margin-top: 90px;
  padding: 70px 0 90px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly {
    margin-top: 35px;
    padding: 43px 15px 73px;
  }
}
.ns-lastly__inner {
  max-width: 740px;
  margin: 0 auto;
}
.ns-lastly__sub-title {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 108px;
  height: 36px;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border: 1px solid var(--color-sub);
  margin: 0 auto;
}
.ns-lastly__title {
  line-height: 28px;
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  margin-top: 20px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list-wrap {
    position: relative;
    margin: 0 -15px;
    padding: 0 15px;
    overflow: hidden;
  }
  .ns-lastly__list-wrap::after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 255px;
    background: linear-gradient(0deg, #f0f0f0 0%, #f0f0f0 50.98%, rgba(240, 240, 240, 0.9) 67.83%, rgba(240, 240, 240, 0.7) 93.1%, rgba(240, 240, 240, 0) 100%);
    bottom: 0;
    left: 0;
    opacity: 0;
    visibility: hidden;
    z-index: 1;
  }
  .ns-lastly__list-wrap.is-hide {
    height: 500px;
  }
  .ns-lastly__list-wrap.is-hide::after {
    opacity: 1;
    visibility: visible;
  }
}
.ns-lastly__more {
  display: none;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__more {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 160px;
    height: 30px;
    font-size: 12px;
    border: 1px solid var(--color-sub);
    border-radius: 1000px;
    bottom: 53px;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    visibility: hidden;
    z-index: 2;
  }
  .ns-lastly__more::before, .ns-lastly__more::after {
    position: absolute;
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background: var(--color-sub);
    top: 50%;
  }
  .ns-lastly__more::before {
    left: 11px;
  }
  .ns-lastly__more::after {
    left: 11px;
    transform: translateY(-48%) rotate(90deg);
  }
  .is-hide .ns-lastly__more {
    opacity: 1;
    visibility: visible;
  }
}
.ns-lastly__list {
  display: grid;
  grid-template-rows: 373px 1fr;
  grid-template-columns: 370px 1fr;
  grid-auto-flow: column;
  font-family: var(--font-sub-jp);
  font-size: 14px;
  font-feature-settings: normal;
  letter-spacing: 0.01em;
  transform: translateX(20px);
  margin-top: 33px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list {
    grid-template-rows: repeat(4, 1fr);
    grid-template-columns: 1fr;
    transform: none;
    margin-top: 31px;
  }
}
.ns-lastly__list li {
  border-left: 1px solid var(--color-sub);
  padding: 0 40px 0 20px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list li {
    display: flex;
    flex-direction: column;
    padding: 3px 0 40px 22px;
  }
  .ns-lastly__list li:last-child {
    padding-bottom: 0;
  }
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list img {
    order: 2;
    margin-top: 20px;
  }
}
.ns-lastly__list h4 {
  font-size: 16px;
  font-weight: 700;
  margin: 23px 0 12px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list h4 {
    order: 1;
    margin: 0;
  }
}
.ns-lastly__list p {
  line-height: 2;
  text-align: justify;
  margin-right: -5px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly__list p {
    order: 3;
    margin-top: 10px;
  }
}
.ns-lastly .all-items {
  position: relative;
  display: block;
  width: 560px;
  height: 154px;
  color: #fff;
  text-align: center;
  background: var(--color-main);
  margin: 79px auto 0;
  padding-top: 44px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly .all-items {
    width: auto;
    height: 106px;
    margin: 26px auto 0;
    padding-top: 30px;
  }
}
.ns-lastly .all-items span {
  display: block;
  line-height: 1;
}
.ns-lastly .all-items .en {
  font-family: var(--font-sub-en);
  font-size: 32px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly .all-items .en {
    font-size: 20px;
  }
}
.ns-lastly .all-items .jp {
  font-size: 18px;
  font-weight: 700;
  margin-top: 20px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly .all-items .jp {
    font-size: 14px;
    margin-top: 8px;
  }
}
.ns-lastly .all-items::before {
  position: absolute;
  content: "";
  display: block;
  width: 15.56px;
  aspect-ratio: 1/1;
  border-top: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: translateY(-50%) rotate(45deg);
  top: 50%;
  left: 36px;
}
@media only screen and (max-width: 768px) {
  .ns-lastly .all-items::before {
    width: 12.73px;
    left: 26px;
  }
}

/*----------------------------------------------------------------
* mv
----------------------------------------------------------------*/
.ns-mv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column-reverse;
  padding: 68px 0 0;
}
@media only screen and (max-width: 768px) {
  .ns-mv {
    padding: 38px 0 0;
  }
}
.ns-mv__box {
  position: relative;
  width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
}
.ns-mv__catch {
  position: relative;
  display: block;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-align: center;
  transform: translateY(40px);
  opacity: 0;
  z-index: 2;
}
@media only screen and (max-width: 768px) {
  .ns-mv__catch {
    font-size: 15px;
  }
}
.ns-mv__catch::before, .ns-mv__catch::after {
  display: inline-block;
  content: "";
  width: 16px;
  aspect-ratio: 1/1;
  vertical-align: middle;
  background: left top/100% auto no-repeat;
  margin-top: -2px;
}
@media only screen and (max-width: 768px) {
  .ns-mv__catch::before, .ns-mv__catch::after {
    width: 12px;
  }
}
.ns-mv__catch::before {
  background-image: url(/storage/brandsite/feature/img/131/mv_slash-l.png);
  margin-right: 13px;
}
.ns-mv__catch::after {
  background-image: url(/storage/brandsite/feature/img/131/mv_slash-r.png);
  margin-left: 5px;
}
.ns-mv__title {
  position: relative;
  display: flex;
  flex-direction: row-reverse;
  justify-content: center;
  line-height: 53px;
  font-size: 56px;
  font-weight: 900;
  font-feature-settings: normal;
  text-align: center;
  letter-spacing: -0.05em;
  margin: 24px auto 0;
  padding-right: 8px;
  z-index: 2;
  transform: translateY(40px);
  opacity: 0;
}
@media only screen and (max-width: 768px) {
  .ns-mv__title {
    line-height: 39px;
    font-size: 40px;
    letter-spacing: -0.02em;
    margin-top: 17px;
  }
}
.ns-mv__title span {
  display: block;
  width: 70px;
  margin: 0 8.5px;
}
@media only screen and (max-width: 768px) {
  .ns-mv__title span {
    width: 53px;
    margin: 0 6.5px;
  }
}
.ns-mv__title::after {
  position: absolute;
  content: "";
  display: block;
  width: 76px;
  height: 70px;
  background: url(/storage/brandsite/feature/img/131/mv_symbol.png) left top/100% auto no-repeat;
  bottom: 0;
  left: 6px;
}
@media only screen and (max-width: 768px) {
  .ns-mv__title::after {
    width: 59px;
    height: 54px;
    left: 3px;
  }
}
.ns-mv__title b {
  position: relative;
  display: inline-block;
  color: #fff;
  margin-top: 9px;
  padding: 7px 0 10px;
  z-index: 1;
}
@media only screen and (max-width: 768px) {
  .ns-mv__title b {
    margin-top: 4px;
    padding: 5px 0 9px;
  }
}
.ns-mv__title b::before {
  position: absolute;
  content: "";
  display: block;
  height: 0%;
  background: var(--color-main);
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
}
.ns-mv__lead {
  line-height: 32px;
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  margin-top: 40px;
  transform: translateY(40px);
  opacity: 0;
}
@media only screen and (max-width: 768px) {
  .ns-mv__lead {
    line-height: 30px;
    margin-top: 33px;
  }
}
.ns-mv__illust1 {
  position: absolute;
  width: 29.05555%;
  top: -15%;
  left: 50%;
  transform: translateX(-40px) translateX(-135.5%);
  opacity: 0;
}
@media only screen and (max-width: 768px) {
  .ns-mv__illust1 {
    width: 176px;
    top: -10.2%;
    transform: translateX(-40px) translateX(-131%);
  }
}
.ns-mv__illust2 {
  position: absolute;
  width: 32.55555%;
  top: -15%;
  left: 50%;
  transform: translateX(40px) translateX(34%);
  opacity: 0;
}
@media only screen and (max-width: 768px) {
  .ns-mv__illust2 {
    width: 195px;
    top: -9.9%;
    transform: translateX(40px) translateX(9%);
  }
}
.ns-mv.is-loaded .ns-mv__illust1 {
  transition: 1s ease;
  transition-property: transform, opacity;
  transform: translateX(-135.5%);
  opacity: 1;
}
@media only screen and (max-width: 768px) {
  .ns-mv.is-loaded .ns-mv__illust1 {
    transform: translateX(-131%);
  }
}
.ns-mv.is-loaded .ns-mv__illust2 {
  transition: 1s ease 0.3s;
  transition-property: transform, opacity;
  transform: translateX(34%);
  opacity: 1;
}
@media only screen and (max-width: 768px) {
  .ns-mv.is-loaded .ns-mv__illust2 {
    transform: translateX(9%);
  }
}
.ns-mv.is-loaded .ns-mv__catch,
.ns-mv.is-loaded .ns-mv__title,
.ns-mv.is-loaded .ns-mv__lead {
  transition: 0.8s ease;
  transition-property: transform, opacity;
  transform: none;
  opacity: 1;
}
.ns-mv.is-loaded .ns-mv__catch {
  transition-delay: 1s;
}
.ns-mv.is-loaded .ns-mv__title {
  transition-delay: 1.3s;
}
.ns-mv.is-loaded .ns-mv__title b::before {
  transition: height 1s cubic-bezier(0.16, 1, 0.3, 1) 2.2s;
  height: 100%;
}
.ns-mv.is-loaded .ns-mv__lead {
  transition-delay: 1.6s;
}

/*----------------------------------------------------------------
* sec-best
----------------------------------------------------------------*/
.ns-sec-best {
  display: grid;
  grid-template-columns: 1fr 370px;
  padding-right: 60px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best {
    display: block;
    padding: 0 15px;
  }
}
.--sec2 .ns-sec-best {
  margin-top: 33px;
}
@media only screen and (max-width: 768px) {
  .--sec2 .ns-sec-best {
    margin-top: 27px;
  }
}
.--sec3 .ns-sec-best {
  margin-top: 52px;
}
@media only screen and (max-width: 768px) {
  .--sec3 .ns-sec-best {
    margin-top: 40px;
  }
  .--sec3 .ns-sec-best.--best2 {
    margin-top: 20px;
  }
}
.--sec4 .ns-sec-best {
  margin-top: 62px;
}
@media only screen and (max-width: 768px) {
  .--sec4 .ns-sec-best {
    margin-top: 34px;
  }
}
.--sec6 .ns-sec-best.--best1 {
  margin-top: 101px;
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-best.--best1 {
    margin-top: 44px;
  }
}
.--sec6 .ns-sec-best.--best2 {
  margin-top: 27px;
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-best.--best2 {
    margin-top: 35px;
  }
}
.--sec6 .ns-sec-best.--best3 {
  margin-top: 52px;
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-best.--best3 {
    margin-top: 32px;
  }
}
.--sec7 .ns-sec-best {
  margin-top: 80px;
}
@media only screen and (max-width: 768px) {
  .--sec7 .ns-sec-best {
    margin-top: 32px;
  }
}
.ns-sec-best__item {
  position: relative;
  grid-column: 1/2;
  grid-row: 1/4;
}
.ns-sec-best__item__circle {
  width: 25.10638%;
  aspect-ratio: 1/1;
  border: 1px solid var(--color-main);
  border-radius: 100%;
  overflow: hidden;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best__item__circle {
    width: 28.9855%;
  }
}
.ns-sec-best__item img {
  max-width: none;
}
@media only screen and (min-width: 769px) {
  .ns-sec-best__item img {
    position: absolute;
  }
  .--sec2 .ns-sec-best__item img {
    width: 88.2978%;
    top: -1%;
    left: 4%;
  }
  .--sec3 .ns-sec-best__item .img1 {
    width: 123.4%;
    top: 25%;
    left: -33%;
  }
  .--sec3 .ns-sec-best__item .img2 {
    left: -4%;
    width: 92%;
    
  }
  .--sec3 .--best2 .ns-sec-best__item {
    aspect-ratio: 10 / 8;
  }
  .--sec4 .ns-sec-best__item .img1 {
    width: 77.234%;
    top: 3%;
    left: 19%;
  }
  .--sec4 .ns-sec-best__item .sub {
    position: absolute;
    width: 25.10638%;
    top: 62.3%;
    left: 66.2%;
  }
  .--sec4 .ns-sec-best__item .sub img {
    position: relative;
    width: 100%;
  }
  .--sec4 .ns-sec-best__item .sub p {
    line-height: 1.4;
    font-family: var(--font-sub-jp);
    font-size: 13px;
    font-feature-settings: normal;
    margin: 6px 0 0 6px;
  }
  .--sec6 .--best1 .ns-sec-best__item .img1 {
    width: 40%;
    top: -21%;
    left: 16.5%;
  }
  .--sec6 .--best1 .ns-sec-best__item .img2 {
    width: 25.5319%;
    top: 65%;
    left: 55.5%;
  }
  .--sec6 .--best2 .ns-sec-best__item .img1 {
    width: 31.0638%;
    top: 6.5%;
    left: 20.7%;
  }
  .--sec6 .--best2 .ns-sec-best__item .img2 {
    width: 25.5319%;
    top: 71.5%;
    left: 55.5%;
  }
  .--sec6 .--best3 .ns-sec-best__item .img1 {
    width: 55.74444%;
    top: 10.4%;
    left: 29.7%;
  }
  .--sec7 .ns-sec-best__item img {
    width: 77.234%;
    top: 0;
    left: 18%;
  }
}
@media only screen and (max-width: 768px) {
  .--sec2 .ns-sec-best__item img {
    width: 82.8985%;
    margin: 16px 0 14px 8.5%;
  }
  .--sec3 .ns-sec-best__item .img1 {
    width: 100%;
    margin: 120px 0 50px -26px;
  }
  .--sec3 .ns-sec-best__item .img2 {
    width: 90%;
    margin: -2px auto -10px;
    display: block;
  }
  .--sec4 .ns-sec-best__item .img1 {
    width: 82.0289%;
    margin: 19px 0 0 0;
  }
  .--sec4 .ns-sec-best__item .sub {
    position: absolute;
    width: 28.5%;
    top: 59%;
    left: 0.2%;
  }
  .--sec4 .ns-sec-best__item .sub img {
    position: relative;
    width: 100%;
  }
  .--sec4 .ns-sec-best__item .sub p {
    line-height: 1.4;
    font-size: 11px;
    margin-top: 6px;
  }
  .--sec6 .--best1 .ns-sec-best__item .img1 {
    width: 108.6956%;
    margin: 6px 0 -6px -15px;
  }
  .--sec6 .--best1 .ns-sec-best__item .img2 {
    position: absolute;
    top: 80%;
    left: 0;
  }
  .--sec6 .--best2 .ns-sec-best__item .img1 {
    width: 108.6956%;
    margin: 0 0 5px -15px;
  }
  .--sec6 .--best2 .ns-sec-best__item .img2 {
    position: absolute;
    top: 52%;
    left: 0;
  }
  .--sec6 .--best3 .ns-sec-best__item .img1 {
    width: 63.1884%;
    margin: 0 0 21px 23%;
  }
  .--sec7 .ns-sec-best__item .img1 {
    width: 79.71%;
    margin: 28px 0 26px 10%;
  }
}
.ns-sec-best__catch {
  position: absolute;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-start;
  align-items: flex-start;
  line-height: 23px;
  font-size: 20px;
  font-weight: 700;
  font-feature-settings: normal;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best__catch {
    line-height: 20px;
    font-size: 18px;
  }
}
.--sec2 .ns-sec-best__catch {
  top: 1px;
  right: 98px;
}
@media only screen and (max-width: 768px) {
  .--sec2 .ns-sec-best__catch {
    top: 29px;
    right: 30px;
  }
}
.--sec3 .ns-sec-best__catch {
  top: 10px;
  right: 66px;
}
@media only screen and (max-width: 768px) {
  .--sec3 .ns-sec-best__catch {
    line-height: 19px;
    top: 16px;
    right: 0;
  }
}
.--sec4 .ns-sec-best__catch {
  top: -10px;
  left: 98px;
}
@media only screen and (max-width: 768px) {
  .--sec4 .ns-sec-best__catch {
    top: 39px;
    left: auto;
    right: 20px;
  }
}
.--sec6 .ns-sec-best__catch {
  top: -24px;
  right: 98px;
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-best__catch {
    position: relative;
    width: max-content;
    top: auto;
    left: 0;
    right: 0;
    margin: 18px auto 0;
  }
}
.--sec7 .ns-sec-best__catch {
  top: 4px;
  left: 82px;
}
@media only screen and (max-width: 768px) {
  .--sec7 .ns-sec-best__catch {
    top: 36px;
    left: auto;
    right: 14px;
  }
}
.ns-sec-best__catch > span {
  position: relative;
  display: block;
  width: 33px;
  color: #fff;
  padding: 7px 0 5px;
  clip-path: inset(0 0 100%);
  z-index: 1;
}
.ns-sec-best__catch > span::before {
  position: absolute;
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: var(--color-main);
  top: 0;
  left: 0;
  z-index: -1;
}
.ns-sec-best__catch > span > .block {
  display: block;
}
.ns-sec-best__catch > span > .rot {
  display: inline-block;
  transform: rotate(90deg);
}
.ns-sec-best__catch > span > .mar {
  display: block;
  line-height: 1;
  text-align: right;
  transform: translate(4px, -8px);
}
.ns-sec-best__catch > span > .low {
  display: block;
  margin: -0.2em -0.3em 0 0;
}
.ns-sec-best__catch > span + span {
  margin-right: 3px;
}
.is-show > .ns-sec-best__catch > span {
  animation: best_catch 1s cubic-bezier(0.16, 1, 0.3, 1) 0.6s forwards;
}
.is-show > .ns-sec-best__catch > span:nth-of-type(2) {
  animation-delay: 1s;
}
.is-show > .ns-sec-best__catch > span:nth-of-type(3) {
  animation-delay: 1.4s;
}
@keyframes best_catch {
  0% {
    clip-path: inset(0 0 100%);
  }
  99% {
    clip-path: inset(0 0 0%);
  }
  100% {
    clip-path: none;
  }
}
.ns-sec-best__title {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100px;
  line-height: 1.56;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.06em;
  margin-top: 19px;
  padding-bottom: 4px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best__title {
    line-height: 1.62;
    font-size: 16px;
    letter-spacing: 0;
    min-height: 80px;
    margin-top: 0;
    padding-top: 6px;
  }
}
.--sec4 .ns-sec-best__title {
  font-size: 18px;
  letter-spacing: 0.02em;
  margin-top: 24px;
}
@media only screen and (max-width: 768px) {
  .--sec4 .ns-sec-best__title {
    font-size: 16px;
    margin-top: 21px;
  }
}
.--sec6 .--best1 .ns-sec-best__title {
  margin-top: 23px;
}
.ns-sec-best__title::before, .ns-sec-best__title::after {
  pointer-events: none;
  position: absolute;
  content: "";
  display: block;
  width: 30px;
  height: 30px;
}
.ns-sec-best__title::before {
  border-top: 1px solid var(--color-main);
  border-right: 1px solid var(--color-main);
  top: 0;
  right: 0;
}
.ns-sec-best__title::after {
  border-bottom: 1px solid var(--color-main);
  border-left: 1px solid var(--color-main);
  bottom: 0;
  left: 0;
}
.ns-sec-best__lead {
  line-height: 2;
  font-family: var(--font-sub-jp);
  font-size: 16px;
  text-align: justify;
  font-feature-settings: normal;
  margin-top: 18px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best__lead {
    font-size: 14px;
    letter-spacing: -0.02em;
    margin-top: 14px;
  }
}
@media only screen and (min-width: 769px) {
  .--sec4 .ns-sec-best__lead {
    letter-spacing: -0.055em;
    margin-top: 22px;
  }
  .--sec6 .--best1 .ns-sec-best__lead {
    margin-top: 23px;
  }
}
.ns-sec-best__lead a {
  display: inline;
  color: var(--color-main);
  text-decoration: underline !important;
}
.ns-sec-best .ns-btn {
  margin: 15px auto 0;
}
.ns-sec-best .ns-list-link {
  margin-top: 27px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-best .ns-list-link {
    margin-top: 32px;
  }
}
.ns-sec-best.--sec6 .ns-list-link {
  margin-top: 32px;
}

/*----------------------------------------------------------------
* sec-checklist
----------------------------------------------------------------*/
.ns-sec-checklist {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  max-width: 780px;
  border: 1px solid var(--color-main);
  margin: 87px 0 0 60px;
  padding: 34px 40px 37px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-checklist {
    display: block;
    max-width: 260px;
    margin: 26px auto 0;
    padding: 31px 0 44px;
  }
}
.ns-sec-checklist::before, .ns-sec-checklist::after {
  pointer-events: none;
  position: absolute;
  content: "";
  display: block;
  z-index: 1;
}
.ns-sec-checklist::before {
  width: 34px;
  height: 34px;
  background: #fff;
  border-top: 1px solid var(--color-main);
  border-left: 1px solid var(--color-main);
  bottom: -1px;
  right: -1px;
}
.ns-sec-checklist::after {
  width: 48px;
  height: 1px;
  background: var(--color-main);
  bottom: 15px;
  right: -8px;
  transform: rotate(-45deg);
}
.ns-sec-checklist__title {
  width: 100%;
  font-family: var(--font-sub-en);
  font-size: 18px;
  letter-spacing: 0.08em;
  text-align: center;
}
.ns-sec-checklist__list {
  flex: 1 0;
  display: grid;
  grid-template-rows: repeat(6, 1fr);
  grid-template-columns: 185px 1fr;
  gap: 24px 0;
  grid-auto-flow: column;
  font-family: var(--font-sub-jp);
  font-size: 15px;
  font-feature-settings: normal;
  letter-spacing: 0.01em;
  margin-top: 31px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-checklist__list {
    grid-template-rows: repeat(11, 1fr);
    grid-template-columns: 1fr;
    margin: 42px 0 0 41px;
  }
}
.ns-sec-checklist__list .ns-checkbox {
  margin-right: 14px;
}
.ns-sec-checklist__illust {
  width: 47%;
  margin-top: 27px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-checklist__illust {
    width: 76%;
    margin: 27px auto 0;
  }
}

/*----------------------------------------------------------------
* sec-head
----------------------------------------------------------------*/
.ns-sec-head {
  display: grid;
  grid-template-columns: 278px 1fr;
  padding-left: 60px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head {
    display: block;
    padding: 0 15px;
  }
}
.ns-sec-head__illust {
  position: relative;
  grid-column: 2/3;
  grid-row: 1/5;
  mix-blend-mode: multiply;
  z-index: 0;
}
.ns-sec-head__illust img {
  max-width: none;
}
@media only screen and (min-width: 769px) {
  .ns-sec-head__illust img {
    position: absolute;
  }
  .--sec1 .ns-sec-head__illust img {
    width: 116.548%;
    top: 9.7%;
    left: 2.5%;
  }
  .--sec2 .ns-sec-head__illust img {
    width: 112.4555%;
    top: 15.5%;
    left: -1.5%;
  }
  .--sec3 .ns-sec-head__illust img {
    width: 148.39857%;
    top: 17.5%;
    left: 0.5%;
  }
  .--sec4 .ns-sec-head__illust img {
    width: 112.9893%;
    top: 11%;
    left: 3.2%;
  }
  .--sec5 .ns-sec-head__illust img {
    width: 113.879%;
    top: 18%;
    left: 4.5%;
  }
  .--sec6 .ns-sec-head__illust img {
    width: 98.3985%;
    top: 29.5%;
    left: 8%;
  }
  .--sec7 .ns-sec-head__illust img {
    width: 110.4982%;
    top: 0.8%;
    left: -0.4%;
  }
}
@media only screen and (max-width: 768px) {
  .--sec1 .ns-sec-head__illust img {
    width: 111.1449%;
    margin: 3px -2px -7px -14px;
  }
  .--sec2 .ns-sec-head__illust img {
    width: 100.2898%;
    margin: -6px 0 -4px -7px;
  }
  .--sec3 .ns-sec-head__illust img {
    width: 140.5797%;
    margin: 8px 0 -8px -23px;
  }
  .--sec4 .ns-sec-head__illust img {
    width: 92.4637%;
    margin: 16px 0 17px 12px;
  }
  .--sec5 .ns-sec-head__illust img {
    width: 103.1884%;
    margin: -1px 0 -4px -5px;
  }
  .--sec6 .ns-sec-head__illust img {
    width: 95.942%;
    margin: 12px 0 17px 2%;
  }
  .--sec7 .ns-sec-head__illust img {
    width: 107.7649%;
    margin: -3px 0 -4px -14px;
  }
}
.ns-sec-head__time {
  font-family: var(--font-sub-en);
  font-size: 48px;
  letter-spacing: -0.02em;
  text-align: center;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__time {
    font-size: 40px;
  }
}
.--sec1 .ns-sec-head__time {
  padding-top: 77px;
}
@media only screen and (max-width: 768px) {
  .--sec1 .ns-sec-head__time {
    padding-top: 35px;
  }
}
.--sec2 .ns-sec-head__time {
  padding-top: 73px;
}
@media only screen and (max-width: 768px) {
  .--sec2 .ns-sec-head__time {
    padding-top: 33px;
  }
}
.--sec3 .ns-sec-head__time {
  padding-top: 92px;
}
@media only screen and (max-width: 768px) {
  .--sec3 .ns-sec-head__time {
    padding-top: 41px;
  }
}
.--sec4 .ns-sec-head__time {
  padding-top: 92px;
}
@media only screen and (max-width: 768px) {
  .--sec4 .ns-sec-head__time {
    padding-top: 39px;
  }
}
.--sec5 .ns-sec-head__time {
  padding-top: 86px;
}
@media only screen and (max-width: 768px) {
  .--sec5 .ns-sec-head__time {
    padding-top: 39px;
  }
}
.--sec6 .ns-sec-head__time {
  padding-top: 88px;
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-head__time {
    padding-top: 42px;
  }
}
.--sec7 .ns-sec-head__time {
  padding-top: 77px;
}
@media only screen and (max-width: 768px) {
  .--sec7 .ns-sec-head__time {
    padding-top: 42px;
  }
}
.ns-sec-head__time span {
  display: inline-block;
  vertical-align: top;
  margin: -4px 5px 0;
  animation: head_time 1s linear 0s infinite;
}
@keyframes head_time {
  0%, 49% {
    opacity: 1;
  }
  50%, 100% {
    opacity: 0;
  }
}
.ns-sec-head__title {
  position: relative;
  min-height: 62px;
  text-align: center;
  margin-top: 34px;
  padding-top: 1px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__title {
    width: 206px;
    min-height: 53px;
    margin: 22px auto 0;
    padding-top: 4px;
  }
}
.ns-sec-head__title::before, .ns-sec-head__title::after {
  pointer-events: none;
  position: absolute;
  content: "";
  display: block;
  width: 19px;
  height: 100%;
  border: 1px solid var(--color-main);
  top: 0;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__title::before, .ns-sec-head__title::after {
    width: 16px;
  }
}
.ns-sec-head__title::before {
  border-right: none;
  left: 0;
}
.ns-sec-head__title::after {
  border-left: none;
  right: 0;
}
.ns-sec-head__title span {
  display: block;
}
.ns-sec-head__title .jp {
  font-size: 32px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__title .jp {
    font-size: 24px;
  }
}
.--sec4 .ns-sec-head__title .jp {
  letter-spacing: -0.05em;
}
.ns-sec-head__title .en {
  font-family: var(--font-sub-en);
  font-size: 14px;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.065em;
  margin-top: 13px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__title .en {
    font-size: 10px;
    margin-top: 11px;
  }
}
.ns-sec-head__sub-title {
  line-height: 1.56;
  font-size: 20px;
  text-align: center;
  letter-spacing: 0.06em;
  margin-top: 28px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__sub-title {
    line-height: 28px;
    font-size: 18px;
    margin-top: 0;
  }
  .--sec4 .ns-sec-head__sub-title {
    letter-spacing: -0.04em;
  }
}
@media only screen and (min-width: 769px) {
  .--sec3 .ns-sec-head__sub-title {
    margin-top: 24px;
  }
  .--sec6 .ns-sec-head__sub-title {
    margin-top: 24px;
  }
}
.ns-sec-head__lead {
  position: relative;
  line-height: 2;
  font-family: var(--font-sub-jp);
  font-size: 16px;
  text-align: justify;
  font-feature-settings: normal;
  margin-top: 20px;
  z-index: 2;
}
@media only screen and (max-width: 768px) {
  .ns-sec-head__lead {
    font-size: 14px;
    margin-top: 8px;
  }
}
.--sec3 .ns-sec-head__lead {
  letter-spacing: -0.04em;
  margin-top: 18px;
}
@media only screen and (max-width: 768px) {
  .--sec3 .ns-sec-head__lead {
    letter-spacing: -0.055em;
    margin-top: 8px;
  }
}
@media only screen and (min-width: 769px) {
  .--sec4 .ns-sec-head__lead {
    margin-top: 17px;
  }
  .--sec6 .ns-sec-head__lead {
    margin-top: 17px;
  }
}
@media only screen and (max-width: 768px) {
  .--sec6 .ns-sec-head__lead {
    letter-spacing: -0.03em;
  }
}
.ns-sec-head__lead a {
  display: inline;
  color: var(--color-main);
  text-decoration: underline !important;
}
.ns-sec-head__lead .more {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 278px;
  height: 66px;
  color: var(--color-main);
  line-height: 1.56;
  font-size: 14px;
  font-weight: 500;
  text-align: center;
  text-decoration: none !important;
  border: 1px solid var(--color-main);
  border-radius: 1000px;
  margin: 17px auto 0;
  appearance: none;
  background: none;
  cursor: pointer;
}
@media only screen and (min-width: 769px) {
  .--sec6 .ns-sec-head__lead .more {
    margin-top: 22px;
  }
}

/*----------------------------------------------------------------
* sec-slider
----------------------------------------------------------------*/
.ns-sec-slider {
  position: relative;
  width: 500px;
  min-height: 550px;
  border: 1px solid var(--color-main);
  margin: 56px auto 0;
  z-index: 1;
}
@media only screen and (max-width: 768px) {
  .ns-sec-slider {
    width: 300px;
    min-height: 450px;
    margin-top: 33px;
  }
}
.ns-sec-slider::before, .ns-sec-slider::after {
  pointer-events: none;
  position: absolute;
  content: "";
  display: block;
  width: 48px;
  height: 96px;
  background: #fff;
}
.ns-sec-slider::before {
  border-right: 1px solid var(--color-main);
  top: -5px;
  left: -5px;
  transform: translate(-50%, -50%) rotate(45deg);
  clip-path: polygon(90% 0, 100% 0, 100% 100%, 90% 100%, 40% 50%);
}
.ns-sec-slider::after {
  border-left: 1px solid var(--color-main);
  bottom: -6px;
  right: -6px;
  transform: translate(50%, 50%) rotate(45deg);
  clip-path: polygon(0 0, 10% 0, 50% 50%, 10% 100%, 0% 100%);
}
.ns-sec-slider__title {
  font-size: 16px;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.02em;
  border-bottom: 1px solid var(--color-main);
  margin: 0 19px;
  padding: 19px 0 15px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-slider__title {
    font-size: 14px;
    padding: 24px 0 13px;
    margin: 0 12px;
  }
}
.ns-sec-slider__head {
  position: relative;
  font-size: 18px;
  font-weight: 700;
  text-align: center;
  border-bottom: 1px solid var(--color-main);
  margin: 0 19px;
  padding: 18px 0 13px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-slider__head {
    font-size: 16px;
    margin: 0 12px;
    padding: 18px 0 14px;
  }
}
.ns-sec-slider .ns-checkbox {
  position: absolute;
  left: 10px;
}
.ns-sec-slider__ph {
  display: block;
  padding: 26px 60px 0;
}
@media only screen and (max-width: 768px) {
  .ns-sec-slider__ph {
    padding: 38px 31px 0;
  }
}
.ns-sec-slider__nav {
  position: absolute;
  width: 100%;
  text-align: center;
  bottom: 35px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-slider__nav {
    bottom: 30px;
  }
}
.ns-sec-slider__nav .swiper-pagination-bullet {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: none;
  border: 1px solid var(--color-main);
  margin: 0 5px;
  opacity: 1;
}
.ns-sec-slider__nav .swiper-pagination-bullet-active {
  background: var(--color-main);
}
.ns-sec-slider__btn {
  position: absolute;
  width: 45px;
  top: 50%;
  z-index: 10;
}
.ns-sec-slider__btn--prev {
  left: 0;
  transform: translate(-50%, 3px);
}
.ns-sec-slider__btn--next {
  right: 0;
  transform: translate(50%, 3px);
}
.ns-sec-slider .swiper {
  overflow: hidden;
}

/*----------------------------------------------------------------
* sec-style
----------------------------------------------------------------*/
.ns-sec-style {
  position: relative;
  max-width: 780px;
  background: #f0f0f0;
  border-top: 1px solid var(--color-main);
  margin: 61px 0 0 60px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style {
    margin: 42px 0 0;
  }
}
.ns-sec-style__inner {
  padding: 46px 40px 56px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__inner {
    padding: 29px 15px 60px;
    overflow: hidden;
  }
  .ns-sec-style__inner::after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: 255px;
    background: linear-gradient(0deg, #f0f0f0 0%, #f0f0f0 50.98%, rgba(240, 240, 240, 0.9) 67.83%, rgba(240, 240, 240, 0.7) 93.1%, rgba(240, 240, 240, 0) 100%);
    bottom: 0;
    left: 0;
    opacity: 0;
    visibility: hidden;
    z-index: 1;
  }
  .is-hide .ns-sec-style__inner {
    height: 676px;
  }
  .is-hide .ns-sec-style__inner::after {
    opacity: 1;
    visibility: visible;
  }
}
.ns-sec-style p {
  line-height: 2;
  font-family: var(--font-sub-jp);
  font-size: 16px;
  text-align: justify;
  font-feature-settings: normal;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style p {
    font-size: 14px;
    letter-spacing: -0.02em;
  }
}
.ns-sec-style__title {
  position: absolute;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 340px;
  height: 32px;
  font-size: 18px;
  font-weight: 700;
  background: #fff;
  border: 1px solid var(--color-main);
  top: -17px;
  left: 0;
  right: 0;
  margin: auto;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__title {
    width: 275px;
  }
}
.ns-sec-style__lead {
  max-width: 515px;
  margin: 0 auto;
}
.ns-sec-style__style.--style1 {
  margin-top: 84px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__style.--style1 {
    margin-top: -9px;
  }
}
.ns-sec-style__style.--style2 {
  margin-top: 98px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__style.--style2 {
    margin-top: 4px;
  }
}
.ns-sec-style__style.--style3 {
  margin-top: 91px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__style.--style3 {
    margin-top: 18px;
  }
}
.ns-sec-style__info {
  display: flex;
  flex-direction: row-reverse;
  justify-content: space-between;
  align-items: stretch;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__info {
    display: block;
  }
}
.ns-sec-style__info__box {
  width: 278px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__info__box {
    width: auto;
  }
}
.ns-sec-style__info__box h4 {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 33px;
  font-size: 20px;
  background: #fff;
  margin-bottom: 16px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__info__box h4 {
    width: 230px;
    font-size: 18px;
    letter-spacing: -0.03em;
    margin: 0 auto 9px;
  }
}
.ns-sec-style__info__box a {
  display: inline;
  color: var(--color-main);
  text-decoration: underline !important;
}
.ns-sec-style__info__illust {
  position: relative;
  flex: 1 0;
}
.ns-sec-style__info__illust img {
  mix-blend-mode: multiply;
}
@media only screen and (min-width: 769px) {
  .ns-sec-style__info__illust img {
    position: absolute;
  }
  .--style1 .ns-sec-style__info__illust img {
    width: 86.2559%;
    top: -32.5%;
    left: 4%;
  }
  .--style2 .ns-sec-style__info__illust img {
    width: 94.7867%;
    top: -26.5%;
    left: 2.5%;
  }
  .--style3 .ns-sec-style__info__illust img {
    width: 97.8672%;
    top: -24.5%;
    left: 4.8%;
  }
}
@media only screen and (max-width: 768px) {
  .--style1 .ns-sec-style__info__illust {
    width: 83.1884%;
    margin: 19px 0 6px 6%;
  }
  .--style2 .ns-sec-style__info__illust {
    width: 93.33333%;
    margin: 13px 0 -2px 2.3%;
  }
  .--style3 .ns-sec-style__info__illust {
    width: 103.9%;
    margin: -17px 0 -15px -2%;
  }
}
.ns-sec-style__best {
  margin-top: 64px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best {
    margin-top: 7px;
  }
}
.--style2 .ns-sec-style__best {
  margin-top: 43px;
}
@media only screen and (max-width: 768px) {
  .--style2 .ns-sec-style__best {
    margin-top: 22px;
  }
}
.--style3 .ns-sec-style__best {
  margin-top: 50px;
}
@media only screen and (max-width: 768px) {
  .--style3 .ns-sec-style__best {
    margin-top: 30px;
  }
}
.ns-sec-style__best__catch {
  display: block;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  margin-top: 22px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__catch {
    margin-top: 19px;
  }
}
.ns-sec-style__best__catch::before, .ns-sec-style__best__catch::after {
  display: inline-block;
  content: "";
  width: 16px;
  height: 16px;
  vertical-align: middle;
  background: left top/100% auto no-repeat;
  margin-top: -2px;
}
.ns-sec-style__best__catch::before {
  background-image: url(/storage/brandsite/feature/img/131/mv_slash-l.png);
  margin-right: 24px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__catch::before {
    margin-right: 5px;
  }
}
.ns-sec-style__best__catch::after {
  background-image: url(/storage/brandsite/feature/img/131/mv_slash-r.png);
  margin-left: 20px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__catch::after {
    margin-left: 3px;
  }
}
.ns-sec-style__best__box {
  display: flex;
  justify-content: space-between;
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--color-main);
  margin-top: 27px;
  padding: 20px 0;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__box {
    display: block;
    margin-top: 23px;
    padding: 0 0 20px;
  }
}
.ns-sec-style__best__box .img {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 237px;
  border-right: 1px solid var(--color-main);
  padding: 0 8px 0 8px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__box .img {
    width: 305px;
    height: 268px;
    border-right: none;
    border-bottom: 1px solid var(--color-main);
    margin: 0 auto;
    padding: 0;
  }
  .ns-sec-style__best__box .img img {
    width: 265px;
  }
}
.ns-sec-style__best__box .info {
  flex: 1 0;
  padding: 12px 27px 13px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__box .info {
    padding: 32px 20px 13px;
  }
}
.ns-sec-style__best__box .info h5 {
  line-height: 1.56;
  font-size: 20px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 18px;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__box .info h5 {
    font-size: 16px;
  }
}
.ns-sec-style__best__box .info .ns-btn {
  margin: 20px auto 0;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__best__box .info .ns-btn {
    margin-top: 18px;
  }
}
.ns-sec-style .ns-list-link {
  max-width: 370px;
  margin: 49px auto 0;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style .ns-list-link {
    margin-top: 37px;
  }
}
.ns-sec-style__more {
  display: none;
}
@media only screen and (max-width: 768px) {
  .ns-sec-style__more {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 160px;
    height: 30px;
    font-size: 12px;
    border: 1px solid var(--color-main);
    border-radius: 1000px;
    bottom: 53px;
    left: 0;
    right: 0;
    margin: auto;
    opacity: 0;
    visibility: hidden;
    z-index: 2;
  }
  .ns-sec-style__more::before, .ns-sec-style__more::after {
    position: absolute;
    content: "";
    display: block;
    width: 10px;
    height: 1px;
    background: var(--color-main);
    top: 50%;
  }
  .ns-sec-style__more::before {
    left: 11px;
  }
  .ns-sec-style__more::after {
    left: 11px;
    transform: translateY(-48%) rotate(90deg);
  }
  .is-hide .ns-sec-style__more {
    opacity: 1;
    visibility: visible;
  }
}

/*----------------------------------------------------------------
* sec
----------------------------------------------------------------*/
.ns-sec {
  background: url(/storage/brandsite/feature/img/131/sec_dot.png) center top/8.5px auto repeat-x;
}
.ns-sec.--sec1 {
  margin-top: 41px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec1 {
    margin-top: 28px;
  }
}
.ns-sec.--sec2 {
  margin-top: 64px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec2 {
    margin-top: 45px;
  }
}
.ns-sec.--sec3 {
  margin-top: 77px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec3 {
    margin-top: 41px;
  }
}
.ns-sec.--sec4 {
  margin-top: 96px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec4 {
    margin-top: 44px;
  }
}
.ns-sec.--sec5 {
  margin-top: 66px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec5 {
    margin-top: 44px;
  }
}
.ns-sec.--sec6 {
  margin-top: 59px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec6 {
    margin-top: 0;
  }
}
.ns-sec.--sec7 {
  margin-top: 68px;
}
@media only screen and (max-width: 768px) {
  .ns-sec.--sec7 {
    margin-top: 37px;
  }
}

/*----------------------------------------------------------------
* side
----------------------------------------------------------------*/
.ns-side {
  position: sticky;
  width: max-content;
  font-size: 13px;
  font-weight: 700;
  top: 50svh;
  left: 0;
  transform: translateY(-50%);
  z-index: 100;
}
@media only screen and (max-width: 768px) {
  .ns-side {
    display: none;
  }
}
.ns-side li {
  margin: 25px 0;
}
.ns-side a {
  position: relative;
  display: block;
  color: var(--color-main);
  padding-left: 29px;
  transition: padding 0.6s ease;
}
.ns-side a::before {
  position: absolute;
  content: "";
  display: block;
  width: 20px;
  height: 1px;
  background: var(--color-main);
  top: 50%;
  left: 0;
  transition: width 0.6s ease;
}
.ns-side a.is-current {
  padding-left: 49px;
}
.ns-side a.is-current::before {
  width: 40px;
}
.ns-side__time {
  letter-spacing: 0.05em;
}
.ns-side__item {
  letter-spacing: 0.065em;
  margin-left: 8px;
}



a.ns-inlinelink {
  display: inline;
  color: var(--color-main);
  text-decoration: underline !important;
}

/*----------------------------------------------------------------
* wrapper
----------------------------------------------------------------*/
.ns-wrapper {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/*----------------------------------------------------------------
* modal
----------------------------------------------------------------*/
[data-modal-id] {
  cursor: pointer;
}
.c-modal-list {
  display: none;
}
.c-modal-wrapper {
  position: fixed;
  z-index: 999999;
  top: 0;
  left: 0;
  height: 100%;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.3);
  
  display: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.c-modal-wrapper.is-active {
  opacity: 1;
  visibility: visible;
}
.c-modal-view {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
}

.c-modal-view__contents {
  position: relative;
  background-color: #fff;
  border-radius: 10px;
  width: calc(100% - 60px);
  max-height: 80%;
  display: flex;
  margin: 0 auto;
  padding: 0 50px;
  max-width: 750px;
  
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.c-modal-view__contents >:first-child {
  margin-top: 0;
}
.is-active .c-modal-view__contents {
  opacity: 1;
  transform: translateY(0);
}
.c-modal-view__block {
  padding: 50px 0;
  width: 100%;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-width: none;
}
.c-modal-view__block::-webkit-scrollbar {
  display:none;
}
.c-modal__close {
  position: absolute;
  z-index: 5;
  top: 10px;
  right: 10px;
  cursor: pointer;
  display: block;
  width:40px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background-color: var(--color-main);
  transition: opacity 0.3s ease;
}
.c-modal__close:before,
.c-modal__close:after {
  position: absolute;
  z-index: 2;
  top: calc(50% - 1px);
  right: 20%;
  content:"";
  display: block;
  width: 60%;
  height: 1px;
  background-color: #fff;
  transform: rotate(-45deg);
}
.c-modal__close:after {
  transform: rotate(45deg);
}
.c-modal__close:hover {
  opacity: 0.6;
}

@media only screen and (max-width: 768px) {
  .c-modal__close {
    width:30px;
  }
  .c-modal-view__contents {
    padding: 0 30px;
    width: calc(100% - 60px);
  }
  .c-modal-view__block {
    padding: 30px 0;
  }
  
}


.ns-mat {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.ns-mat__hr {
  flex-shrink: 0;
  content: "";
  display: block;
  width: 1px;
  border-left: 1px solid var(--color-main);
}
.ns-mat__title {
  line-height: 1.56;
  font-size: 20px;
  text-align: center;
  letter-spacing: 0.06em;
}
.ns-mat__image {
  max-width: 300px;
  width: 100%;
  margin: 0px auto;
}

.ns-mat__paragraph {
  position: relative;
  margin-top: 10px;
  font-family: var(--font-sub-jp);
  font-size: 14px;
  font-feature-settings: normal;
  text-align: justify;
  line-height: 1.8;
}

@media only screen and (max-width: 768px) {
  .ns-mat {
    flex-direction: column;
    gap: 20px;
  }
  .ns-mat__hr {
    height: 1px;
    width: 100%;
    border-left: none;
    border-top: 1px solid var(--color-main);
  }
  .ns-mat__title {
    font-size: 20px;
  }
  .ns-mat__image {
    max-width: 300px;
  }
  
  .ns-mat__paragraph {
    margin-top: 10px;
    font-size: 14px;
  }
}