@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@500;700;900&family=Noto+Serif+JP:wght@400;500;700;900&display=swap");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.0.0/dist/css/yakuhanmp.css");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@4.0.0/dist/css/yakuhanjp.css");
/*/////////////////////////
 reset
//////////////////////////*/
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css");
@import url("https://cdn.jsdelivr.net/npm/yakuhanjp@3.4.1/dist/css/yakuhanjp.min.css");
body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  border: 0; /*font-size: 100%;font: inherit;*/
  vertical-align: baseline;
  margin: 0;
  padding: 0;
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

blockquote:before, blockquote:after, q:before, q:after {
  content: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

a, a:link, button {
  text-decoration: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  outline: none !important;
  color: inherit;
}

a:hover, a:active {
  text-decoration: none;
}

b {
  font-weight: bold;
}

img,
svg {
  display: block;
  width: 100%;
  height: auto;
  pointer-events: none;
}

* {
  box-sizing: border-box;
  outline: 0;
}

img {
  image-rendering: -webkit-optimize-contrast;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

iframe {
  max-width: 100%;
  height: auto;
}

/* 
================================================================================
tag
================================================================================
*/
img {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  width: 100%;
  height: auto;
}

img,
input,
svg,
*:before,
*:after {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

a:hover img,
a:hover input {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  image-rendering: -webkit-optimize-contrast;
}

h1, h2, h3, h4, h5, h6 {
  text-align: left;
}

a, a:link, a:active, a:visited {
  color: inherit;
  text-decoration: none;
}

svg {
  width: 100%;
  height: auto;
}
svg g path {
  stroke: #404040;
  fill: #404040;
  stroke-width: 0.05;
  stroke-dashoffset: 0;
}

/* $break-point以下の時に@contentを適用 */
/* $break-point以上の時に@contentを適用 */
/* $break-point-min以上、$break-point-max以下の時に@contentを適用 */
@keyframes flash {
  0% {
    filter: brightness(1);
  }
  30% {
    filter: brightness(3);
  }
  100% {
    filter: brightness(1);
  }
}
@keyframes decoflash {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  20% {
    opacity: 1;
  }
  30% {
    opacity: 0;
  }
  40% {
    opacity: 1;
  }
  50% {
    opacity: 1;
  }
  60% {
    opacity: 0;
  }
  70% {
    opacity: 0.5;
  }
  100% {
    opacity: 0.5;
  }
}
@keyframes snowAnimation {
  0% {
    transform: translateY(-100px);
  }
  100% {
    transform: translateY(30000px);
  }
}
@keyframes charaZoom {
  0% {
    opacity: 0;
    transform: scale(0.4);
  }
  20% {
    opacity: 2;
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes fall {
  0% {
    top: -50px;
  }
  100% {
    top: 100%;
  }
}
@keyframes onpuAnime {
  0% {
    transform: translate(0, 0%);
  }
  100% {
    transform: translate(0, -30%);
  }
}
@keyframes navPreorderArrowLoop {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  60% {
    -webkit-transform: translate3d(0, 0.4166666667rem, 0);
    transform: translate3d(0, 0.4166666667rem, 0);
  }
  70% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    -webkit-transform: translate3d(0, 0.4166666667rem, 0);
    transform: translate3d(0, 0.4166666667rem, 0);
  }
  90% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes productPreorderArrowLoop {
  0% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  50% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  60% {
    -webkit-transform: translate3d(0.4166666667rem, 0, 0);
    transform: translate3d(0.4166666667rem, 0, 0);
  }
  70% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  80% {
    -webkit-transform: translate3d(0.4166666667rem, 0, 0);
    transform: translate3d(0.4166666667rem, 0, 0);
  }
  90% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
  100% {
    -webkit-transform: translate3d(0, 0, 0);
    transform: translate3d(0, 0, 0);
  }
}
@keyframes heroRoboIn {
  0% {
    opacity: 0;
    transform: translate3d(-50%, 20%, 0) scale3d(1, 1, 1);
    filter: brightness(8);
  }
  50% {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale3d(1, 1, 1);
    filter: brightness(1);
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, 0, 0) scale3d(1, 1, 1);
    filter: brightness(1);
  }
}
@keyframes thunderTitleIn {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -12.5rem, 0) scale(1, 0) rotate(0deg);
    filter: brightness(8);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale(1, 0) rotate(0deg);
    }
  }
  3% {
    opacity: 1;
    transform: translate3d(-40%, -9.375rem, 0) scale(1.8, 0.5) rotate(10deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-40%, -20vw, 0) scale(1.8, 0.5) rotate(10deg);
    }
  }
  6% {
    opacity: 1;
    transform: translate3d(-60%, -15.625rem, 0) scale(0.8, 1.2) rotate(-10deg);
    filter: brightness(10);
    @media screen and (max-width: 750px) {
      transform: translate3d(-60%, -33.3333333333vw, 0) scale(0.8, 1.2) rotate(-10deg);
    }
  }
  9% {
    opacity: 1;
    transform: translate3d(-50%, -10.625rem, 0) scale(1.8, 0.2) rotate(10deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -22.6666666667vw, 0) scale(1.8, 0.2) rotate(10deg);
    }
  }
  12% {
    opacity: 1;
    transform: translate3d(-40%, -14.375rem, 0) scale(0.2, 0.8) rotate(-10deg);
    filter: brightness(10);
    @media screen and (max-width: 750px) {
      transform: translate3d(-40%, -30.6666666667vw, 0) scale(0.2, 0.8) rotate(-10deg);
    }
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale(1, 1) rotate(0deg);
    filter: brightness(1);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -33.3333333333vw, 0) scale(1, 1) rotate(0deg);
    }
  }
}
@keyframes thunderTitleIn2 {
  0% {
    opacity: 0;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(1.5, 0, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale3d(1, 1, 1) rotate(0deg);
    }
  }
  70% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(0.2, 0.1, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -26.6666666667vw, 0) scale3d(1, 1, 1) rotate(0deg);
    }
  }
  100% {
    opacity: 1;
    transform: translate3d(-50%, -15.625rem, 0) scale3d(1, 1, 1) rotate(0deg);
    @media screen and (max-width: 750px) {
      transform: translate3d(-50%, -33.3333333333vw, 0) scale(1, 1) rotate(0deg);
    }
  }
}
/* 
================================================================================
sample
================================================================================
*/
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
.sans {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
}

.serif {
  font-family: YakuHanMP, "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", YuMincho, serif;
}

.wBlack {
  font-weight: 900;
}

.tLeft {
  text-align: left;
}

.tCenter {
  text-align: center;
}

.cWhite {
  color: #fff;
}

.cBlack {
  color: #303030;
}

@media screen and (min-width: 750px) {
  .only-pc {
    display: inline-block;
  }
}
@media screen and (max-width: 750px) {
  .only-pc {
    display: none;
  }
}
@media screen and (min-width: 750px) {
  .only-sp {
    display: none;
  }
}
@media screen and (max-width: 750px) {
  .only-sp {
    display: inline-block;
  }
}

.palalax {
  display: inline-block;
}
.palalax.auto {
  width: auto;
  height: auto;
}
.palalax.full {
  width: 100%;
}
.palalax.fullfull {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
}

.wFull {
  width: 100%;
}
.wFull div {
  margin-left: auto;
  margin-right: auto;
}

.inFrame {
  margin: 0 auto 0;
  width: 100%;
  display: block;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  height: fit-content;
}

.global_inner {
  position: relative;
  margin: 0 auto 0;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  height: fit-content;
}
.global_inner.block {
  display: block;
}
@media screen and (min-width: 750px) {
  .global_inner {
    max-width: 60rem;
  }
}
.grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 3.125rem;
}
.grid.col_2 {
  grid-template-columns: 1fr 1fr;
}

.nav {
  position: fixed;
  width: 100%;
  height: 4rem;
  left: 0;
  bottom: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.4s cubic-bezier(0.2, 0.6, 0.4, 1), opacity 0.4s cubic-bezier(0.2, 0.6, 0.4, 1), -webkit-transform 0.4s cubic-bezier(0.2, 0.6, 0.4, 1);
  background: #000;
}
@media screen and (min-width: 750px) {
  .nav {
    height: 4rem;
  }
}

.nav__inner {
  position: relative;
  width: 40rem;
  margin: 0 auto;
  height: 100%;
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 0 0 1.875rem;
}
@media screen and (min-width: 750px) {
  .nav__inner {
    width: 40rem;
  }
}
@media screen and (max-width: 750px) {
  .nav__inner {
    width: 86.6666666667vw;
    padding: 0 0 0 0;
  }
}

.lang-selector__btn {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  position: relative;
  width: 2rem;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  z-index: 1;
}

.lang-selector__btn span {
  display: block;
  color: #fff;
  font-size: 0.75rem;
  margin-left: 0.8125rem;
}
@media screen and (min-width: 750px) {
  .lang-selector__btn span {
    display: block;
    color: #fff;
    font-size: 0.875rem;
    letter-spacing: 0;
    margin-left: 0.1875rem;
  }
}

.lang-selector__list {
  position: absolute;
  left: -6.25rem;
  bottom: 3.125rem;
  padding: 1.875rem 5rem;
  -webkit-transform: translate3d(-100%, 0, 0);
  transform: translate3d(-100%, 0, 0);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.1s cubic-bezier(0.2, 0.6, 0.4, 1), transform 0s linear 0.1s;
  background: #000;
}
@media screen and (max-width: 750px) {
  .lang-selector__list {
    left: 0vw;
    bottom: 9.6vw;
    padding: 4vw 10.6666666667vw;
  }
}

.lang-selector__list li {
  opacity: 0;
  transform: translate3d(-0.8333333333rem, 0, 0);
  transition: opacity 0.3s cubic-bezier(0.2, 0.6, 0.4, 1), transform 0.3s cubic-bezier(0.2, 0.6, 0.4, 1);
}

.lang-selector__list li:not(:last-child) {
  margin-bottom: 1.25rem;
}

.lang-selector__list li:nth-of-type(1) {
  transition-delay: 0s;
}

.lang-selector__list li:nth-of-type(2) {
  transition-delay: 0.1s;
}

.lang-selector__list li:nth-of-type(3) {
  transition-delay: 0.2s;
}

.lang-selector__list li:nth-of-type(4) {
  transition-delay: 0.3s;
}

.lang-selector__list.is--open {
  transform: translate3d(0, 0, 0);
  opacity: 1;
  pointer-events: visible;
  transition: opacity 0.1s cubic-bezier(0.32, 0, 0.67, 0);
}

