@charset "UTF-8";

/*
----------------------------------------*/
.clearfix:after {
  content: ".";
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
}

.clearfix {
  min-height: 1px;
}

* html .clearfix {
  height: 0px !important;
}

body {
  margin: 0;
  padding: 0;
  background: #21364e;
  color: #fff !important;
}

#special {
  /*overflow-x : hidden !important;*/
}

a {
  transition: .2s;
  border: 0 !important;
}

a:hover {
  text-decoration: none !important;
}

.special_fixed {
  position: fixed !important;
  top: -137px;
  z-index: 10000;
}

.special_fixed:hover {}

.hidden {
  overflow: hidden;
}

.block {
  display: block;
}

a {
  text-decoration: none !important;
}

#special {
  font-size: 14px;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  color: #fff !important;
  list-style: none;
  line-height: 2.0em;
}

img {
  vertical-align: top;
  max-width: 100%;
  height: auto;
}

a img {
  border: 0;
}

ul {
  margin: 0;
  padding: 0;
}

li {
  list-style: none;
  margin: 0;
  padding: 0;
}

.pc {
  display: none;
}

.sp {
  display: block;
}

@media screen and (min-width: 1000px) {
  #special {
    width: 100% !important;
    margin: 0 auto !important;
  }

  .pc {
    display: block !important;
  }

  .sp {
    display: none !important;
  }
}


/* PCサイドナビ(通常)
------------------------------------------------------------*/
.side-nav {
  position: fixed;
  bottom: 0;
  z-index: 100 !important;
}

.side-nav ul {
  display: flex;
  flex-direction: row;
  padding: 0;
  margin: 0;
}

.side-nav ul li {
  margin: 0;
  padding: 10px 0 5px 0;
  height: 25px;
  list-style-type: none;
  width: calc(100% / 9);
  transition: all .3s;
}

.side-nav .special_sidenav li a img:hover {
  transform: scale(1.05, 1.05) !important;
}

@media screen and (min-width: 1000px) {
  .side-nav {
    top: 7%;
    right: 0px;
    z-index: 100;
    height: 320px;
  }

  .side-nav ul {
    flex-direction: column;
    margin: 0;
    padding: 0;
  }

  .side-nav ul li {
    width: 100%;
    margin-bottom: 15px;
  }

  .side-nav ul li:last-child {
    margin-bottom: 0 !important;
  }

  .side-nav ul a img {
    display: block;
    width: 90px;
    padding: 0 0 3px 0;
  }

  .side-nav ul li:hover {
    opacity: 0.5;
  }

  .side-nav .header__link.is-active img {
    opacity: 1
  }

  .side-nav .header__link.is-active::after {}
}

/* MOVIE
----------------------------------------*/
.movie {
  position: relative;
  margin: 5% auto 20% auto;
}

.movie .video-container {
  position: relative;
  width: 60vw;
  height: calc(60vw* 16/9);
  overflow: hidden;
  margin: 0 auto !important;
  padding: 0 !important;
  z-index: 2;
}

.movie .video-container video {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.movie #videoPlaceholder {
  width: 100%;
  height: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1;
  display: none;
}

@media (min-width: 1000px) {
  .movie {
    padding-bottom: 0;
    margin: 0;
  }

  .movie .video-container {
    position: relative;
    width: 270px;
    height: calc(270px* 16 / 9);
    overflow: hidden;
    margin: 0 auto !important;
    padding: 0 !important;
  }

  .movie .video-container video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
}

/* アコーディオン(ブランドで見る＆サイズで見る)
----------------------------------------*/
.linkarea {
  margin-bottom: 10%;
}

.accordion {
  width: 100%;
  text-align: center !important;
}

.accordion2 {
  width: 100%;
  text-align: center !important;
}

.acmenu {
  margin-left: 5% !important;
  width: 90%;
  font-size: 15px;
  text-align: center;
  margin-bottom: 5%;
  border: 1px solid #fff;
}

.acmenu ul {
  padding: 0 !important;
  margin: 0 !important;
}

.acmenu ul li {
  list-style: none !important;
  border: 1px solid #fffffff !important;
  background: transparent;
  color: #fff !important;
}

.acmenu ul li:first-child,
.acmenu ul li:nth-child(2),
.acmenu ul li:nth-child(3),
.acmenu ul li:nth-child(4),
.acmenu ul li:nth-child(5),
.acmenu ul li:nth-child(6) {
  background: #21364e;
  border: none !important;
}

.acmenu ul li a {
  display: block;
  color: #fff !important;
  cursor: pointer;
  line-height: 50px;
  font-size: 15px;
  text-align: center !important;
}

.acmenu li a:after,
.acmenu li a.active:after {
  position: absolute;
  color: #fff !important;
}

.acmenu li a:after {}

.acmenu ul li a:hover {
  background: transparent !important;
}

.acmenu li a.active:after {}

.acmenu>ul>li>ul {
  display: none;
}

.acsubmenu li {
  width: 100%;
  display: block;
  height: 50px;
  position: relative;
  line-height: 50px;
  font-size: 14px;
  margin-bottom: 1px;
  text-align: center !important;
}

@media screen and (min-width: 1000px) {
  .linkarea {
    width: 1000px;
    height: 150px;
    position: relative;
    margin: 0 auto !important;
  }

  .linkarea .link1 {
    position: absolute;
    left: 50px;
    width: 400px;
  }

  .linkarea .link2 {
    position: absolute;
    right: 50px;
    width: 400px;
  }

  .acmenu {
    margin-left: 0 !important;
    width: 400px;
    font-size: 14px;
    text-align: center;
  }

  .acmenu ul li a {
    display: block;
    color: #fff !important;
    cursor: pointer;
    line-height: 50px;
    font-size: 16px;
    text-align: center !important;
  }
}

/* FOOTER
----------------------------------------*/
.btnarea {
  width: 90%;
  margin: 0 auto;
  margin: 0 5% 20% 5%;
  letter-spacing: 0.5px;
}