.lang-selector__list.is--open li {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.lang-selector-item {
  display: block;
  position: relative;
  width: 100%;
  color: #fff !important;
  text-align: left;
  transition: opacity 0.2s cubic-bezier(0.2, 0.6, 0.4, 1);
}

.lang-selector-item:hover {
  opacity: 0.6;
}

.lang-selector-item span {
  position: relative;
  font-size: 1.1666666667rem;
  white-space: nowrap;
  line-height: 0.8em;
  transform: scale3d(0.9, 1, 1);
}

.lang-selector-item::after {
  position: absolute;
  display: block;
  content: " ";
  display: block;
  width: 0.5833333333rem;
  height: 0.5833333333rem;
  transform: rotate(45deg);
  border-top: 0.1666666667rem #fff solid;
  border-right: 0.1666666667rem #fff solid;
  top: 0.5833333333rem;
  left: -1.5rem;
  opacity: 0;
}

.lang-selector-item.is--cur span {
  border-bottom: 0.0833333333rem #fff solid;
}

.lang-selector-item.is--cur::after {
  opacity: 1;
}

.onpuBG {
  position: relative;
  overflow: hidden;
}

.nav-preorder-btn {
  display: block;
  position: relative;
  background: #fff;
  width: 11.875rem;
  height: 2.5rem;
  margin-left: 4.0625rem;
}
@media screen and (max-width: 750px) {
  .nav-preorder-btn {
    width: 32vw;
    height: 5.3333333333vw;
    margin-left: 0vw;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate3d(-50%, -50%, 0);
  }
}

.nav-preorder-btn::before {
  position: absolute;
  display: block;
  content: " ";
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #c31b00;
}

.nav-preorder-btn__label {
  position: relative;
  display: block;
  width: 100%;
  height: 100%;
}

.nav-preorder-btn__label i {
  display: block;
  position: absolute;
  right: 1.5625rem;
  top: 50%;
  margin-top: -0.5rem;
  -webkit-animation: navPreorderArrowLoop 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
  animation: navPreorderArrowLoop 4s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@media screen and (max-width: 750px) {
  .nav-preorder-btn__label i {
    right: 3.4666666667vw;
    margin-top: -1.0666666667vw;
  }
}

.nav-preorder-btn__label i::after {
  position: absolute;
  display: block;
  content: " ";
  display: block;
  width: 0.625rem;
  height: 0.625rem;
  transform: rotate(45deg);
  border-bottom: 0.1875rem #fff solid;
  border-right: 0.1875rem #fff solid;
  box-sizing: border-box;
}
.nav-preorder-btn__label img {
  width: auto;
  height: 100%;
  margin: 0 auto;
}

.nav-share {
  display: inline-block;
}

.nav-share__list {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
  -ms-flex-pack: justify;
  justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  gap: 0 1.125rem;
}

.nav-share-item {
  width: 1.625rem;
}

.lang-selector__btn {
  cursor: pointer;
  transition: opacity 0.2s cubic-bezier(0.2, 0.6, 0.4, 1);
}

.lang-selector__btn:hover {
  opacity: 0.6;
}

ul.list {
  list-style: disc;
  text-align: left;
}
ul.list li {
  margin-left: 1.5em;
  padding-left: 0em;
}
ul.kome {
  list-style: none;
  padding: 0;
  font-size: 0.75rem;
  text-align: left;
}
ul.kome li {
  padding-left: 1.5em;
  line-height: 1.4;
  margin-bottom: 0.5em;
  position: relative;
}
ul.kome li::before {
  content: "※";
  display: inline-block;
  position: absolute;
  top: 0em;
  left: 0;
}

.spaceBG {
  position: relative;
}
.spaceBG::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 18.75rem;
  background: rgb(89, 107, 46);
  background: linear-gradient(0deg, rgba(89, 107, 46, 0) 0%, rgba(89, 107, 46, 0.7) 30%, rgb(89, 107, 46) 100%);
}

.gridBG {
  background-color: #000;
  background-image: linear-gradient(0deg, transparent calc(100% - 1px), rgba(211, 211, 0, 0.2) calc(100% - 1px)), linear-gradient(90deg, transparent calc(100% - 1px), rgba(211, 211, 0, 0.2) calc(100% - 1px));
  background-size: 2.375rem 2.375rem;
  background-repeat: repeat;
  background-position: center center;
  border-top: solid 1px #00ffff;
  border-bottom: solid 1px #00ffff;
}

dl.dataBg {
  border: solid 2px #01ff00;
  margin: auto;
  font-size: 1.15rem;
}
dl.dataBg .larger {
  font-size: 1.8em;
}
dl.dataBg dt {
  background: #01ff00;
  padding: 0.625rem;
  text-align: center;
  font-size: 1.5rem;
  font-weight: 900;
  color: #000;
}
@media screen and (max-width: 750px) {
  dl.dataBg dt {
    font-size: 1.4rem;
  }
}
dl.dataBg dd {
  padding: 1.875rem;
  letter-spacing: 0.02em;
  line-height: 1.4;
  background-color: #000;
}
.btn.icon-head {
  position: relative;
  text-decoration: underline;
  text-decoration-style: solid;
  text-decoration-thickness: 1px;
  text-underline-offset: 4px;
  line-height: 2;
}
.btn.icon-head::before {
  content: "";
  display: block;
  width: 0.5rem;
  height: 0.5rem;
  border-top: solid 0.125rem #000;
  border-right: solid 0.125rem #000;
  transform: rotate(45deg);
  position: absolute;
  left: -1.5em;
  top: 0.4em;
}
@media screen and (max-width: 750px) {
  .btn.icon-head::before {
    width: 1.0666666667vw;
    height: 1.0666666667vw;
    border-top: solid 0.5333333333vw #000;
    border-right: solid 0.5333333333vw #000;
    left: -1.2em;
    top: 0.4em;
  }
}
.btn-map {
  position: relative;
  padding-left: 1.375rem;
  display: flex;
  align-items: center;
  color: #ff7300;
  cursor: pointer;
}
.btn-map::before {
  content: "";
  display: block;
  width: 1.125rem;
  height: 1.125rem;
  background: url(../img/common/parts/icon_map.png) center center/contain no-repeat;
  position: absolute;
  left: 0em;
  top: 50%;
  transform: translate(0, -50%);
}
@media screen and (max-width: 750px) {
  .btn-map::before {
    width: 2.9333333333vw;
    height: 2.9333333333vw;
  }
}
.btn-map span {
  display: inline-block;
  transform: translate(0, -0.2em);
  text-decoration: underline;
  text-decoration-style: solid;
  text-decoration-color: #ff7300;
  text-decoration-thickness: 2px;
  text-underline-offset: 4px;
  line-height: 2;
}
.btn-frame {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  border: solid 0.125rem #ff7300;
  color: #ff7300 !important;
  font-weight: 700;
  font-size: 1.125rem;
  padding: 0.625rem 1.25rem;
  position: relative;
}
.btn-frame::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.1875rem;
  left: 0.1875rem;
  bottom: 0.1875rem;
  right: 0.1875rem;
  border: solid 0.0625rem #ff7300;
}
@media screen and (max-width: 750px) {
  .btn-frame {
    font-size: 2.8vw;
    padding: 2.6666666667vw 2.6666666667vw;
  }
  .btn-frame::before {
    border: solid 0.1333333333vw #ff7300;
  }
}
.btn-order {
  position: relative;
  display: inline-flex;
  padding: 1rem 0.625rem;
  background-color: #c31b00;
  display: flex;
  justify-content: center;
}
@media screen and (max-width: 750px) {
  .btn-order {
    padding: 3.3333333333vw 1.3333333333vw;
  }
}
.btn-order::before {
  content: "";
  display: block;
  position: absolute;
  top: 0.3125rem;
  left: 0.3125rem;
  bottom: 0.3125rem;
  right: 0.3125rem;
  border: solid 0.125rem #fff;
}
.btn-order-item {
  display: block;
}
.btn-order-item img {
  width: auto;
  max-height: 2.375rem;
}
body.lang_en .btn-order-item img, body.lang_zh .btn-order-item img {
  max-height: 3.125rem;
  margin: 0.3125rem 0;
}
@media screen and (max-width: 750px) {
  .btn-order-item img {
    width: auto;
    max-height: 7.7333333333vw;
  }
}

.btnWrap.col_2 {
  display: flex;
  justify-content: space-between;
}
@media screen and (max-width: 750px) {
  .btnWrap.col_2 {
    display: block;
  }
}
.btnWrap .btn {
  display: block;
  margin: auto;
  position: relative;
}
.btnWrap .btn.inLine::before {
  content: "";
  display: block;
  position: absolute;
  width: calc(100% - 20px);
  height: calc(100% - 20px);
  border: solid 2px #fff;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
}
@media screen and (max-width: 750px) {
  .btnWrap .btn.inLine::before {
    border-width: 0.5333333333vw;
    width: calc(100% - 5.3333333333vw);
    height: calc(100% - 5.3333333333vw);
  }
}
.btnWrap .btn.arrowR::after {
  content: "";
  display: block;
  position: absolute;
  width: 15px;
  height: 15px;
  border: solid 6px #fff;
  border-top: 0;
  border-left: 0;
  top: 50%;
  right: 0%;
  transform: translate3d(-40px, -50%, 0) rotate(-45deg);
}
@media screen and (max-width: 750px) {
  .btnWrap .btn.arrowR::after {
    width: 3.3333333333vw;
    height: 3.3333333333vw;
    transform: translate3d(-6.6666666667vw, -50%, 0) rotate(-45deg);
  }
}
.uLine {
  display: inline-block;
  margin: auto;
  border-bottom: solid 1px #fff;
  line-height: 1.6;
}

ul.banner {
  display: flex;
  justify-content: center;
  align-items: flex-start;
}
ul.banner li {
  width: 25.625rem;
  margin: 0 0.625rem;
}

.fullWidth {
  position: relative;
  width: 100vw;
  left: 50%;
  transform: translate3d(-50vw, 0, 0);
}
.fullWidth.bgVertical {
  min-height: 23.75rem;
}

.inView {
  transform: translate3d(0, 50px, 0);
  transition: all 1000ms cubic-bezier(0.75, 0.02, 0.02, 1);
}
.inView.is--stby {
  opacity: 0;
  transform: translate3d(0, 0%, 0);
}
.inView.page {
  transform: translate3d(0, 0%, 0);
  transition: all 500ms ease-out;
}

.swiper-button-next,
.swiper-button-prev {
  position: absolute !important;
  top: 50%;
  width: 5rem;
  height: 5rem;
  margin-top: 0;
  transform: translate3d(0, -50%, 0) scale(1, 1.4);
  z-index: 10;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

.swiper-button-next::after,
.swiper-button-prev::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0) rotate(-45deg);
  width: 3.125rem;
  height: 3.125rem;
  border: solid 6px #eb6100;
}
@media screen and (max-width: 750px) {
  .swiper-button-next::after,
  .swiper-button-prev::after {
    width: 4vw;
    height: 4vw;
  }
}

.swiper-button-next::after {
  border-top: 0;
  border-left: 0;
}

.swiper-button-prev::after {
  border-right: 0;
  border-bottom: 0;
}

.swiper-button-prev,
.swiper-rtl .swiper-button-next {
  left: -5rem;
  right: auto;
}
.swiper-button-prev::after,
.swiper-rtl .swiper-button-next::after {
  color: #00ffff;
}
@media screen and (max-width: 750px) {
  .swiper-button-prev,
  .swiper-rtl .swiper-button-next {
    left: -10.6666666667vw;
  }
}

.swiper-button-next,
.swiper-rtl .swiper-button-prev {
  right: -5rem;
  left: auto;
}
.swiper-button-next::after,
.swiper-rtl .swiper-button-prev::after {
  color: #ffff00;
}
@media screen and (max-width: 750px) {
  .swiper-button-next,
  .swiper-rtl .swiper-button-prev {
    right: -10.6666666667vw;
  }
}

.swiper-horizontal > .swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
  bottom: -2.5rem;
  bottom: auto;
  top: 105% !important;
  position: absolute !important;
}
.swiper-pagination-bullets {
  display: flex;
  justify-content: center;
}

.swiper-pagination-bullet {
  width: 1.25rem;
  height: 1.25rem;
  background: #303030;
  opacity: 1;
  margin: 0 0.625rem !important;
  position: relative;
  pointer-events: all;
}
.swiper-pagination-bullet::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  border: solid 2px #ff7300;
  border-radius: 50%;
}

.swiper-pagination-bullet-active {
  opacity: 1;
  background: #f2b100;
  box-shadow: 0 0 10px 2px rgba(242, 177, 0, 0.5);
}
.swiper-pagination-bullet-active::after {
  display: none;
}

.bg-pattern {
  position: fixed;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  background-color: #dde2e8;
  overflow: hidden;
}
.bg-pattern::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200vw;
  height: 200vh;
  opacity: 0.06;
  background: url(../img/common/bg/bg_logo.png) center/18.75rem auto;
  transform: translate(-50%, -50%) rotate(-30deg);
  transform-origin: center center;
  z-index: -1;
}