.button {
  margin: 0 auto 5% auto;
  width: 100%;
  padding: 3% 0;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 1em;
  color: #fff;
  cursor: pointer;
  position: relative;
  font-weight: 400;
  font-style: normal;
}

.button:hover {}

.btnarrow {
  position: absolute;
  right: 20px !important;
  top: 17px !important;
  width: 35px;
  height: 8px;
  border-bottom: 1px solid #fff;
  border-right: 1px solid #fff;
  transform: skew(45deg);
}

.btnarrow.short {
  width: 20px;
}

.button.comingsoon:hover {
  cursor: default;
  background: #fff !important;
}

.btnarea .button {
  border: none !important;
}

.itembtnarea .button {
  width: 97% !important;
  margin: 0 auto;
  border-bottom: 10px solid #eeeeee !important;
  border-top: none !important;
  border-left: none !important;
  border-right: none !important;
  text-align: left !important;
  padding-bottom: 0 !important;
  justify-content: inherit !important;
  padding-left: 3% !important;
  font-size: 1.2em;
  line-height: 0.8em;
  font-feature-settings: "palt";
  letter-spacing: 1px;
}

@media screen and (min-width: 1000px) {
  .btnarea {
    margin: 0 auto 80px auto !important;
  }

  .button {
    margin: 20px auto 0 auto;
    width: 500px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 16px;
    color: #fff;
    cursor: pointer;
    position: relative;
    padding: 0;
  }

  .btnarrow {
    position: absolute;
    right: 40px !important;
    top: 17px !important;
    width: 50px;
    height: 8px;
    border-bottom: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: skew(45deg);
  }

  .btnarrow.sustainablearrow,
  .btnarrow.instagramarrow {
    top: 27px !important;
    color: #fff;
    border-bottom: 1px solid #fff !important;
    border-right: 1px solid #fff !important;
  }

  .button:hover .btnarrow.sustainablearrow,
  .button:hover .btnarrow.instagramarrow {
    top: 27px !important;
  }

  .button:hover {
    /*background:#ffffff;*/
  }

  .button:hover .btnarrow {
    position: absolute;
    right: 20px !important;
    top: 17px !important;
    width: 50px;
    height: 8px;
    border-bottom: 1px solid #fff;
    border-right: 1px solid #fff;
    transform: skew(45deg);
  }

  .itembtnarea .button {
    width: 380px !important;
    line-height: 0.5em !important;
    margin: 0 auto !important;
    height: 30px !important;
  }

  .itembtnarea .button .btnarrow {
    top: 12px !important;
  }
}

#otherarea {
  width: 100%;
  margin: 0 auto !important;
  padding-top: 10% !important;
  padding-bottom: 30px !important;
}

@media screen and (min-width: 1000px) {
  #otherarea {
    width: 100%;
    margin: 0 auto !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

.infoarea {
  text-align: center;
  width: 100%;
  color: #fff;
}

.infoarea p {
  margin: 5% auto 3% auto;
  text-align: center;
  width: 100%;
}

.infoarea .btnarea .button {
  color: #fff;
  background-color: transparent !important;
  border: 1px solid #fff !important;
}

.infoarea .btnarea .btnarrow {
  right: 15px !important;
}

@media screen and (min-width: 1000px) {
  .infoarea {
    width: 1000px;
    margin: 0 auto !important;
  }

  .infoarea .ttl {
    width: 500px;
    margin: 0 auto !important;
  }

  .infoarea p {
    margin: 20px auto 0 auto;
    text-align: center;
    width: 100%;
    font-size: 16px;
  }

  .infoarea .btnarea {
    margin: 0 auto 80px auto !important;
  }

  .infoarea .btnarea .btnarrow {
    right: 40px !important;
  }
}

@media screen and (min-width: 1000px) {
  .information {
    display: flex;
    width: 1150px;
    margin: 80px auto 0 auto;
  }
}

.sustainable {
  background: transparent;
  border: 1px solid #fff;
  text-align: center;
  padding: 10% 5% 1% 5%;
  width: 80%;
  margin: 0 auto;
}

.sustainable p {
  font-size: 1em;
  margin: 5% 0;
  line-height: 1.8em;
  color: #fff;
}

.sustainable .btnarea {
  margin-bottom: 10% !important;
}

.sustainable .button {
  border: none !important;
}

@media screen and (min-width: 768px) and (max-width: 999px) {
  .sustainable p {
    font-size: 1.4em;
  }
}

@media screen and (min-width: 1000px) {
  .sustainable {
    width: 550px;
    height: 220px;
    margin: 0 auto 50px auto;
    padding: 40px 0 0 0;
  }

  .sustainable img {
    width: 450px;
    margin: 0 50px;
  }

  .sustainable p {
    font-size: 18px;
    margin: 20px 0 0 0;
    line-height: 1.6;
  }

  .sustainable .btnarea {
    margin: 0 auto !important;
  }

  .sustainable .button {
    padding-top: 10px;
    padding-bottom: 0 !important
  }
}

.instagram {
  background: transparent;
  border: 1px solid #fff;
  text-align: center;
  padding: 10% 5% 1% 5%;
  margin: 10% 5%;
}

.instagram .instagramttl {
  width: 25%;
  margin: 0 auto 5% auto;
}

.instagram p {
  font-size: 1.1em;
  margin: 5% 0;
  line-height: 1.8em;
  color: #fff;
}

@media screen and (min-width: 768px) and (max-width: 999px) {
  .instagram p {
    font-size: 1.4em;
  }
}

@media screen and (min-width: 1000px) {
  .instagram {
    width: 550px;
    margin: 0 auto 100px auto;
    padding: 40px 0 0 0;
    height: 220px;
  }

  .instagram .instagramttl {
    width: 130px;
    margin: 0 150px;
  }

  .instagram p {
    font-size: 18px;
    margin: 30px 0 0 0;
  }
}

.page-top a {
  width: 30px;
  position: fixed;
  bottom: 40px;
  right: 15px;
  padding: 10px;
  display: block;
  z-index: 1000;
}

.page-top a:hover {
  bottom: 60px;
}

.copyright {
  text-align: center;
  font-size: 10px;
  padding-bottom: 0;
  /*padding-bottom:50px;*/
  margin: 40px auto 0 auto;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

@media screen and (min-width: 1000px) {
  .page-top a {
    width: 50px;
    position: fixed;
    bottom: 15px;
    right: 15px;
    padding: 10px;
    display: block;
  }

  .page-top a:hover {
    bottom: 20px;
  }

  .copyright {
    padding-bottom: 20px;
  }
}

.bn_vol {
  width: 90%;
  margin: 10% 5% 20% 5% !important;
}

.bn_vol_txt {
  font-size: 18px;
  /*font-size: 15px;*/
  color: #fff;
  text-align: center;
  margin: 0;
  /*font-weight: bold;*/
}

.bn_vol .bn_cs {
  opacity: .6;
}

@media screen and (min-width: 1000px) {
  .bn_vol {
    width: 520px;
    margin: 0 auto 40px auto !important;
  }

  .bn_vol_txt {
    font-size: 18px;
    /*font-size: 16px;*/
    color: #fff;
  }
}

/* クレジット関係
-------------------------------------------------*/
.creditlist {
  margin: 0 auto;
  padding: 0;
  width: 70%;
}

.creditlist ul {
  margin: 0 15%;
  padding: 0;
  width: 70%;
}

.creditlist li {
  margin: 0;
  padding: 0;
  color: #000;
}

.creditlist li a {
  display: flex;
  align-items: center;
  padding: 0 0;
  text-decoration: none !important;
  color: inherit;
}

.creditlist li a:hover {
  text-decoration: none !important;
}

.creditlist li .item_name {
  width: 62%;
  text-align: left !important;
}

.creditlist li .item_price {
  width: 38%;
  text-align: right;
}

.creditlist li .item_name,
.creditlist li .item_price {
  color: #fff !important;
  font-size: 0.85em;
}

.creditlist li .item_price small {
  font-size: 0.7em;
}

.creditlist.black {
  width: 70%;
  margin: 0 0 0 30%;
}

.creditlist.black li .item_name,
.creditlist.black li .item_price {
  color: #fff !important;
  font-size: 0.85em;
}

@media screen and (max-width: 414px) {
  .creditlist.black {
    width: 80%;
    margin: 0 0 0 20%;
  }

  .creditlist li .item_name {
    width: 58%;
  }

  .creditlist li .item_price {
    width: 42%;
  }
}

/*buybtnbox
----------------------------------------*/
.creditlist .buybtnbox {
  background-color: transparent;
  width: 20%;
  display: flex;
  align-items: center;
  margin: 0 0 0 5%;
  color: #004850;
}

.buybtnbox {
  display: flex;
  -webkit-column-gap: 1rem;
  -moz-column-gap: 1rem;
  column-gap: 1rem;
  width: 6em;
  margin: 0 0 0 5%;
  color: #004850;
}

.buybtn {
  position: relative;
  display: flex !important;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  justify-content: center;
  height: 2em;
}

.buybtnText {
  font-size: 12px;
  letter-spacing: 0 !important;
  -webkit-transform: translateX(1em);
  transform: translateX(1em);
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s;
  margin: 0 auto !important;
  text-align: center;
  color: #fff;
  text-decoration: underline;
}

.buybtnArrow {
  overflow: hidden;
  width: 20px;
  margin-left: 5px;
}

.buybtnArrow img {
  display: block;
  -webkit-transform: translateX(-100%);
  transform: translateX(-100%);
  -webkit-transition: -webkit-transform 0.5s;
  transition: -webkit-transform 0.5s;
  transition: transform 0.5s;
  transition: transform 0.5s, -webkit-transform 0.5s
}

.buyarrow {
  width: 20px;
}

.creditlist li a:hover .buybtnText {
  -webkit-transform: translateX(0);
  transform: translateX(0)
}

.creditlist li a:hover .buybtnArrow img {
  -webkit-transform: translateX(0);
  transform: translateX(0)
}

@media screen and (min-width: 1000px) {
  .creditlist {
    margin: 20px auto 0 auto;
    width: 350px;
  }

  .flex .creditlist {
    margin: calc(100vw*0.33) 0 0 0;
    padding: 0;
    width: 380px;
  }

  .creditlist li .item_name,
  .creditlist li .item_brand,
  .creditlist li .item_price {
    font-size: 1em;
  }

  .creditlist li .item_name {
    width: 30% !important;
  }

  /* mainbox外のcreditlistのみ2カラムレイアウトを適用 */
  .stylingbox>.creditlist {
    margin: 20px auto 0 auto;
    width: 700px;
    /* 2カラム分に拡張 */
    display: grid;
    grid-template-columns: 1fr 1fr;
    /* 左右2列 */
    column-gap: 85px;
    /* 左右の間隔 */
    row-gap: 0;
    align-items: start;
    /* 上揃え */
  }

  /* デフォルト: 3点の場合は左1、右2 / 4点の場合は左2、右2 */
  /* HTML順序: 1,2,3 → 表示: 左上1, 右上2, 右下3 */
  .stylingbox>.creditlist li:nth-child(1) {
    grid-column: 1;
    /* 左列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist li:nth-child(2) {
    grid-column: 2;
    /* 右列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist li:nth-child(3) {
    grid-column: 2;
    /* 右列 */
    grid-row: 2;
    /* 2行目 */
  }

  .stylingbox>.creditlist li:nth-child(4) {
    grid-column: 1;
    /* 左列 */
    grid-row: 2;
    /* 2行目 */
  }

  /* 5点以上の場合も自動的に左右に振り分け */
  .stylingbox>.creditlist li:nth-child(5) {
    grid-column: 1;
    grid-row: 3;
  }

  .stylingbox>.creditlist li:nth-child(6) {
    grid-column: 2;
    grid-row: 3;
  }

  /* 柔軟なコントロール用のクラス */
  /* 3点で右1、左2にしたい場合: <ul class="creditlist reverse-3"> */
  /* HTML順序: 1,2,3 → 表示: 左上2,左下3,右上1 */
  .stylingbox>.creditlist.reverse-3 li:nth-child(1) {
    grid-column: 2;
    /* 右列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist.reverse-3 li:nth-child(2) {
    grid-column: 1;
    /* 左列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist.reverse-3 li:nth-child(3) {
    grid-column: 1;
    /* 左列 */
    grid-row: 2;
    /* 2行目 */
  }

  /* 4点で左3、右1にしたい場合: <ul class="creditlist split-3-1"> */
  /* HTML順序: 1,2,3,4 → 表示: 左上1,左中2,左下3,右上4 */
  .stylingbox>.creditlist.split-3-1 li:nth-child(1) {
    grid-column: 1;
    /* 左列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist.split-3-1 li:nth-child(2) {
    grid-column: 1;
    /* 左列 */
    grid-row: 2;
    /* 2行目 */
  }

  .stylingbox>.creditlist.split-3-1 li:nth-child(3) {
    grid-column: 1;
    /* 左列 */
    grid-row: 3;
    /* 3行目 */
  }

  .stylingbox>.creditlist.split-3-1 li:nth-child(4) {
    grid-column: 2;
    /* 右列 */
    grid-row: 1;
    /* 1行目 */
  }

  /* 4点で左1、右3にしたい場合: <ul class="creditlist split-1-3"> */
  /* HTML順序: 1,2,3,4 → 表示: 左上1,右上2,右中3,右下4 */
  .stylingbox>.creditlist.split-1-3 li:nth-child(1) {
    grid-column: 1;
    /* 左列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist.split-1-3 li:nth-child(2) {
    grid-column: 2;
    /* 右列 */
    grid-row: 1;
    /* 1行目 */
  }

  .stylingbox>.creditlist.split-1-3 li:nth-child(3) {
    grid-column: 2;
    /* 右列 */
    grid-row: 2;
    /* 2行目 */
  }

  .stylingbox>.creditlist.split-1-3 li:nth-child(4) {
    grid-column: 2;
    /* 右列 */
    grid-row: 3;
    /* 3行目 */
  }
}

@media screen and (max-width: 999px) {
  .buybtnbox {
    width: 5.5em;
    margin-left: 2%;
  }

  .buybtn {
    height: 1em;
  }

  .buybtnText {
    font-size: 0.9em;
    line-height: 1.25;
    letter-spacing: 0em;
    -webkit-transform: translateX(1em);
    transform: translateX(1em);
  }

  .buybtnArrow {
    width: 20px;
    margin-left: 2px;
  }
}


/* MV
----------------------------------------*/
#special_head {
  margin: 0 !important;
  padding: 0 !important;
  width: 100%;
  height: calc(100vw* 0.94);
  position: relative;
  overflow: hidden;
}

#special_head .logo {
  width: 34%;
  position: absolute;
  z-index: 10;
  left: 33%;
  top: 2%;
}