.shopinfo h3 {
  padding: 1.25rem 1.25rem 1.25rem 2.5rem;
  background-color: #ff7300;
  display: flex;
  align-items: center;
  font-size: 1.25rem;
  line-height: 1.3;
  color: #fff;
}
@media screen and (max-width: 750px) {
  .shopinfo h3 {
    padding: 2.6666666667vw 2.6666666667vw 2.6666666667vw 5.3333333333vw;
    font-size: 3.2vw;
  }
}
.shopinfo h3 span {
  padding-left: 1.5em;
  position: relative;
  display: block;
}
.shopinfo h3 span::before {
  content: "①";
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
}
.shopinfo .label {
  padding: 1.25rem 0rem 0rem;
}
@media screen and (max-width: 750px) {
  .shopinfo .label {
    padding: 2.6666666667vw 0vw 0vw;
  }
}
.shopinfo .icon-block {
  font-size: 1.25rem;
  margin-bottom: 0.625rem;
}
.shopinfo .icon-block span {
  display: block;
  padding-left: 2.5rem;
  position: relative;
}
.shopinfo .icon-block span::before {
  content: "";
  display: block;
  width: 1.9375rem;
  height: 1.9375rem;
  background: url(../img/common/parts/icon_block.png) center center/contain no-repeat;
  position: absolute;
  left: 0;
  top: 0.1875rem;
}
@media screen and (max-width: 750px) {
  .shopinfo .icon-block {
    font-size: 3.2vw;
    margin-bottom: 1.3333333333vw;
  }
  .shopinfo .icon-block span {
    padding-left: 5.3333333333vw;
  }
  .shopinfo .icon-block span::before {
    width: 4.1333333333vw;
    height: 4.1333333333vw;
    top: 0.8vw;
  }
}
.shopinfo .section-frame-area-contents {
  padding: 0rem 2.5rem 1.25rem;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents {
    padding: 0vw 5.3333333333vw 5.3333333333vw;
  }
}
.shopinfo .section-frame-area-contents .btn-frame {
  margin-bottom: 1.25rem;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .btn-frame {
    margin-bottom: 2.6666666667vw;
  }
}
.shopinfo .section-frame-area-contents .contents-order {
  border: solid 0.125rem #f29f00;
  border-radius: 1.25rem;
  margin-bottom: 1.25rem;
  overflow: hidden;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .contents-order {
    border: solid 0.2666666667vw #f29f00;
    border-radius: 2.6666666667vw;
    margin-bottom: 2.6666666667vw;
  }
}
.shopinfo .section-frame-area-contents .contents-order h5 {
  background-color: #f29f00;
  color: #fff;
  text-align: center;
  padding: 0.75rem 0.625rem;
  font-size: 1rem;
  line-height: 1.4;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
@media screen and (max-width: 1200px) {
  .shopinfo .section-frame-area-contents .contents-order h5 {
    padding: 1.6vw 1.3333333333vw;
    font-size: 2.1333333333vw;
  }
}
.shopinfo .section-frame-area-contents .contents-order h5 div {
  display: inline-block;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .contents-order h5 div {
    display: block;
  }
}
.shopinfo .section-frame-area-contents .contents-order h5 div small {
  position: relative;
  display: inline-block;
  font-size: 0.7em;
  line-height: 1;
  transform: translateY(-0.5em);
}
.shopinfo .section-frame-area-contents .contents-order .grid {
  padding: 1.25rem 1.25rem 1.5625rem;
  font-size: 0.6875rem;
  text-align: center;
  grid-template-columns: 12.5rem auto;
  grid-gap: 1.25rem;
  align-items: flex-end;
  line-height: 1;
}
.shopinfo .section-frame-area-contents .contents-order .grid-item {
  height: 100%;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  text-align: center;
  align-content: center;
  justify-content: center;
}
.shopinfo .section-frame-area-contents .contents-order .grid .btn-official {
  margin-bottom: 0.1875rem;
}
.shopinfo .section-frame-area-contents .contents-order .grid .btn-order {
  margin-top: 0.3em;
  width: 100%;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .contents-order .grid {
    padding: 2.6666666667vw 5.3333333333vw 5.3333333333vw;
    font-size: 2.4vw;
    grid-template-columns: 1fr;
    grid-gap: 5.3333333333vw;
  }
  .shopinfo .section-frame-area-contents .contents-order .grid .btn-official {
    margin: 0 auto 1.3333333333vw;
    width: 30.6666666667vw;
  }
}
.shopinfo .section-frame-area-contents ul.kome {
  width: fit-content;
  margin: auto;
  padding-bottom: 0;
}
.shopinfo .section-frame-area-contents ul.kome li {
  width: 100%;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents ul.kome {
    font-size: 2.1333333333vw;
  }
}
.shopinfo .section-frame-area-contents .bg-tags {
  line-height: 1;
  background-color: #ff7300;
  color: #fff;
  font-size: 0.875rem;
  padding: 0.5rem 1.875rem 0.5rem 2.5rem;
  border-radius: 1.25rem;
  display: inline-flex;
  margin-bottom: 0.625rem;
  position: relative;
}
.shopinfo .section-frame-area-contents .bg-tags::before {
  content: "";
  display: block;
  width: 1.0625rem;
  height: 1.0625rem;
  background: url(../img/common/parts/icon_home.png) center center/contain no-repeat;
  position: absolute;
  left: 0.9375rem;
  top: 0.375rem;
}
.shopinfo .section-frame-area-contents .storelogo {
  width: auto;
  height: 5rem;
  margin: 0 auto 1.25rem;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .storelogo {
    width: 100%;
    height: auto;
  }
}
.shopinfo .section-frame-area-contents .googlemap {
  position: relative;
  aspect-ratio: 2/1;
  width: 100%;
}
.shopinfo .section-frame-area-contents .googlemap iframe {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}
.shopinfo .section-frame-area-contents dl {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-gap: 0.3125rem 0.625rem;
  font-size: 0.9375rem;
  margin-left: 0rem;
  line-height: 1.6;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents dl {
    margin-left: 0;
    grid-template-columns: 1fr;
    font-size: 2.6666666667vw;
  }
}
.shopinfo .section-frame-area-contents dl dt {
  color: #ff7300;
  text-align: right;
  font-weight: 700;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents dl dt {
    text-align: left;
  }
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents dl dd {
    padding-left: 0vw;
    margin-bottom: 1.3333333333vw;
  }
}
.shopinfo .section-frame-area-contents .kome {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  flex-direction: column;
  padding-bottom: 1.25rem;
}
.shopinfo .section-frame-area-contents .kome li {
  display: inline-flex;
  width: fit-content;
  margin: 0 auto 0.3125rem;
}
.shopinfo .section-frame-area-contents .ex {
  padding: 0rem 1.25rem;
  text-align: center;
  font-size: 0.78125rem;
  margin: 1.25rem auto 0;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .ex {
    margin: 0.625rem auto 0 !important;
    max-width: 80%;
  }
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .ex {
    padding: 0vw 0vw;
    text-align: center;
    font-size: 2.9333333333vw;
    margin-top: 5.3333333333vw;
  }
}
.shopinfo .section-frame-area-contents .ex a {
  font-weight: 500;
  line-height: 1.6;
  display: inline-block;
  margin-bottom: 0.5em;
}
@media screen and (max-width: 750px) {
  .shopinfo .section-frame-area-contents .ex a::before {
    top: 0.6em;
  }
}
.shopinfo .section-frame-area-contents .ex small {
  line-height: 1.4;
  display: inline-block;
}

.flex {
  display: flex;
  gap: 1em;
}

.modal {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch; /* ← stretch に変更 */
  background: rgba(255, 255, 255, 0.7);
  overflow: hidden;
  z-index: 10000;
  pointer-events: none;
  transition: opacity 250ms ease-in-out;
}
.modal.is--stby {
  opacity: 0;
}
.modal.is--stby * {
  pointer-events: none;
}
.modal-cover {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 10000;
  cursor: pointer;
}
.modal-frame {
  pointer-events: auto;
  position: relative;
  z-index: 10001;
  width: 100%;
  height: auto; /* ← 固定の高さを確保 */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  padding: 6.25rem;
  /* スクロール挙動 */
  overflow-y: auto;
  scrollbar-width: thin; /* Firefox用（auto / thin / none） */
  scrollbar-color: #d76203 #ff7300; /* Firefox用（thumb, track） */
  /* Chrome, Edge, Safari 用 */
}
.modal-frame::-webkit-scrollbar {
  width: 2px; /* スクロールバーの幅 */
}
.modal-frame::-webkit-scrollbar-track {
  background: #fff5e6; /* トラック（背景） */
  border-radius: 2px;
}
.modal-frame::-webkit-scrollbar-thumb {
  background: #ff7300; /* スクロールバー本体 */
  border-radius: 2px;
  border: 2px solid #fff5e6; /* トラックとの境界を明確にする */
}
.modal-frame::-webkit-scrollbar-thumb:hover {
  background: #d76203; /* hover時 */
}
.modal-contents {
  margin: 0 auto;
  max-width: 60rem;
  height: auto; /* ← これ重要 */
  position: relative;
  z-index: 10002;
  filter: drop-shadow(0 0 1.25rem rgba(0, 0, 0, 0.5));
  padding: 0;
  pointer-events: none;
}
.modal-contents-tab {
  background-color: #fff;
  padding: 2.5rem;
  text-align: left;
  position: relative;
  z-index: 10003;
  pointer-events: all;
}
.modal-contents-tab.is--stby {
  display: none !important;
}
.modal-contents-tab .onlineshop {
  grid-template-columns: auto 1fr;
  grid-gap: 0;
  margin-bottom: 1.25rem;
}
@media screen and (max-width: 750px) {
  .modal-contents-tab .onlineshop {
    grid-template-columns: 1fr;
  }
}
.modal-contents-tab .label {
  padding-left: 0;
}
.modal-contents-tab .section-frame-area-contents {
  padding: 0;
}
.modal-contents-tab .section-frame-area-contents .googlemap {
  margin-bottom: 0rem;
  aspect-ratio: inherit;
  height: 100%;
}
@media screen and (max-width: 750px) {
  .modal-contents-tab .section-frame-area-contents .googlemap {
    aspect-ratio: 1/1;
    height: auto;
  }
}
@media screen and (max-width: 750px) {
  .modal-contents-tab .section-frame-area-contents .grid {
    grid-template-columns: 1fr;
    grid-gap: 2.6666666667vw;
  }
}
.modal-contents-tab#modal-image {
  pointer-events: none;
  background-color: transparent;
  box-sizing: content-box;
  height: calc(100vh - 18.75rem);
  display: flex;
  justify-content: center;
  align-items: center;
}
.modal-contents-tab#modal-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  display: block;
  pointer-events: none;
}
body.modalOpen .modal {
  pointer-events: all;
  opacity: 1;
}
.modal-close {
  position: absolute;
  top: 0;
  right: 0rem;
  width: 5.625rem;
  height: 5.625rem;
  transform: translate3d(100%, -100%, 0);
  cursor: pointer;
}
.modal-close::before, .modal-close::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 0.625rem;
  border-radius: 0.3125rem;
  background: rgb(255, 115, 0);
}
.modal-close::before {
  transform: translate3d(-50%, -50%, 0) rotate(-45deg);
}
.modal-close::after {
  transform: translate3d(-50%, -50%, 0) rotate(45deg);
}