#special_head .mvmodel1 {
  width: 51%;
  position: absolute;
  top: 8%;
  z-index: 2;
}

#special_head .mvmodel2 {
  width: 47%;
  position: absolute;
  top: 7%;
  left: 30%;
  z-index: 4;
}

#special_head .mvmodel3 {
  width: 44%;
  position: absolute;
  top: 7%;
  right: 1%;
  z-index: 2;
}

#special_head .mvttl1 {
  position: absolute;
  z-index: 5;
  width: 92%;
  top: calc(100vw * 0.55);
  left: 4%;
}

#special_head .mvttl2 {
  position: absolute;
  z-index: 6;
  width: 30%;
  top: calc(100vw * 0.73);
  left: 35%;
}

.attention {
  margin-top: 3%;
}

@media screen and (min-width: 1000px) {
  .mv {
    width: 100%;
    height: calc(100vw*0.7142);
    display: block;
    overflow: hidden;
  }

  #special_head {
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    height: calc(100vw*0.785);
    position: relative;
  }

  #special_head .logo {
    width: 18%;
    position: absolute;
    z-index: 10 !important;
    top: 10px !important;
    left: 41% !important;
  }

  #special_head .mvmodel1 {
    width: 29.5%;
    left: 0;
  }

  #special_head .mvmodel2 {
    width: 34%;
    left: 19%;
  }

  #special_head .mvmodel3 {
    width: 28.6%;
    left: 48.8%;
  }

  #special_head .mvtext {
    font-size: 1.04rem;
    left: 7%;
    top: calc(100vw * 0.03);
  }

  #special_head .mvttl1 {
    width: 72%;
    top: calc(100vw * 0.03);
    left: 8%;
    z-index: 1;
  }

  #special_head .mvttl2 {
    width: 45%;
    top: calc(100vw * 0.03);
    left: 47%;
    z-index: 1;
  }

  .attention {
    width: 600px;
    margin: 20px auto 0 auto !important;
  }
}

/* Sceneタイトル
----------------------------------------*/
.moviebox {
  margin: 20% 0;
}

.textbox {
  padding: 0;
  font-feature-settings: "palt";
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
  width: 92%;
  margin: 0 0 7% 8%;
}

.textbox .textttl {
  display: inline-block;
  font-size: 1.6rem;
  background: #fff;
  padding: 2% 5%;
  color: #000;
}

.textbox .textttl-inner {
  background: transparent;
}

.textbox .vol {
  width: 20%;
  margin-top: 5%;
}

.textbox p {
  font-size: 0.92rem;
  line-height: 2.4;
  text-align: left;
  margin: 0;
}

@media screen and (max-width: 414px) {
  .textbox .textttl {
    font-size: 1.4rem;
  }
}

@media screen and (max-width: 393px) {
  .textbox p {
    font-size: 0.8em;
  }
}

@media screen and (min-width: 1000px) {
  .moviebox {
    display: flex;
    width: 800px;
    margin: 100px auto;
  }

  .textbox {
    padding: 0 !important;
    width: 530px;
    margin: 80px auto 0 0;
  }

  .textbox .textttl {
    font-size: 30px;
    margin: 0 auto 60px 0;
  }

  .textbox p {
    font-size: 20px;
    line-height: 2 !important;
  }
}

/* animation
----------------------------------------*/

/*fadeRightLeftMV(右→左)*/
.fadeRightLeftMV.wow.animated {
  animation-name: fadeRightLeftMV;
  animation-duration: 1.8s;
  animation-timing-function: ease;
  animation-delay: 0.4s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
  opacity: 0;
  will-change: opacity;
}

.fadeRightLeftMV {
  opacity: 0;
}

@keyframes fadeRightLeftMV {
  0% {
    opacity: 0;
    filter: blur(6px);
    transform: translateX(30%);
  }

  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0);
  }
}

/*fadeLeftRightMV(左→右)*/
.fadeLeftRightMV.wow.animated {
  animation-name: fadeLeftRightMV;
  animation-duration: 1.8s;
  animation-timing-function: ease;
  animation-delay: 0.4s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
  opacity: 0;
  will-change: opacity;
}

.fadeLeftRightMV {
  opacity: 0;
}

@keyframes fadeLeftRightMV {
  0% {
    opacity: 0;
    filter: blur(6px);
    transform: translateX(-30%);
  }

  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateX(0);
  }
}

/*zoominS(ズームイン)*/
.fadeZoomInS.wow.animated {
  animation-name: fadeZoomInS;
  animation-duration: 3s;
  animation-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
  animation-delay: 0.4s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}

.fadeZoomInS {
  opacity: 0;
}

@keyframes fadeZoomInS {
  0% {
    transform: scale(0.9);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/*zoomoutS(ズームアウト)*/
.fadeZoomOutS.wow.animated {
  animation-name: fadeZoomOutS;
  animation-duration: 3s;
  animation-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
  animation-delay: 0.4s;
  animation-iteration-count: 1;
  animation-direction: normal;
  animation-fill-mode: forwards;
}

.fadeZoomOutS {
  opacity: 0;
}

@keyframes fadeZoomOutS {
  0% {
    transform: scale(1.1);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/*Wabble*/

.fadeZoomInWobble.wow.animated {
  animation-name: fadeZoomInWobble;
  animation-duration: 1.5s;
  animation-timing-function: ease-out;
  animation-delay: 0.2s;
  animation-iteration-count: 1;
  animation-fill-mode: forwards;
}

.fadeZoomInWobble {
  opacity: 0;
}

@keyframes fadeZoomInWobble {
  0% {
    transform: scale(0.9) rotate(-0.8deg);
    opacity: 0;
  }

  40% {
    transform: scale(0.95) rotate(0.8deg);
    opacity: 0.6;
  }

  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}

/* BG image
----------------------------------------*/
@media (max-width:999px) {

  /* 画像は普通に表示 */
  img.photobg.sp {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(var(--extend) - 1px);
    width: 100%;
    height: auto;
    display: block;
    z-index: 2;
    pointer-events: none;
    animation: none !important;
    /* 初期状態は左に隠す */
    transform: translateX(-100%);
    will-change: transform;
    top: 50px;
  }
}

@media screen and (min-width: 1000px) {
  .stylingbox {
    width: 100%;
    margin: 120px auto;
    position: relative;
  }

  .creditlist {
    z-index: 10;
  }

  .photobg.pc {
    display: none;
  }
}


/* nav
----------------------------------------*/
.nav {
  list-style: none;
  margin: 0 auto;
  padding: 0;
  height: calc(100vw * 0.4);
  width: 94%;
}

.nav li {
  float: left;
  width: 32%;
  height: calc(100vw * 0.35);
  text-align: center;
  margin-right: 1%;
  height: 40px;
}

.nav li:last-child {
  margin-right: 0;
}

.nav li img.navttl {
  width: 80%;
  margin-left: 20%;
  margin-top: -20%;
  z-index: 1;
}

.nav li a {
  display: flex;
  flex-direction: column;
}

.nav li span {
  margin: 0;
  color: #fff;
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
  font-size: 0.8rem;
  margin-top: -3%;
}

@media screen and (min-width: 1000px) {
  ul.nav {
    width: 1000px;
    margin: 0 auto;
    height: calc(100vw * 0.3);
  }

  ul.nav img {
    width: 90%;
    margin: 0 auto;
  }

  .nav li span {
    font-size: 1.4rem;
  }
}

/* stylingbox
----------------------------------------*/
.stylingbox {
  width: 100%;
  margin: 20% auto;
  overflow: hidden;
}

.stylingttl {
  height: calc(100vw*1.63);
}

#styling02 .stylingttl {
  height: calc(100vw*1.6);
}

.stylingbg {
  position: absolute;
  width: 100%;
  z-index: 0;
  /*animation: slowBlink 4s ease-in-out infinite;*/
}

@keyframes slowBlink {

  0%,
  100% {
    opacity: 1;
    /*transform: scale(1);*/
  }

  50% {
    opacity: 0.6;
    /*transform: scale(0.9);*/
  }
}

.stylingmain {
  position: absolute;
  z-index: 1;
}

.stylingsubttl {
  text-align: center;
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
  font-size: 1.3rem;
  margin-bottom: 4%;
  display: block !important;
}

.mainphoto {
  width: 90%;
  margin: 0 auto;
}

.photo1 {
  margin-bottom: 2%;
}

#styling02 .photo1 {
  margin-top: 16%;
}

#styling03 .photo1 {
  margin-top: 17%;
}

.stylingmainttl {
  margin: 0 auto 2% 30%;
}

#styling03 .stylingmainttl {
  margin: 0 auto 2% 13%;
}

.no {
  width: 20%;
  display: inline-block;
}

.slash {
  width: 12%;
  height: 12%;
  display: inline-block;
  margin-top: 0;
}

.slash hr {
  width: 100%;
  border: 0;
  border-top: 1px solid #fff;
  margin: 71% 0 0 0;
  padding: 0;
  transform: rotate(-45deg);
}

.stylingttlmain {
  width: 20%;
  display: inline-block;
}

#styling03 .stylingttlmain {
  width: 45%;
  display: inline-block;
}