@keyframes roboInAnime {
  0% {
    opacity: 0;
    transform: translate(0%, -300%) scale(1) rotate(-10deg);
    animation-timing-function: ease-in;
  }
  30% {
    opacity: 1;
  }
  80% {
    transform: translate(0%, 0%) scale(1) rotate(5deg);
    animation-timing-function: ease-out;
  }
  100% {
    transform: translate(0%, 0%) scale(1) rotate(0deg);
  }
}
@keyframes drop-bounce1 {
  0% {
    transform: translate(0%, -200%) scale(1) rotate(-10deg);
    animation-timing-function: cubic-bezier(0.5, 0, 0.7, 1);
  }
  70% {
    top: 0;
    animation-timing-function: cubic-bezier(0.3, 0, 0.5, 1);
  }
  85% {
    transform: translate(0%, 10%) scale(1) rotate(0deg);
    animation-timing-function: cubic-bezier(0.3, 0, 0.5, 1);
  }
  100% {
    transform: translate(0%, 0%) scale(1) rotate(0deg);
  }
}
@keyframes drop-bounce {
  0% {
    transform: translateY(-300%) rotate(0deg);
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  25% {
    opacity: 1;
    transform: translateY(2%) rotate(0deg);
    animation-timing-function: ease-out;
  }
  45% {
    transform: translateY(0%) rotate(0deg);
    animation-timing-function: ease-in;
  }
  72% {
    transform: translateY(0%) rotate(0deg);
    animation-timing-function: ease-out;
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}
@keyframes drop-bounce1 {
  0% {
    transform: translateY(-300%) rotate(0deg);
    opacity: 0;
    animation-timing-function: ease-in;
  }
  5% {
    opacity: 1;
  }
  15% {
    opacity: 1;
    transform: translateY(0%) rotate(0deg);
    animation-timing-function: ease-in;
  }
  20% {
    transform: translateY(-6%) rotate(0deg);
    animation-timing-function: ease-in;
  }
  32% {
    transform: translateY(0%) rotate(0deg);
    animation-timing-function: ease-in-out;
  }
  40% {
    transform: translateY(-0.5%) rotate(0deg);
  }
  60% {
    transform: translateY(0) rotate(0deg);
  }
  75% {
    transform: translateY(0%) rotate(0deg);
  }
  80% {
    transform: translateY(0) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}
@keyframes drop-bounce2 {
  0% {
    transform: translateY(-200%) rotate(0deg);
    opacity: 0;
    animation-timing-function: cubic-bezier(0.5, 0, 0.7, 1);
  }
  10% {
    opacity: 1;
  }
  45% {
    transform: translateY(0) rotate(0deg);
    animation-timing-function: cubic-bezier(0.25, 0.6, 0.4, 1);
  }
  55% {
    transform: translateY(-3%) rotate(0deg);
  }
  70% {
    transform: translateY(0) rotate(0deg);
    animation-timing-function: cubic-bezier(0.25, 0.6, 0.4, 1);
  }
  75% {
    transform: translateY(-0.8%) rotate(0deg);
  }
  85% {
    transform: translateY(0) rotate(0deg);
  }
  88% {
    transform: translateY(0%) rotate(0deg);
  }
  91% {
    transform: translateY(0) rotate(0deg);
  }
  100% {
    transform: translateY(0) rotate(0deg);
  }
}
/* 
================================================================================
html body
================================================================================
*/
html {
  height: 100%;
  font-size: 16px;
}
html.scrollMode_onepage {
  overflow: hidden;
}
@media screen and (min-width: 750px) and (max-width: 1200px) {
  html {
    font-size: 1.2vw;
  }
}
@media screen and (max-width: 750px) {
  html {
    font-size: 2.5vw;
  }
}

body {
  font-family: YakuHanJP, "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 1rem;
  font-feature-settings: "palt";
  line-height: 1.84;
  letter-spacing: 0.05rem;
  text-align: center;
  position: fixed;
  width: 100%;
  height: calc(var(--vh) * 100);
  top: 0;
  left: 0;
  overflow: hidden;
  color: #303030;
  background: url(../img/common/bg/bg_block.png) center 50vh/150vh auto;
}
body::after {
  content: "";
  display: none;
  position: absolute;
  width: 100%;
  height: 20px;
  top: 100%;
  left: 0;
  background: #ff7300;
}
@media screen and (max-width: 750px) {
  body {
    background-size: 100% auto;
  }
}
body.scrollMode_onepage {
  -webkit-overflow-scrolling: touch;
}
body.modal-active {
  touch-action: none;
  -webkit-overflow-scrolling: none;
  overflow: hidden;
  overscroll-behavior: none;
}
body.lang_zh {
  font-family: "Noto Sans JP", "Noto Sans TC", sans-serif;
  font-weight: 900;
}

/* 
================================================================================
maintenance
================================================================================
*/
#maintenanceContents {
  display: flex;
  height: calc(var(--vh, 1vh) * 100);
  align-content: center;
  flex-wrap: wrap;
  justify-content: center;
  text-align: center;
}
#maintenanceContents h3 {
  margin-bottom: 3.125rem;
  color: #999;
}
#maintenanceContents p {
  text-align: center;
  font-size: 0.625rem;
  line-height: 1.4;
}

/* 
================================================================================
Debug
================================================================================
*/
#debugWrap {
  position: fixed;
  width: auto;
  height: auto;
  min-width: 0.625rem;
  min-height: 0.625rem;
  bottom: 0.625rem;
  left: 0.625rem;
  z-index: 999999;
  color: #ddd500;
  font-size: 0.875rem;
  font-weight: bold;
  background: rgba(0, 0, 0, 0.9);
}
#debugWrap .contents {
  padding: 1rem;
}

/* 
================================================================================
Wrapper
================================================================================
*/
#scrollBody {
  position: relative;
}

#siteWrap {
  opacity: 0;
  pointer-events: none;
}
body.loadingFinish #siteWrap {
  opacity: 1;
  pointer-events: all;
}

/* 
================================================================================
MENU
================================================================================
*/
#global-menu {
  position: absolute;
  width: 100%;
  height: 9.375rem;
  bottom: 0.625rem;
  padding-top: 2.5rem;
  z-index: 1000;
  overflow: hidden;
  pointer-events: none;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  #global-menu {
    bottom: -0.625rem;
  }
}
#global-menu.is--stby ul li {
  transform: translate(0, 50%);
}
#global-menu ul {
  display: flex;
  justify-content: center;
  margin: auto;
  transition: all 800ms cubic-bezier(0.1, 1.29, 0.36, 1.01);
}
#global-menu ul li {
  margin: 0 0.0625rem;
  width: 10.0625rem;
  height: 6.5625rem;
  transition: all 200ms ease-out;
  pointer-events: all;
}
#global-menu ul li.deactive {
  pointer-events: none;
}
#global-menu ul li.deactive a {
  filter: brightness(50%);
  pointer-events: none;
}
#global-menu ul li:nth-child(1) {
  transition-delay: 0.05s;
}
#global-menu ul li:nth-child(2) {
  transition-delay: 0.1s;
}
#global-menu ul li:nth-child(3) {
  transition-delay: 0.15s;
}
#global-menu ul li:nth-child(4) {
  transition-delay: 0.2s;
}
#global-menu ul li:nth-child(5) {
  transition-delay: 0.25s;
}
#global-menu ul li:nth-child(6) {
  transition-delay: 0.3s;
}
#global-menu ul li:nth-child(7) {
  transition-delay: 0.35s;
}
#global-menu ul li:nth-child(8) {
  transition-delay: 0.4s;
}
#global-menu ul li:nth-child(9) {
  transition-delay: 0.45s;
}
#global-menu ul li:nth-child(10) {
  transition-delay: 0.5s;
}
#global-menu ul li a {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  pointer-events: all;
  transition: all 200ms ease-out;
  background: url(../img/common/nav/btn_menu.png) center center/100% 100%;
  cursor: pointer;
}
body.eventLock #global-menu ul li a {
  pointer-events: none;
  cursor: default;
}
#global-menu ul li a img {
  display: block;
  position: absolute;
  width: auto;
  height: 1.125rem;
  top: 2.5rem;
  left: 50%;
  transform: translate(-50%, 0);
}
#global-menu ul li:nth-of-type(1) a img {
  top: 2.1875rem;
  height: 2.0625rem;
}
#global-menu ul li:nth-of-type(2) a img {
  top: 2.75rem;
  height: 1.0625rem;
}
#global-menu ul li:nth-of-type(3) a img {
  top: 2.75rem;
  height: 1.0625rem;
}
#global-menu ul li:nth-of-type(4) a img {
  top: 2.1875rem;
  height: 2.0625rem;
}
@media screen and (min-width: 750px) {
  #global-menu ul li:not(.deactive):hover a {
    transform: translateY(-0.625rem);
  }
}
#global-menu ul li.active {
  pointer-events: none;
}
#global-menu ul li.active a {
  pointer-events: none;
  transform: translateY(-0.625rem);
  background: url(../img/common/nav/btn_menu_active.png) center center/100% 100% no-repeat;
}
@media screen and (max-width: 750px) {
  #global-menu ul li.active a {
    transform: translateY(-0.6666666667vw);
  }
}
#global-menu ul li.home {
  position: absolute;
  left: 50%;
  transform: translate(-27.375rem, 0);
  width: 5.625rem;
}
#global-menu ul li.home a {
  background: url(../img/common/nav/btn_single.png) center center/auto 100% no-repeat;
}
#global-menu ul li.home span {
  color: #f2b100;
}
body.is--pagetop-stby #global-menu ul li.home {
  transform: translate(-27.375rem, 100%);
  opacity: 0;
}
@media screen and (max-width: 750px) {
  #global-menu {
    height: 18.6666666667vw;
    bottom: 2.2666666667vw;
    padding-top: 5.0666666667vw;
  }
  #global-menu ul li {
    margin: 0 -0.4vw;
    width: 21.4666666667vw;
    height: 14vw;
  }
  #global-menu ul li a img {
    height: 2.5333333333vw;
    top: 5.3333333333vw;
  }
  #global-menu ul li:nth-of-type(1) a img {
    top: 4.6666666667vw;
    height: 4.4vw;
  }
  #global-menu ul li:nth-of-type(2) a img {
    top: 5.8666666667vw;
    height: 2.2666666667vw;
  }
  #global-menu ul li:nth-of-type(3) a img {
    top: 5.8666666667vw;
    height: 2.2666666667vw;
  }
  #global-menu ul li:nth-of-type(4) a img {
    top: 4.6666666667vw;
    height: 4.4vw;
  }
  #global-menu ul li.home {
    display: none;
  }
}

/* 
================================================================================
frameWrap 枠
================================================================================
*/
.frameWrap {
  position: fixed;
  width: 100%;
  height: calc(var(--vh) * 100);
  top: 0;
  left: 0;
  z-index: 2000;
  filter: drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.6));
  will-change: transform;
  transform: translateZ(0);
  pointer-events: none;
}
.frameWrap::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: #ff7300;
  transition: all 300ms ease-in 800ms;
}
body.siteActive .frameWrap::before {
  transform: translate(100%, 0);
}
.frameWrap .sns {
  display: none;
  position: absolute;
  bottom: 3.75rem;
  left: 3.75rem;
  z-index: 2010;
}
.frameWrap .sns ul li {
  margin: 0.625rem 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 0.625rem;
}
.frameWrap .sns ul li a {
  display: block;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: all;
  background: #fff;
}
.frameWrap .sns ul li a span {
  display: none;
}
.frameWrap .copyright {
  position: absolute;
  right: 0;
  top: 50%;
  transform: translate(0, -50%);
  color: #fff;
  font-size: 0.75rem;
  width: 2.5rem;
  height: 10rem;
  z-index: 2001;
}
.frameWrap .copyright span {
  display: block;
  transform: translate(0, 0%) rotate(90deg);
  white-space: nowrap;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .copyright {
    transform: translate(0.8em, -50%);
  }
}
.frameWrap .frame {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background: #ff7300;
  z-index: 2000;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  padding: 2.5rem;
  border-radius: 0px;
}
@media screen and (max-width: 750px) {
  .frameWrap .frame {
    padding: 5.3333333333vw;
    filter: drop-shadow(0px 0px 16px rgba(0, 0, 0, 0.6));
  }
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .frame {
    padding: 1.25rem;
  }
}
.frameWrap .corner {
  display: block;
  position: absolute;
  width: 5rem;
  height: 5rem;
  background: url("../img/common/parts/corner_2.svg") no-repeat center/contain;
}
@media screen and (max-width: 750px) {
  .frameWrap .corner {
    width: 10.6666666667vw;
    height: 10.6666666667vw;
  }
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .corner {
    width: 2.5rem;
    height: 2.5rem;
  }
}
.frameWrap .corner.tl {
  top: 0rem;
  left: 0rem;
  transform: rotate(0deg);
}
.frameWrap .corner.tr {
  top: 0rem;
  right: 0rem;
  transform: rotate(90deg);
}
.frameWrap .corner.bl {
  bottom: 0rem;
  left: 0rem;
  transform: rotate(270deg);
}
.frameWrap .corner.br {
  bottom: 0rem;
  right: 0rem;
  transform: rotate(180deg);
}
@media screen and (max-width: 750px) {
  .frameWrap .corner.tl {
    top: 0vw;
    left: 0vw;
  }
  .frameWrap .corner.tr {
    top: 0vw;
    right: 0vw;
  }
  .frameWrap .corner.bl {
    bottom: 0vw;
    left: 0vw;
  }
  .frameWrap .corner.br {
    bottom: 0vw;
    right: 0vw;
  }
}
.frameWrap .logo-area {
  width: 25.625rem;
  height: 11.875rem;
  border-radius: 0px 0px 2.5rem 0px;
  position: absolute;
  top: 0rem;
  left: 0rem;
  z-index: 2001;
  background: #ff7300;
  pointer-events: all;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .logo-area {
    width: 19.375rem;
    height: 8.125rem;
    border-radius: 0px 0px 1.25rem 0px;
  }
}
.frameWrap .logo-area.easing {
  transition: all 300ms ease-in-out;
}
.frameWrap .logo-area.easing span {
  transition: all 300ms ease-in-out;
}
.frameWrap .logo-area.easing::after, .frameWrap .logo-area.easing::before {
  transition: all 300ms ease-in-out;
}
.frameWrap .logo-area span {
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  z-index: 2105;
  background: url(../img/common/logo/logo.png) 2.5rem 3.125rem/82% auto no-repeat;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .logo-area span {
    background: url(../img/common/logo/logo.png) 1.25rem 1.875rem/82% auto no-repeat;
  }
}
body.frameZoom_hide .frameWrap .logo-area {
  transform: translate(0%, -100%);
}
body.frameZoom .frameWrap .logo-area {
  width: 18.75rem;
  height: 8.4375rem;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  body.frameZoom .frameWrap .logo-area {
    width: 14.375rem;
    height: 6.25rem;
  }
}
body.frameZoom .frameWrap .logo-area span {
  background: url(../img/common/logo/logo.png) 2.5rem 2.5rem/74% auto no-repeat;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  body.frameZoom .frameWrap .logo-area span {
    background: url(../img/common/logo/logo.png) 1.875rem 1.875rem/74% auto no-repeat;
  }
}
body.frameZoom .frameWrap .logo-area::after, body.frameZoom .frameWrap .logo-area::before {
  width: 2.5rem;
  height: 2.5rem;
}
body.frameZoom .frameWrap .logo-area::before {
  top: 7.25rem;
  left: 1.25rem;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  body.frameZoom .frameWrap .logo-area::before {
    top: 5rem;
    left: 0rem;
  }
}
body.frameZoom .frameWrap .logo-area::after {
  top: 1.375rem;
  right: -1.25rem;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  body.frameZoom .frameWrap .logo-area::after {
    top: 0rem;
    right: -1.25rem;
  }
}
body.resize .frameWrap .logo-area {
  transition: 0ms;
}
body.resize .frameWrap .logo-area * {
  transition: 0ms;
}
.frameWrap .logo-area::after, .frameWrap .logo-area::before {
  content: "";
  display: block;
  position: absolute;
  width: 5rem;
  height: 5rem;
  z-index: 2102;
  background: url("../img/common/parts/corner_1.svg") no-repeat center/contain;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .logo-area::after, .frameWrap .logo-area::before {
    width: 2.5rem;
    height: 2.5rem;
  }
}
.frameWrap .logo-area::before {
  top: 9.375rem;
  left: 0rem;
  transform: translateY(-1px) rotate(0deg);
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .logo-area::before {
    top: 6.875rem;
    left: 0rem;
  }
}
.frameWrap .logo-area::after {
  top: 0rem;
  right: -2.5rem;
  transform: translateY(-1px) rotate(0deg);
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .frameWrap .logo-area::after {
    top: 0rem;
    right: -1.25rem;
  }
}
@media screen and (max-width: 750px) {
  .frameWrap .logo-area {
    width: 40vw;
    height: 18.1333333333vw;
    border-radius: 0px 0px 5.3333333333vw 0px;
    position: absolute;
    top: 0vw;
    left: 0vw;
  }
  .frameWrap .logo-area span {
    width: 40vw;
    height: 18.1333333333vw;
    background: url(../img/common/logo/logo.png) 5.3333333333vw 5.3333333333vw/77% auto no-repeat;
  }
  .frameWrap .logo-area::after, .frameWrap .logo-area::before {
    width: 10.6666666667vw;
    height: 10.6666666667vw;
  }
  .frameWrap .logo-area::before {
    top: 12.8vw;
    left: 0vw;
  }
  .frameWrap .logo-area::after {
    top: 0vw;
    right: -5.3333333333vw;
  }
  body.frameZoom .frameWrap .logo-area {
    width: 40vw;
    height: 18vw;
    border-radius: 0px 0px 5.3333333333vw 0px;
  }
  body.frameZoom .frameWrap .logo-area span {
    background: url(../img/common/logo/logo.png) 5.3333333333vw 5.3333333333vw/74% auto no-repeat;
  }
  body.frameZoom .frameWrap .logo-area::after, body.frameZoom .frameWrap .logo-area::before {
    width: 5.3333333333vw;
    height: 5.3333333333vw;
  }
  body.frameZoom .frameWrap .logo-area::before {
    top: 15.4666666667vw;
    left: 2.6666666667vw;
  }
  body.frameZoom .frameWrap .logo-area::after {
    top: 2.9333333333vw;
    right: -2.6666666667vw;
  }
}

/* 
================================================================================
lang
================================================================================
*/
.lang-mode {
  position: fixed;
  top: 0rem;
  right: 2.5rem;
  width: 11.5625rem;
  z-index: 2100;
  pointer-events: all;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .lang-mode {
    top: 0rem;
    right: 1.25rem;
  }
}
@media screen and (max-width: 750px) {
  .lang-mode {
    top: 50%;
    left: 0rem;
    right: auto;
    transform: translateY(-50%);
    width: 9.3333333333vw;
    height: 34.6666666667vw;
    border-radius: 0 4vw 4vw 0;
    background-color: #ff7300;
  }
}
.lang-mode dl {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
}
@media screen and (max-width: 750px) {
  .lang-mode dl {
    display: grid;
    grid-template-columns: 9.3333333333vw 32vw;
    grid-gap: 0vw;
    align-items: center;
    height: 100%;
    position: absolute;
    left: 0;
    justify-content: flex-start;
  }
}
.lang-mode dl dt {
  display: flex;
  align-items: center;
  height: 2.5rem;
  color: #fff;
  cursor: pointer;
}
@media screen and (max-width: 750px) {
  .lang-mode dl dt {
    width: 100%;
    height: 100%;
    border-radius: 0rem 2.6666666667vw 2.6666666667vw 0rem;
    background-color: #ff7300;
  }
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .lang-mode dl dt {
    align-items: flex-start;
    height: 1.25rem;
  }
}
.lang-mode dl dt span {
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0;
  display: inline-flex;
  padding-left: 1.875rem;
  padding-right: 1.875rem;
  line-height: 1;
  position: relative;
}
.lang-mode dl dt span::before {
  content: "";
  display: block;
  width: 1.25rem;
  height: 1.25rem;
  background: url(../img/common/parts/icon_lang.png) center center/contain no-repeat;
  position: absolute;
  left: 0rem;
  top: 50%;
  transform: translate(0, -50%);
}
.lang-mode dl dt span::after {
  content: "▼";
  display: block;
  font-size: 0.75rem;
  width: 1.0625rem;
  height: 1.0625rem;
  position: absolute;
  right: 0rem;
  top: 60%;
  transform: translate(0, -50%);
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  .lang-mode dl dt span {
    height: 1.25rem;
    line-height: 1.25rem;
    padding-right: 1.25rem;
  }
  .lang-mode dl dt span::before {
    display: none;
  }
  .lang-mode dl dt span::after {
    top: 40%;
  }
}
@media screen and (max-width: 750px) {
  .lang-mode dl dt span {
    font-size: 3.2vw;
    transform: translate(4.6666666667vw, 14.6666666667vw) rotate(-90deg);
    transform-origin: left center;
    padding-left: 6vw;
    padding-right: 4.6666666667vw;
  }
  .lang-mode dl dt span::before {
    width: 3.7333333333vw;
    height: 3.7333333333vw;
    top: 50%;
    transform: translate(0, -50%);
  }
  .lang-mode dl dt span::after {
    font-size: 2.4vw;
    top: 50%;
  }
}
.lang-mode dl dd {
  display: flex;
  justify-content: center;
  padding-top: 0.625rem;
}
@media screen and (max-width: 750px) {
  .lang-mode dl dd {
    display: flex;
    align-items: center;
    padding: 0;
    height: 100%;
    justify-content: flex-start;
  }
}
.lang-mode dl dd ul {
  width: 9.375rem;
  background-color: #000;
  border-radius: 0.625rem;
  font-size: 1.0625rem;
  overflow: hidden;
  color: #ff7300;
  font-weight: 900;
  letter-spacing: 0;
  transform: translate(0.625rem, 0);
}
.lang-mode dl dd ul li {
  cursor: pointer;
}
.lang-mode dl dd ul li a {
  display: block;
  padding: 0.625rem;
}
.lang-mode dl dd ul li:not(:last-child) {
  border-bottom: solid 1px #666;
}
.lang-mode dl dd ul li:hover {
  background-color: #333;
}
.lang-mode dl dd ul li.active {
  background-color: #fff;
  color: #000;
  cursor: default;
  pointer-events: none;
}
.lang-mode.is--stby dl dd {
  display: none;
}

/* 
================================================================================
#container
================================================================================
*/
body.loadingFinish #container {
  visibility: visible;
}
#container.fixed, body.scrollMode_onepage #container {
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  overflow: hidden;
  margin: 0;
}
body.scrollMode_easing #container {
  position: fixed;
  width: 100%;
  height: auto;
  top: 0;
  left: 0;
  overflow: hidden;
  margin: 0;
}
#container #siteBG {
  display: none;
  position: absolute;
  width: 100%;
  height: 1250rem;
  top: 0;
  left: 0;
  overflow: hidden;
  z-index: 10000;
  pointer-events: none;
}
#container #siteBG span {
  display: none;
}
#container #siteBG::after {
  display: none;
  content: "";
  position: absolute;
  width: 100%;
  height: 150%;
  top: 0;
  left: 0;
  background: rgba(0, 0, 0, 0.7);
  transition: transform 2500ms cubic-bezier(0.35, 0.8, 0, 1), opacity 2500ms cubic-bezier(0.35, 0.8, 0, 1);
  opacity: 1;
  transform: translate(0, 0%);
}
body.topContents #container #siteBG::after {
  opacity: 0;
  transform: translate(0, 0%);
}
#container section {
  overscroll-behavior: contain;
}
#container #pageLoader {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  width: 100vw;
  height: 100dvh;
  height: 100svh;
  z-index: 1500;
  justify-content: center;
  align-items: center;
  transition: opacity 1000ms ease-in-out;
  pointer-events: none;
}
#container #pageLoader::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200vw;
  height: 200vw;
  background-color: #000;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0;
  border-radius: 200vw;
}
@media screen and (max-width: 1200px) {
  #container #pageLoader::before {
    width: 200vh;
    height: 200vh;
    border-radius: 200vh;
  }
}
#container #pageLoader span {
  aspect-ratio: 1/1;
  width: auto;
  height: 50vh;
  max-height: 28.125rem;
  background: url(../img/common/parts/page_loader.svg) center center/100% auto;
  transition: all 500ms ease-in-out;
  opacity: 1;
  transform: translate(0, 0%);
  transition: all 400ms cubic-bezier(0, 0.54, 0, 1);
}
#container #pageLoader.is--stby span {
  opacity: 0;
  pointer-events: none;
  transform: translate(0, 300%);
}
#container #pageLoader.is--out span {
  transition: all 300ms cubic-bezier(1, -0.01, 1, 0.26);
  opacity: 0;
  transform: translate(0, -500%);
}
#container #pageLoader.is--intro span {
  animation-name: loading_intro;
  animation-duration: 2.5s;
  animation-fill-mode: forwards;
  animation-delay: 0ms;
}
#container #pageLoader.is--intro::before {
  animation-name: loading_bg;
  animation-duration: 2.5s;
  animation-fill-mode: forwards;
  animation-delay: 0ms;
}