.ttlline {
  width: 50%;
  margin: 0 25%;
}

.stylingttl p {
  text-align: center;
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
}

.modelphoto {
  width: 100%;
  height: calc(100vw*1.15);
  position: relative;
}

.photo2 {
  width: 41%;
  margin-left: 3%;
  margin-top: 15%;
}

.photo3 {
  width: 45%;
  margin-left: 5%;
  margin-top: 3%;
}

#styling02 .photo2 {
  margin-top: 8%;
  margin-left: 7%;
}

#styling02 .photo3 {
  width: 36%;
}

#styling03 .photo2 {
  margin-top: 11%;
  margin-left: 7%;
}

#styling03 .photo3 {
  width: 36%;
}

@media screen and (max-width: 414px) {
  .modelphoto {
    height: calc(100vw*1.2);
  }
}

@media screen and (min-width: 1000px) {
  .stylingbox {
    width: 1190px;
    margin: 80px auto;
    overflow: inherit;
  }

  .stylingsubttl {
    font-size: 1.6rem;
  }

  .mainbox {
    width: 1190px;
    display: flex;
  }

  .stylingttl {
    width: 620px;
    height: 940px;
  }

  #styling02 .stylingttl {
    width: 620px;
    height: 1000px;
  }

  #styling03 .stylingttl {
    width: 620px;
    height: 1020px;
  }

  .stylingttl p {
    font-size: 1.2rem;
    line-height: 2;
    margin: 20px auto 0 auto;
  }

  .stylingbg {
    width: 620px;
  }

  .stylingmain {
    width: 620px;
    height: 940px;
  }

  .photo2 {
    width: 40%;
    margin-left: 5%;
    margin-top: 15%;
  }

  .photo3 {
    width: 43%;
    margin-left: 5%;
    margin-top: 5%;
  }

  #styling02 .photo2 {
    width: 40%;
    margin-top: 9%;
    margin-left: 10%;
  }

  #styling02 .photo3 {
    width: 33%;
  }

  #styling03 .photo2 {
    width: 39%;
    margin-top: 13%;
    margin-left: 9%;
  }

  #styling03 .photo3 {
    width: 35%;
  }

  .modelphoto {
    height: 660px;
  }

  .mainphoto {
    width: 480px;
    margin-right: 90px;
  }
}

.subphotobox {
  width: 100%;
  margin: 0 auto;
}

.subphotobox .subphoto1 {
  width: 65%;
  margin: 5% auto 5% 5%;
}

.subphotobox .subphoto2 {
  width: 76%;
  margin-left: 19%;
  margin-right: 5%;
  position: relative;
  margin-bottom: 5%;
}

.subphotobox .subphoto2 .subphoto2comment1 {
  background: #000;
  color: #fff;
  padding: 3% 0.5%;
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
  writing-mode: vertical-rl;
  font-size: 1.1rem;
  position: absolute;
  top: 5%;
  left: 11%;
  white-space: nowrap;
}

.subphotobox .subphoto2 .subphoto2comment2 {
  background: #000;
  color: #fff;
  padding: 3% 0.5%;
  font-family: '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif !important;
  writing-mode: vertical-rl;
  font-size: 1.1rem;
  position: absolute;
  top: 38%;
  white-space: nowrap;
}

#styling02 .subphotobox .subphoto2 .subphoto2comment1 {}

#styling02 .subphotobox .subphoto2 .subphoto2comment2 {}

#styling03 .subphotobox .subphoto2 .subphoto2comment1 {}

#styling03 .subphotobox .subphoto2 .subphoto2comment2 {}

.subphotobox .subphoto2_2 {
  width: 84%;
  margin-left: 16%;
}

.subphotobox .subphoto3 {
  width: 65%;
  margin: 0 auto 5% 5%;
}

@media screen and (min-width: 1000px) {
  .subphotobox {
    width: 1190px !important;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
  }

  .subphotobox .subphoto1 {
    width: 380px !important;
    margin: 0 !important;
    margin-right: 2% !important;
  }

  .subphotobox .subphoto2 {
    width: 380px !important;
    margin: 0 !important;
    /*margin-right:2% !important;*/
  }

  .subphotobox .subphoto2_2 {
    width: 380px !important;
    margin-left: 0 !important;
  }

  .subphotobox .subphoto3 {
    width: 380px !important;
    margin: 0 !important;
  }

  .subphotobox .subphoto2 .subphoto2comment1 {
    font-size: 20px;
    height: 210px;
    left: 85%;
    top: 0;
    margin-top: -20px;
  }

  .subphotobox .subphoto2 .subphoto2comment2 {
    font-size: 20px;
    height: 135px;
    left: 8%;
    top: 55%;
  }

  #styling02 .subphotobox .subphoto2 .subphoto2comment1 {
    height: 240px;
  }

  #styling02 .subphotobox .subphoto2 .subphoto2comment2 {
    height: 240px;
    top: 35%;
  }

  #styling03 .subphotobox .subphoto2 .subphoto2comment1 {
    height: 175px;
  }

  #styling03 .subphotobox .subphoto2 .subphoto2comment2 {
    height: 160px;
    top: 50%;
  }
}

@media screen and (max-width: 414px) {
  .subphotobox .subphoto2 .subphoto2comment1 {
    font-size: 1rem;
    padding: 3% 0.1%;
    white-space: nowrap;
  }

  .subphotobox .subphoto2 .subphoto2comment2 {
    font-size: 1rem;
    padding: 3% 0.1%;
    white-space: nowrap;
  }

  #styling02 .subphotobox .subphoto2 .subphoto2comment1 {
    font-size: 1rem;
  }

  #styling02 .subphotobox .subphoto2 .subphoto2comment2 {
    font-size: 1rem;
    top: 32% !important;
  }

  #styling03 .subphotobox .subphoto2 .subphoto2comment1 {
    font-size: 1rem;
  }

  #styling03 .subphotobox .subphoto2 .subphoto2comment2 {
    font-size: 1rem;
  }
}