/* 
================================================================================
keyframes
================================================================================
*/
@keyframes loading_bg {
  30% {
    opacity: 0;
  }
  45% {
    opacity: 1;
  }
  70% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  90% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(0);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0);
  }
}
@keyframes loading_intro {
  0% {
    opacity: 0;
    transform: scale(0);
  }
  10% {
    opacity: 1;
    transform: scale(1);
  }
  30% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0;
    transform: scale(20);
  }
  60% {
    opacity: 0;
    transform: scale(0);
  }
  100% {
    opacity: 0;
    transform: scale(0);
  }
}
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
@keyframes tenmetsu {
  0% {
    opacity: 0.1;
  }
  50% {
    opacity: 1;
  }
  100% {
    opacity: 0.1;
  }
}
/* 
================================================================================
sample
================================================================================
*/
div.sample {
  width: 200px;
  height: 200px;
}
body.sample div.sample {
  text-align: center;
}
div.sample:before {
  content: "";
  display: block;
  width: 300px;
  height: 150px;
  background: blue;
}
.sample-1 {
  width: 100px;
}

.sample-2 {
  width: 200px;
}

.sample-3 {
  width: 300px;
}

@keyframes anim {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}
#container {
  background-color: #f50501;
}
#container .section {
  position: relative;
  min-height: 100dvh;
  min-height: 100svh;
  visibility: visible;
  text-align: left;
}
#container .section.layout-one {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 10rem 4.375rem;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  #container .section.layout-one {
    padding: 7.5rem 4.375rem;
  }
}
#container .section-bg video {
  position: fixed;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* アスペクト比を保ったまま画面いっぱいに */
  transform: translate(-50%, -50%);
  z-index: -1;
  /* 背景に配置 */
}
#container .section.onepage {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: calc(var(--vh) * 100);
  transition: opacity 300ms ease-in-out;
  overflow-y: scroll;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  align-items: flex-start;
}
#container .section.onepage::-webkit-scrollbar {
  width: 0px;
  /* ← 横スクロールバー幅 */
  height: 1px;
  /* ← 縦スクロールバー高さ */
}
#container .section.onepage::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.2);
  border-radius: 0px;
}
#container .section.onepage .inner-frame {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}
#container .section.onepage.is--stby {
  opacity: 0;
  pointer-events: none;
}
#container .section.onepage.is--stby * {
  pointer-events: none !important;
}
#container .section.onepage.is--out {
  opacity: 0;
  pointer-events: none;
}
#container .section.onepage.is--out * {
  pointer-events: none !important;
}
#container .section.fix-h {
  height: 100dvh;
  height: 100svh;
  overflow: hidden !important;
}
#container .section .stickyArea {
  position: sticky;
  top: 12.5rem;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: flex-end;
}
#container .section .stickyArea .contents {
  position: relative;
  width: 100%;
  height: auto;
}
#container .section p {
  margin-bottom: 2em;
}
#container .section-frame {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 3.75rem;
  margin: 0rem;
  padding: 0;
  width: 100%;
  height: fit-content;
}
#container .section-frame.single {
  display: flex;
  position: absolute;
  inset: 0;
  height: 100%;
  margin: 0rem;
  padding: 2.5rem;
}
#container .section-frame.single .section-frame-area {
  position: absolute;
  inset: 0;
  height: 100%;
  margin: 0rem;
  display: flex;
  justify-content: center;
  align-items: center;
}
#container .section-frame.col_1 {
  position: relative;
  height: auto;
  width: 100%;
  grid-template-columns: 1fr;
}
#container .section-frame-area {
  padding: 2.5rem;
}
#container .section#home-main .contents-belt {
  display: none;
  width: 100%;
  height: 10rem;
  background: url(../img/contents/home/belt.png) 50vw center/auto 100%;
  position: absolute;
  top: 50%;
  left: 0;
  transition: all 300ms ease-in-out 700ms;
}
body.resize #container .section#home-main .contents-belt {
  transition: all 0ms;
}
#container .section#home-main .contents-bg {
  display: none;
  width: 100%;
  height: 100dvh;
  height: 100svh;
  position: absolute;
  top: 0;
  left: 0;
  overflow: hidden;
  transition: opacity 500ms ease-in-out 500ms, clip-path 300ms ease-in-out 1000ms;
  clip-path: polygon(20vw 0, 60vw 0, 40vw 100vh, 0 100vh);
}
body.resize #container .section#home-main .contents-bg {
  transition: all 0ms !important;
}
body.resize #container .section#home-main .contents-bg * {
  transition: all 0ms !important;
}
#container .section#home-main .contents-bg .swiper-image {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  z-index: 10;
}
#container .section#home-main .contents-bg .swiper-image .bg {
  position: absolute;
  top: 0;
  right: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  transition: all 400ms cubic-bezier(0.59, 0.01, 0.35, 1) 0ms;
  clip-path: polygon(20vw 0, 60vw 0, 40vw 100svh, 0 100svh);
}
#container .section#home-main .contents-bg .swiper-image img {
  position: relative;
  z-index: 3;
  opacity: 0.3;
  width: auto;
  height: 150%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  margin-top: 12.5rem;
  margin-left: -8.125rem;
  transition: all 1000ms cubic-bezier(0, 0.58, 0.35, 1) 400ms;
}
#container .section#home-main .contents-bg .swiper-image.is--stby .bg {
  width: 0%;
}
#container .section#home-main .contents-bg .swiper-image.is--stby img {
  opacity: 0;
  transform: translate3d(-40%, -50%, 0);
}
#container .section#home-main .contents-bg .swiper-image img img, #container .section#home-main .contents-bg .swiper-image.is--out img {
  opacity: 0;
  transition: all 500ms cubic-bezier(0.69, -0.6, 0.47, 0.96) 0ms;
  transform: translate3d(-100%, -50%, 0);
}
#container .section#home-main .contents-bg::after {
  content: "";
  display: none;
  width: 100%;
  height: 100%;
  opacity: 1;
  background-image: radial-gradient(circle at center, #333 1px, transparent 0);
  background-size: 5px 5px;
  position: absolute;
  top: 0;
  z-index: 900000;
}
#container .section#home-main .contents-bg img {
  width: auto;
  height: 93.75rem;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