/* ================================
     Main visual
     背景青 + 雪（後ろ）+ モデル3枚 + 雪（前）
  ================================ */
.visual {
  position: relative;
  background-color: var(--bg-deep-blue);
  overflow: hidden;
  padding-top: clamp(16px, 3vw, 24px);
  padding-bottom: 0;
}

/* PC: ビューポート高さいっぱいに表示 */
@media (min-width: 1000px) {
  .visual {
    height: 100vh;
    height: 100svh;
    /* Safari対応 */
    min-height: 800px;
    /* モデル画像の最小サイズを保つ */
    display: flex;
    flex-direction: column;
    /* padding-topは元の値（clamp(16px, 3vw, 24px)）を継承 */
    padding-bottom: 0;
  }
}

/* 最背面静止画像 */
.visual::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;

  background-image: url("../img/snow_bg.png");
  background-repeat: repeat;
  background-size: 320px 320px;
  background-position: 0 0;
  opacity: 0.5;
  animation: snow-bg-drift 12s ease-in-out infinite;
}

/* 最背面の雪テクスチャを、ほんの少しだけ横にドリフトさせる */
@keyframes snow-bg-drift {
  0% {
    transform: translateX(0);
  }

  50% {
    transform: translateX(8px);
  }

  100% {
    transform: translateX(0);
  }
}

@media (min-width: 1000px) {
  .visual::before {
    opacity: 0.75;
  }
}

/* 雪レイヤー共通 */
.visual__snow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 1;
  transition: opacity 0.25s linear;
}

.visual__snow--back {
  z-index: 1;
  filter: blur(1px);
}

.visual__snow--front {
  z-index: 4;
}

/* モデル画像3枚横並び */
.visual__image {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  /* 足元をそろえる */
  justify-content: center;
  width: 100%;
  /* 画面幅いっぱいに表示 */
  margin: 0 auto;
  overflow: visible;
  gap: 0;
}

/* 画像は「高さ基準」でそろえる：横幅は元画像比率に従う */
.visual__image img {
  flex: 0 0 auto;
  height: 100%;
  width: auto;
  object-fit: contain;
  object-position: bottom center;
}

@media (max-width: 999px) {
  .visual__image {
    height: 85vw;
    /* 少し高さを増やして画面いっぱいに */
    max-height: none;
    padding: 0 5w;
    /* 左右に少し余白 */
  }

  .visual__image .mv1 {
    margin-right: -20%;
    z-index: 1;
  }

  .visual__image .mv2 {
    position: relative;
    z-index: 3;
  }

  .visual__image .mv3 {
    margin-left: -15%;
    z-index: 2;
  }
}

@media (min-width: 1000px) {
  .visual__image {
    justify-content: center;
    height: 100%;
    /* 親要素(.visual)の高さいっぱいに */
    padding: 0;
    /* 横幅が広い画面でも左右が切れないようにパディングを削除 */
  }

  .visual__image .mv1 {
    margin-right: -7%;
    z-index: 1;
  }

  .visual__image .mv2 {
    position: relative;
    z-index: 3;
  }

  .visual__image .mv3 {
    margin-left: -4%;
    z-index: 2;
  }
}

/* ロゴ */
.visual__logo {
  position: relative;
  z-index: 6;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: #ffffff;
  margin-bottom: 1rem;
}

.visual__logo img {
  width: 30%;
}