#container .section#home-main .contents-link {
  position: absolute;
  top: 4.375rem;
  right: 4.375rem;
  display: flex;
  gap: 1.25rem;
  filter: drop-shadow(0 0 0.625rem rgba(0, 0, 0, 0.3));
  will-change: transform;
  transform: translateZ(0); /* GPUレイヤーを明示的に確保 */
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  #container .section#home-main .contents-link {
    top: 3.125rem;
    right: 3.125rem;
    gap: 1.25rem;
  }
}
#container .section#home-main .contents-link a img {
  width: auto;
  height: 4.0625rem;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  #container .section#home-main .contents-link a img {
    height: 3.125rem;
  }
}
#container .section#home-main .contents-gallery {
  position: relative;
  height: 70vh;
  transform: scale(0.9) !important;
}
#container .section#home-main .contents-gallery-main {
  aspect-ratio: 1/1;
  width: auto;
  height: 70vh;
  animation-name: drop-bounce2;
  animation-duration: 1.1s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(0.3, 0.6, 0.4, 1);
  animation-delay: 0ms;
  animation-play-state: paused;
  transform-origin: center bottom;
}
#container .section#home-main .contents-gallery-main .swiper-image {
  position: absolute;
  width: 100%;
  height: 100%;
  top: -6.25rem;
  animation-name: drop-bounce2;
  animation-duration: 0.7s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(0.25, 0.65, 0.4, 1);
  animation-delay: 0ms;
  transform-origin: center bottom;
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#home-main .contents-gallery-main .swiper-image {
    top: -1.875rem;
  }
}
#container .section#home-main .contents-gallery-main .swiper-image img {
  width: auto;
  height: 58vh;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate3d(-50%, -50%, 0);
  transition: all 400ms ease-in-out;
  backface-visibility: hidden;
  will-change: transform, opacity;
  filter: brightness(120%) drop-shadow(0 0.9375rem 0.9375rem rgba(0, 0, 0, 0.5));
  will-change: transform;
}
body.resize #container .section#home-main .contents-gallery-main .swiper-image img {
  transition: all 0ms;
}
#container .section#home-main .contents-gallery-main .swiper-image.is--stby {
  transition: 0ms;
  animation: none;
  transform: translate(0, -300%);
}
#container .section#home-main .contents-gallery-main .swiper-image.is--stby img {
  opacity: 0;
  transform: translate(-50%, -50%);
}
#container .section#home-main .contents-gallery-main .swiper-image.is--out img {
  opacity: 0;
  transition: all 300ms ease-in-out;
  transform: translate(-50%, 50%) !important;
}
#container .section#home-main .contents-gallery-cycle {
  position: absolute;
  bottom: -1.875rem;
  left: 50%;
  transform: translate(-50%, 0rem);
  transition: opacity 500ms ease-in-out 1500ms;
  width: 121.25rem;
  height: 15.625rem;
  padding-top: 0.625rem;
  display: block;
  overflow: hidden;
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#home-main .contents-gallery-cycle {
    visibility: hidden;
  }
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-gallery-cycle {
    width: 80vw;
    height: auto;
    overflow: visible;
  }
}
#container .section#home-main .contents-gallery-cycle .swiper1 {
  display: flex;
  justify-content: center;
}
#container .section#home-main .contents-gallery-cycle .swiper-wrapper {
  width: auto;
  display: flex;
  align-items: flex-end;
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-gallery-cycle .swiper-wrapper {
    justify-content: center;
    flex-wrap: wrap;
  }
}
#container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper {
  width: 100vw;
  height: auto;
  margin: auto;
  overflow: visible;
}
#container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide {
  position: relative;
  width: 11.25rem;
  margin: 0 -1.5625rem;
  transition: opacity 500ms ease-in-out, transform 500ms cubic-bezier(0.1, 1.29, 0.36, 1.01);
  transition-delay: 0ms;
  cursor: pointer;
}
@media screen and (max-width: 1200px) {
  #container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide {
    width: 14.5833333333vw;
    margin: 0 -2.0833333333vw 3.125vw !important;
  }
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide {
    width: 16vw;
    margin: 0 1.3333333333vw -4vw !important;
  }
}
#container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide img {
  width: 100%;
  height: auto;
}
#container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide-active {
  pointer-events: none;
  cursor: default;
}
body.autoplayStart #container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide-active {
  opacity: 0.3 !important;
}
body.cycleLock #container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper-slide {
  pointer-events: none;
  cursor: default;
}
#container .section#home-main .contents-logo {
  position: absolute;
  top: 5rem;
  left: 5rem;
  width: 21.875rem;
  height: auto;
}
@media screen and (min-width: 750px) and (max-height: 800px) {
  #container .section#home-main .contents-logo {
    top: 3.75rem;
    left: 3.75rem;
  }
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-logo {
    width: 26.6666666667vw;
    top: 10.6666666667vw;
    left: 10.6666666667vw;
  }
}
#container .section#home-main .contents-stand {
  position: absolute;
  bottom: 9.375rem;
  left: 50%;
  transform: translate(-50%, 0);
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-stand {
    bottom: 20vw;
    height: 53.3333333333vw;
  }
}
#container .section#home-main .contents-stand-items {
  display: flex;
  justify-content: center;
  align-items: center;
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-stand-items {
    flex-wrap: wrap;
  }
}
#container .section#home-main .contents-stand-items-item {
  width: 6.25rem;
  height: auto;
  margin: 0 1.25rem;
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-stand-items-item {
    width: 18.6666666667vw;
    margin: 0 1.3333333333vw;
  }
}
@media screen and (max-width: 750px) {
  #container .section#home-main .contents-belt {
    display: none;
  }
  #container .section#home-main .contents-bg {
    clip-path: polygon(0vw 0, 70vw 0, 30vw 100svh, 0 100svh);
  }
  #container .section#home-main .contents-bg .swiper-image .bg {
    clip-path: polygon(0vw 0, 70vw 0, 40vw 100svh, 0 100svh);
  }
  #container .section#home-main .contents-bg .swiper-image img {
    height: 150%;
    margin-top: 26.6666666667vw;
    margin-left: -17.3333333333vw;
  }
  #container .section#home-main .contents-link {
    top: 9.3333333333vw;
    right: 9.3333333333vw;
    gap: 2.6666666667vw;
    filter: drop-shadow(0 0 1.3333333333vw rgba(0, 0, 0, 0.3));
    will-change: transform;
    transform: translateZ(0);
  }
  #container .section#home-main .contents-link a img {
    height: 8vw;
  }
  #container .section#home-main .contents-gallery {
    height: 73.3333333333vw;
  }
  #container .section#home-main .contents-gallery-main {
    width: 66.6666666667vw;
    height: 66.6666666667vw;
  }
  #container .section#home-main .contents-gallery-main .swiper-image img {
    height: 66.6666666667vw;
    filter: brightness(120%) drop-shadow(0 2vw 2vw rgba(0, 0, 0, 0.5));
    will-change: transform;
  }
  #container .section#home-main .contents-gallery-cycle {
    transform: translate(-50%, 29.3333333333vw);
    bottom: 24vw;
  }
  #container .section#home-main .contents-gallery-cycle .swiperUnit .swiperWrap .swiper {
    width: 100vw;
  }
}
#container .section#home-main.is--hero--stby .contents-belt {
  opacity: 0;
  width: 0;
  transform: translate(0%, 0);
}
#container .section#home-main.is--hero--stby .contents-bg {
  opacity: 0;
}
#container .section#home-main.is--hero--stby .contents-gallery-cycle {
  opacity: 1;
}
#container .section#home-main.is--hero--stby .contents-gallery-cycle .swiper-slide {
  opacity: 0;
  transform: translateY(100%) scale(1);
}
#container .section#home-main.is--hero--stby .contents-bg {
  clip-path: polygon(60vw 0, 60vw 0, 40vw 100svh, 40vw 100svh);
}
@media screen and (max-width: 750px) {
  #container .section#home-main.is--hero--stby .contents-bg {
    clip-path: polygon(70vw 0, 70vw 0, 30vw 100svh, 30vw 100svh);
  }
}
#container .section#home-main.is--hero--in .contents-gallery-main {
  animation-play-state: running;
}
#container .section#concept {
  display: flex;
}
#container .section#concept::before {
  position: fixed;
  top: 0;
  left: 0;
  content: "";
  display: none;
  width: 100%;
  height: 100%;
  opacity: 1;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.6);
  background-image: radial-gradient(#000 30%, transparent 31%), radial-gradient(#000 30%, transparent 31%);
  background-size: 4px 4px;
  background-position: 0 0, 4px 4px;
}
#container .section#concept .section-frame {
  position: relative;
  color: #303030;
  font-size: 1.375rem;
  font-weight: 900;
  line-height: 2;
  min-height: 100vh;
  z-index: 2;
}
@media screen and (max-width: 750px) {
  #container .section#concept .section-frame {
    grid-template-columns: 1fr;
    width: auto;
    margin: auto;
    font-size: 3.4666666667vw;
    padding: 16vw 20vw 20vw;
  }
}
#container .section#concept .section-frame-area:nth-of-type(1) .stickyArea {
  top: 0rem;
  height: 100%;
  align-items: center;
}
@media screen and (max-width: 750px) {
  #container .section#concept .section-frame-area:nth-of-type(1) {
    padding: 0;
  }
}
#container .section#concept .section-frame-area:nth-of-type(2) {
  text-align: left;
  display: flex;
  align-items: center;
  text-justify: inter-word;
  overflow-wrap: break-word;
  padding-left: 0;
  padding-right: 10rem;
}
@media screen and (max-width: 750px) {
  #container .section#concept .section-frame-area:nth-of-type(2) {
    padding: 0 0 26.6666666667vw;
  }
}
#container .section#concept .contents-logo {
  display: flex;
  width: 100%;
  justify-content: center;
  padding-left: 6.25rem;
  margin-bottom: 2.5rem;
}
@media screen and (max-width: 750px) {
  #container .section#concept .contents-logo {
    justify-content: center;
    padding-left: 0vw;
    margin-bottom: 2.6666666667vw;
  }
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#concept .contents-logo {
    margin-bottom: 5vh;
  }
}
#container .section#concept .contents-logo img {
  width: 17.5rem;
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#concept .contents-logo img {
    width: auto;
    height: 25vh;
  }
}
@media screen and (max-width: 750px) {
  #container .section#concept .contents-logo img {
    width: 30.6666666667vw;
  }
}
#container .section#concept .contents-chara {
  display: flex;
  width: 100%;
  justify-content: center;
  padding-left: 6.25rem;
}
@media screen and (max-width: 750px) {
  #container .section#concept .contents-chara {
    padding-left: 0vw;
  }
}
#container .section#concept .contents-chara img {
  width: 28.125rem;
  margin-right: -1.25rem;
}
@media screen and (max-width: 750px) {
  #container .section#concept .contents-chara img {
    width: 60vw;
    margin: auto;
  }
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#concept .contents-chara img {
    width: auto;
    height: 25vh;
  }
}
#container .section#feature .bg-pattern {
  display: none;
}
#container .section#feature .section-frame {
  padding: 11.25rem 10rem;
}
@media screen and (min-width: 750px) and (max-height: 733px) {
  #container .section#feature .section-frame {
    padding: 8.75rem 10rem;
  }
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame {
    padding: 26.6666666667vw 20vw 26.6666666667vw;
  }
}
#container .section#feature .section-frame-area {
  padding: 0;
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame-area {
    padding-bottom: 26.6666666667vw;
  }
}
#container .section#feature .section-frame .contents-unit {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 5rem;
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame .contents-unit {
    grid-gap: 10.6666666667vw;
  }
}
#container .section#feature .section-frame .contents-unit-item {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 3.75rem;
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame .contents-unit-item {
    grid-template-columns: 1fr;
    grid-gap: 2.6666666667vw;
  }
}
#container .section#feature .section-frame .contents-unit-item-image img {
  box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.5);
}
#container .section#feature .section-frame .contents-unit-item-text {
  padding-top: 0rem;
  font-size: 1.375rem;
  display: flex;
  align-content: center;
  flex-wrap: wrap;
  gap: 0;
  text-justify: inter-word;
  overflow-wrap: break-word;
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame .contents-unit-item-text {
    font-size: 3.4666666667vw;
  }
}
#container .section#feature .section-frame .contents-unit-item-text p {
  margin-bottom: 1.25rem;
}
#container .section#feature .section-frame .contents-unit-item-text p:last-child {
  margin-bottom: 0;
}
@media screen and (max-width: 750px) {
  #container .section#feature .section-frame .contents-unit-item-text p {
    margin-bottom: 2.6666666667vw;
  }
  #container .section#feature .section-frame .contents-unit-item-text p:last-child {
    margin-bottom: 0;
  }
}
#container .section#products .section-frame {
  position: relative;
  min-height: 100vh;
  grid-template-columns: 40vw 1fr;
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame {
    display: block;
  }
}
#container .section#products .section-frame-area:nth-of-type(1) {
  padding: 0rem;
  background: #000000;
  background: linear-gradient(0deg, rgb(220, 231, 243) 0%, rgb(181, 189, 198) 78%);
  background-attachment: fixed;
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(1) {
    position: relative;
    width: 100%;
    height: auto;
    background: none;
  }
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea {
  top: 0rem;
  height: 100vh;
  padding: 7.5rem 2.5rem 7.5rem 5rem;
  box-shadow: 0px 0 20px 0px rgba(0, 0, 0, 0.5);
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(1) .stickyArea {
    position: relative;
    top: 0vw;
    width: 100%;
    height: 120vw;
    background: linear-gradient(0deg, rgb(220, 231, 243) 0%, rgb(181, 189, 198) 78%);
    padding: 8vw 8vw 0;
  }
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea-frame {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  padding: 0;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents {
  pointer-events: all;
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 1/1;
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents {
    min-width: 100%;
    overflow: hidden;
    padding-left: 0vw;
    min-height: 100vw;
  }
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image {
  position: absolute;
  width: calc(100% - 3.75rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: opacity 200ms ease-in-out;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit {
  animation-name: drop-bounce2;
  animation-duration: 0.7s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(0.25, 0.65, 0.4, 1);
  animation-delay: 0ms;
  animation-play-state: running;
  transform-origin: center bottom;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit .swiperWrap {
  transition: all 400ms ease-in-out;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit .swiperWrap .swiper-slide {
  aspect-ratio: 1/1;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit .swiper-pagination-bullets .swiper-pagination-bullet {
  background-color: #a6b9d2;
  background: linear-gradient(0deg, #a7bad4 0%, #838e9d 78%);
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit .swiper-pagination-bullets .swiper-pagination-bullet::after {
  border: 0;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image .detailUnit .swiper-pagination-bullets .swiper-pagination-bullet-active {
  background: #fd790c;
  box-shadow: 0 0 10px 2px rgba(242, 177, 0, 0.5);
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image {
    top: 50%;
    right: auto;
    left: 50%;
    transform: translate(-50%, -50%);
  }
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--stby {
  pointer-events: none;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--stby img {
  opacity: 0;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--stby .detailUnit {
  animation: none;
  transform: translate(0, -300%);
  animation-play-state: paused;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--stby .detailUnit .swiperWrap {
  opacity: 0;
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--out .detailUnit .swiperWrap {
  transform: translate(0, 300%);
}
#container .section#products .section-frame-area:nth-of-type(1) .stickyArea .contents .products-image.is--out .detailUnit .swiper-pagination-bullets {
  opacity: 0;
}
#container .section#products .section-frame-area:nth-of-type(2) {
  padding: 10rem 13.75rem 13.75rem 0;
  transition: opacity 300ms ease-out;
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(2) {
    padding: 6.6666666667vw 32vw 29.3333333333vw 13.3333333333vw;
  }
}
#container .section#products .section-frame-area:nth-of-type(2).is--out {
  transition: opacity 100ms ease-in-out;
  opacity: 0;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-title {
  font-size: 2.375rem;
  font-weight: 900;
  line-height: 1.5;
  margin-bottom: 1em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table {
  text-justify: inter-word;
  overflow-wrap: break-word;
}
@media screen and (max-width: 750px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-table {
    padding-bottom: 0vw;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text h3,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten h3,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table h3 {
  font-size: 1.375rem;
  font-weight: 900;
  margin-bottom: 1em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl {
  display: grid;
  grid-template-columns: auto 1fr;
  margin-bottom: 5rem;
  position: relative;
}
@media screen and (max-width: 1200px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl {
    grid-template-columns: 1fr;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dt,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dt,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dt,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd {
  padding: 1.5em 0;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dt,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dt,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dt {
  padding-right: 1em;
  position: relative;
  font-weight: 900;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dt::before,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dt::before,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dt::before {
  position: absolute;
  top: 0;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.1875rem;
  background-color: #303030;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dt:nth-last-of-type(1)::after,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dt:nth-last-of-type(1)::after,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dt:nth-last-of-type(1)::after {
  position: absolute;
  bottom: 0rem;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.1875rem;
  background-color: #303030;
}
@media screen and (max-width: 1200px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dt:nth-last-of-type(1)::after,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dt:nth-last-of-type(1)::after,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dt:nth-last-of-type(1)::after {
    display: none;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd {
  padding-left: 2em;
  position: relative;
}
@media screen and (max-width: 1200px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd {
    padding-top: 0;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd::before,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd::before,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd::before {
  position: absolute;
  top: 0.125rem;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.0625rem;
  background-color: #303030;
}
@media screen and (max-width: 1200px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd::before,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd::before,
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd::before {
    display: none;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd:nth-last-of-type(1)::after,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd:nth-last-of-type(1)::after,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd:nth-last-of-type(1)::after {
  position: absolute;
  bottom: 0rem;
  left: 0;
  content: "";
  display: block;
  width: 100%;
  height: 0.0625rem;
  background-color: #303030;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd p,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd p,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd p {
  margin-bottom: 0;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text dl dd p:not(:last-child),
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten dl dd p:not(:last-child),
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table dl dd p:not(:last-child) {
  margin-bottom: 1em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text ul,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten ul,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table ul {
  margin-bottom: 2em;
  list-style: disc;
  text-align: left;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-text ul li,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten ul li,
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table ul li {
  margin-left: 1.5em;
  padding-left: 0em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten {
  padding-top: 2em;
  margin-bottom: 2em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten.none {
  display: none;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten h4 {
  width: 100%;
  font-size: 1.375rem;
  font-weight: 900;
  margin-bottom: 0.5em;
  line-height: 1.4;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten h5 {
  font-size: 1rem;
  font-weight: 900;
  margin-bottom: 0.5em;
  line-height: 1.4;
  width: 100%;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten small {
  display: inline-block;
  line-height: 1.4;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid {
  grid-template-columns: 12.5rem 1fr;
  grid-gap: 1em;
}
@media screen and (max-width: 1200px) {
  #container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid {
    grid-template-columns: 1fr;
  }
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid-item {
  display: flex;
  align-content: flex-start;
  flex-wrap: wrap;
  position: relative;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid-item a {
  text-decoration: underline;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid-item.image {
  cursor: pointer;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid-item.image span {
  position: relative;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-tokuten .grid-item.image span::after {
  content: "";
  display: block;
  width: 2em;
  height: 2em;
  background: url(../img/common/parts/icon_zoom.png) center center/100% auto no-repeat;
  position: absolute;
  bottom: 0.5em;
  right: 0.5em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-table.none {
  display: none;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common {
  display: flex;
  justify-content: center;
  flex-direction: column;
  text-align: center;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common.none {
  display: none;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common dl {
  border: solid 0.25rem #303030;
  font-weight: 900;
  margin-bottom: 1.875rem;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common dl dt {
  padding: 1.25rem;
  color: #303030;
  background-color: #303030;
  color: #fff;
  line-height: 1;
  font-size: 1.125rem;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common dl dd {
  padding: 1.25rem;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common dl dd strong {
  font-size: 1.4em;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common .btn-order {
  width: 18.75rem;
  margin: 0 auto 1.875rem;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common .links {
  margin: 0 auto 1.875rem;
}
#container .section#products .section-frame-area:nth-of-type(2) #product-detail-text-common ul {
  width: fit-content;
  margin: auto;
  font-weight: 300;
}
#container .section#products .section-frame-area:nth-of-type(2) .copy {
  text-align: center;
  font-size: 0.75rem;
  margin: 0 auto 1.875rem;
  font-weight: 300;
  padding-top: 1.875rem;
}
#container .section#products .products-changer {
  position: fixed;
  right: 2.5rem;
  top: 50%;
  transform: translateY(calc(-50% - 0rem));
  width: 10.625rem;
  height: 60vh;
}
@media screen and (max-width: 750px) {
  #container .section#products .products-changer {
    width: 22.6666666667vw;
    height: 54.6666666667vw;
    top: auto;
    bottom: 28.6666666667vw;
    right: 5.3333333333vw;
    transform: translateY(0);
  }
}
#container .section#products .products-changer .products-navi {
  filter: drop-shadow(0.1875rem 0.1875rem 0.3125rem rgba(0, 0, 0, 0.4));
  will-change: transform;
  transform: translateZ(0);
  position: fixed;
  top: 0%;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 10;
  mask-image: linear-gradient(0deg, rgba(255, 255, 255, 0) 0%, rgb(255, 255, 255) 10%, rgb(255, 255, 255) 50%, rgb(255, 255, 255) 90%, rgba(255, 255, 255, 0) 100%);
  mask-repeat: no-repeat;
  mask-size: 100% 100%;
}
#container .section#products .products-changer .products-navi-contents {
  position: absolute;
  top: 0;
  left: 0.625rem;
  width: 9.375rem;
}
@media screen and (max-width: 750px) {
  #container .section#products .products-changer .products-navi-contents {
    left: 2.6666666667vw;
    width: 21.3333333333vw;
  }
}
#container .section#products .products-changer .products-navi-item {
  width: 9.375rem;
  padding: 10px;
  opacity: 0.5;
  transition: transform 0.3s, opacity 0.3s;
  position: relative;
}
@media screen and (max-width: 750px) {
  #container .section#products .products-changer .products-navi-item {
    padding: 1.3333333333vw;
    width: 18.6666666667vw;
  }
}
#container .section#products .products-changer .products-navi-item::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 11px solid #eb6100;
  border-left: 0;
  position: absolute;
  left: 0;
  top: 50%;
  transform: translate(0%, -50%);
  visibility: hidden;
}
#container .section#products .products-changer .products-navi-item.is-active {
  opacity: 1;
}
#container .section#products .products-changer .products-navi-item.is-active::after {
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-right: 11px solid #ffba00;
  visibility: visible;
}
@media screen and (max-width: 750px) {
  #container .section#products .products-changer .products-navi-item.is-active::after {
    border-top: 1.3333333333vw solid transparent;
    border-bottom: 1.3333333333vw solid transparent;
    border-right: 1.8666666667vw solid #ffba00;
  }
}
#container .section#products .products-changer .products-navi-item.is-active .products-navi-item-btn-inwrap {
  border-color: #f2b100;
}
#container .section#products .products-changer .products-navi-item-btn-inwrap {
  border-radius: 50%;
  overflow: hidden;
  border: solid 4px #ff7300;
  position: relative;
}
#container .section#products .products-changer .products-navi-item-btn-inwrap img {
  width: 100%;
  height: auto;
  display: block;
}
#container .section#products .products-changer .products-navi-pager-btn {
  filter: drop-shadow(0.1875rem 0.1875rem 0.3125rem rgba(0, 0, 0, 0.4));
  will-change: transform;
  transform: translateZ(0);
  width: 100%;
  height: 40px;
  text-align: center;
  line-height: 40px;
  cursor: pointer;
  position: absolute;
  left: 0;
}
@media screen and (max-width: 750px) {
  #container .section#products .products-changer .products-navi-pager-btn {
    width: 20vw;
    left: 2vw;
  }
}
#container .section#products .products-changer .products-navi-pager-btn span {
  visibility: hidden;
}
#container .section#products .products-changer .products-navi-pager-btn::after {
  content: "";
  display: block;
  width: 3.875rem;
  height: 2.125rem;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: url(../img/common/parts/arrow.png) center center/contain no-repeat;
}
#container .section#products .products-changer .products-navi-pager-btn.deactive {
  pointer-events: none;
  opacity: 0.3;
}
#container .section#products .products-changer .products-navi-pager-btn-prev {
  top: -50px;
}
#container .section#products .products-changer .products-navi-pager-btn-prev::after {
  transform: translate(-50%, -50%) rotate(180deg);
}
#container .section#products .products-changer .products-navi-pager-btn-next {
  bottom: -50px;
}
#container .section#howto .inner-frame {
  width: 100%;
  max-width: 75rem;
}
#container .section#howto .section-frame {
  background-color: transparent;
  color: #303030;
  padding: 0rem 0rem;
  margin: auto;
  width: 100%;
  grid-gap: 0rem;
  grid-template-columns: 1fr 2.5rem 1fr;
}
@media screen and (max-width: 1200px) {
  #container .section#howto .section-frame {
    grid-template-columns: 1fr;
    min-width: inherit;
    width: 100%;
    padding: 0vw 4vw 0vw;
  }
}
#container .section#howto .section-frame .icon-head {
  text-align: left;
}
#container .section#howto .section-frame-area {
  background-color: #fff;
  padding: 0;
  border-radius: 1.25rem;
  overflow: hidden;
  display: grid;
  grid-template-rows: subgrid;
  padding: 0;
  grid-gap: 0rem;
  grid-row: span 3;
}
#container .section#howto .section-frame-area .section-frame-area-contents:nth-of-type(2) .ex {
  margin-top: 0;
}
#container .section#howto .section-frame-area:nth-of-type(1) .section-frame-area-contents:nth-of-type(1) {
  padding-top: 1.25rem;
}
#container .section#howto .section-frame-area:nth-of-type(2) {
  position: relative;
  background-color: transparent;
}
#container .section#howto .section-frame-area:nth-of-type(2)::after {
  content: "";
  display: none;
  width: 100%;
  height: calc(100% - 7.5rem);
  background: repeating-linear-gradient(to bottom, #ccc 0, #ccc 8px, #fff 8px, #fff 16px);
  background-size: 4px 16px;
  background-repeat: repeat-y;
  background-position: center top;
  position: absolute;
  top: 5.75rem;
  transform: translate(0, 0%);
}
@media screen and (max-width: 1200px) {
  #container .section#howto .section-frame-area:nth-of-type(2) {
    display: block;
    width: 100%;
    height: 4vw;
  }
  #container .section#howto .section-frame-area:nth-of-type(2)::after {
    display: none;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0%);
    width: calc(100% - 4vw);
    height: 100%;
    background: repeating-linear-gradient(to right, #ccc 0, #ccc 8px, #fff 8px, #fff 16px);
    background-size: 16px 4px;
    background-repeat: repeat-x;
    background-position: left center;
  }
}
#container .section#howto .section-frame-area:nth-of-type(3) {
  border-left: 0;
}
#container .section#howto .section-frame-area:nth-of-type(3) h3 span::before {
  content: "②";
}
#container .section#howto .section-frame-area:nth-of-type(3) .modal-open {
  cursor: pointer;
}

@keyframes revealMask {
  to {
    -webkit-mask-position: right center;
    mask-position: right center;
  }
}
/* 
================================================================================
loader
================================================================================
*/
#loader {
  display: block;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: calc(var(--vh) * 100);
  background: #ff7300;
  overflow: hidden;
  z-index: 50000;
  transition: all 1000ms ease 500ms;
}
body.loadingFinish #loader {
  opacity: 0;
  pointer-events: none;
}
#loader #loadingAnim {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 2.5rem;
  height: 2.5rem;
  transition: all 250ms ease;
}
body.loadingAnimFinish #loader #loadingAnim {
  opacity: 0;
}
#loader #loadingCircle {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -200%);
  width: 2.5rem;
  height: 2.5rem;
}
#loader #loadingCircle::before, #loader #loadingCircle::after {
  content: "";
  display: block;
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: solid 2px rgba(0, 187, 187, 0.3);
  opacity: 0;
  animation-name: loading_circle;
  animation-duration: 2s;
  animation-iteration-count: infinite;
  animation-fill-mode: forwards;
  animation-delay: 300ms;
}
#loader #loadingCircle::after {
  animation-delay: 600ms;
}

@keyframes loading_circle {
  0% {
    transform: scale(0);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    transform: scale(2);
    opacity: 0;
  }
}