/* 中央コピー */
.visual__contents {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* PC: タイトルを上から配置 */
@media (min-width: 1000px) {
  .visual__contents {
    /*align-items: flex-start;*/
  }
}

@media (min-width: 1000px) {
  .visual__logo {
    margin-bottom: 1rem;
  }

  .visual__logo img {
    width: 15%;
  }
}

.visual__ttl-box {
  color: #ffffff;
  text-align: center;
  letter-spacing: .12em;
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.6;
  margin-top: 12rem;
  display: flex;
  align-items: center;
  flex-direction: column;
}

.visual__ttl-box .ttl-main {
  display: flex;
  justify-content: center;
}

.visual__ttl-box .ttl-main {
  display: flex;
  justify-content: center;
}

.visual__ttl-box .ttl-main1 {
  width: 60vw;
  /* スマホ：画面幅の60% */
}

.visual__ttl-box .ttl-main2 {
  width: 36vw;
  /* スマホ：60vw × (3/5) = 36vw（比率5:3） */
}

.visual__ttl-box .ttl-sub {
  width: 27vw;
  /* スマホ：画面幅の27% */
  margin-top: -1rem;
}

@media (min-width: 1000px) {
  .visual__ttl-box {
    /* 元の位置：800pxの時に304px（19rem）下にずらす → 38vh */
    margin-top: max(38vh, 304px);
  }

  .visual__ttl-box .ttl-main1 {
    /* ビューポート高さベース（min-height 800pxの時に520px相当） */
    width: max(65vh, 520px);
  }

  .visual__ttl-box .ttl-main2 {
    /* ttl-main1の3/5（比率5:3を維持） */
    width: max(39vh, 312px);
  }

  .visual__ttl-box .ttl-sub {
    /* ビューポート高さベース（min-height 800pxの時に160px相当） */
    width: max(20vh, 160px);
  }
}

/* ================================
     雪エフェクト（共通）
  ================================ */
.visual__snow .snowflake {
  position: absolute;
  top: -10vh;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  animation-name: snowfall;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  will-change: transform, opacity;
}

.visual__snow--front .snowflake {
  box-shadow: 0 0 8px rgba(255, 255, 255, 0.9);
}

.visual__snow--back .snowflake {
  box-shadow: none;
}

/* 大きな雪用ぼかし */
.visual__snow .snowflake--large {
  filter: blur(2.5px);
  box-shadow:
    0 0 16px rgba(255, 255, 255, 0.95),
    0 0 32px rgba(255, 255, 255, 0.7);
  background: rgba(255, 255, 255, 0.9);
}

/* 落ち方*/
@keyframes snowfall {
  0% {
    transform: translate3d(0, -10vh, 0);
    opacity: 0;
  }

  10% {
    opacity: 1;
  }

  100% {
    transform: translate3d(var(--driftX, 10vw), 110vh, 0);
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .visual__snow .snowflake {
    animation: none !important;
    opacity: 0;
  }
}

/* ================================
 Page Top & Product List Buttons
================================ */
.page-buttons {
  position: fixed;
  right: 20px;
  z-index: 9999;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 50px;
}

.page-buttons.show {
  opacity: 1;
  pointer-events: auto;
}

/* PC: 商品一覧がTOPへの上 */
@media (min-width: 1000px) {
  .page-buttons {
    bottom: 30px;
    align-items: flex-end
  }
}

/* スマホ: btn-page-topの左横にbtn-product-listを配置（rowで横並び） */
@media (max-width: 999px) {
  .page-buttons {
    bottom: 20px;
    /*bottom: 20px;*/
    right: 10px;
    flex-direction: row;
    gap: 10px;
    align-items: center;
  }
}

/* ===== 以下、元の仕様（テキスト表示時代の仕様） =====
    @media (max-width: 999px) {
      .page-buttons {
        bottom: 0;
        right: 0;
        left: 0;
        width: 100%;
        flex-direction: column;
        gap: 0;
        align-items: flex-end;
      }

      .btn-page-top {
        position: absolute;
        bottom: 60px;
        right: 10px;
      }
    }
    ========================================== */

/* btn-page-top: 共通スタイル */
.btn-page-top {
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.btn-page-top:hover {
  transform: translateY(-2px);
}

.btn-page-top img {
  display: block;
  width: 46px;
  height: 48px;
  margin: 0 auto;
}

@media (min-width: 1000px) {
  .btn-page-top img {
    width: 46px;
    height: 48px;
  }
}

/* btn-product-list: 画像版（新仕様） */
.btn-product-list {
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
  /*box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);*/
}

.btn-product-list:hover {
  transform: translateY(-2px);
}

.btn-product-list img {
  display: block;
  margin: 0 auto;
}

/* スマホ: btn-page-topの1.5倍サイズ */
@media (max-width: 999px) {
  .btn-product-list img {
    width: 60px;
    height: 60px;
    /*width: 48px;*/
    /*height: 48px;*/
  }
}

/* PC: btn-page-topの1.5倍サイズ */
@media (min-width: 1000px) {
  .btn-product-list img {
    width: 72px;
    height: 72px;
  }
}

/* ===== 以下、元の仕様（テキスト表示時代の仕様） =====
    .btn-product-list {
      background-color: rgba(255, 255, 255, 0.15);
      border: 1px solid rgba(255, 255, 255, 0.8);
      padding: 12px 20px;
      cursor: pointer;
      transition: all 0.3s ease;
      text-align: center;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
      font-size: 14px;
      font-weight: 600;
      color: #ffffff;
      white-space: nowrap;
      position: relative;
    }

    .btn-product-list:hover {
      background-color: rgba(255, 255, 255, 0.3);
      border-color: rgba(255, 255, 255, 1);
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      transform: translateY(-2px);
    }

    @media (max-width: 999px) {
      .btn-product-list {
        padding-right: 60px;
        width: 70%;
        border-radius: 0;
        margin: 0 auto;
        bottom: 5px;
      }

      .product-list-text1,
      .product-list-text2 {
        display: inline;
      }
    }

    @media (min-width: 1000px) {
      .btn-product-list {
        padding: 16px 20px 40px;
      }

      .product-list-text1,
      .product-list-text2 {
        display: inline;
      }
    }

    .btn-product-list::after {
      content: "";
      position: absolute;
      width: 35px;
      height: 8px;
      border-bottom: 1px solid rgba(255, 255, 255, 0.8);
      border-right: 1px solid rgba(255, 255, 255, 0.8);
      transition: all 0.3s;
    }

    .btn-product-list:hover::after {
      border-bottom: 1px solid #ffffff;
      border-right: 1px solid #ffffff;
    }

    @media (max-width: 999px) {
      .btn-product-list::after {
        right: 20px;
        top: 50%;
        transform: translateY(-50%) skew(45deg);
      }
    }

    @media (min-width: 1000px) {
      .btn-product-list::after {
        bottom: 25px;
        left: 50%;
        transform: translateX(-50%) skew(45deg);
      }
    }
    ========================================== */


/* ========================================
   l-head 画像見切れ対策（Vol.1用）
   ======================================== */

/* 最小幅を1190pxに設定して横スクロールを有効化 */
@media screen and (min-width: 1000px) {
  body {
    min-width: 1190px;
    overflow-x: auto !important;
  }

  #special {
    min-width: 1190px;
  }

  /* l-head完全独立 */
  .l-head {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  .l-head .visual {
    width: 100% !important;
    min-width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    padding-top: clamp(16px, 3vw, 24px) !important;
  }

  .l-head .visual__image {
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
  }
}

/* 1024px〜1190px：高さ＆モデル調整（Vol.1用） */
@media (min-width: 1000px) and (max-width: 1190px)
  and (hover: none)
  and (pointer: coarse) {
    
  .l-head .visual {
    min-height: 520px !important;
    height: 70vh !important;
  }

  .l-head .visual__ttl-box {
    margin-top: max(24vh, 160px) !important;
  }

  .l-head .visual__ttl-box .ttl-main1 {
    width: max(45vh, 360px) !important;
  }

  .l-head .visual__ttl-box .ttl-main2 {
    width: max(27vh, 216px) !important;
  }

  .l-head .visual__ttl-box .ttl-sub {
    width: max(13vh, 104px) !important;
  }

  /* Vol.1はモデル間が広いので少し詰める */
  .l-head .visual__image .mv1 {
    margin-right: -9% !important;
  }

  .l-head .visual__image .mv2 {
    margin-left: -2% !important;
  }

  .l-head .visual__image .mv3 {
    margin-left: -6% !important;
  }
}

/* 1191px以上：元のサイズ */
@media (min-width: 1191px) {
  .l-head .visual {
    height: 100vh !important;
    height: 100svh !important;
    min-height: 800px !important;
  }
}