@charset "UTF-8";
:root {
  --maincolor: #00e88e;
  --subcolor: #fff;
  --textcolor: #fff;
  --container: 1350px;
}

/* ======== ↓ common ↓ ======== */
#contents {
  font-size: 20px;
  font-family: "Noto Serif", serif;
  font-weight: normal;
  line-height: 1.5;
  letter-spacing: 0;
  color: var(--textcolor);
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  position: relative;
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents {
    font-size: 1.48vw;
  }
}

@media screen and (max-width: 800px) {
  #contents {
    font-size: max(2.5vw,14px);
  }
}

#contents * {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

#contents a {
  opacity: 1;
  color: inherit;
  background-color: transparent;
  text-decoration: none !important;
  -webkit-transition: all 0.15s ease;
  transition: all 0.15s ease;
}

#contents a.hover {
  color: var(--maincolor);
  background-color: transparent;
  -webkit-transition: all 0.5s ease;
  transition: all 0.5s ease;
}

#contents img {
  max-width: 100%;
  height: auto;
  display: block;
}

#contents img.full {
  width: 100%;
  max-width: none;
}

#contents img.alignCenter {
  margin-left: auto;
  margin-right: auto;
}

#contents .cover {
  width: 100%;
  max-width: none;
  height: auto;
}

#contents ul, #contents ol {
  list-style: none;
}

#contents .sectionWrapper {
  position: relative;
  width: 100%;
  height: 100%;
}

#contents .widthWrapper {
  position: relative;
  width: 100%;
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

@media screen and (max-width: 1370px) {
  #contents .widthWrapper {
    padding-left: 2%;
    padding-right: 2%;
  }
}

@media screen and (max-width: 800px) {
  #contents .widthWrapper {
    padding-left: 4%;
    padding-right: 4%;
  }
}

#contents .insideWrapper {
  position: relative;
  width: 80%;
  max-width: inherit;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

#contents :root {
  --c-flex-gap: 2%;
}

#contents .c-flex {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

#contents .c-flex.gap > * {
  margin-left: var(--c-flex-gap);
}

#contents .c-flex.gapLarge > * {
  margin-left: calc(var(--c-flex-gap) * 2);
}

#contents .c-flex:not(.c-flex-reverse) > *:first-child {
  margin-left: 0;
}

#contents .c-flex--2 > * {
  width: calc(100% / 2);
}

#contents .c-flex--2.gap > * {
  width: calc(calc(100% - calc(var(--c-flex-gap) * calc(2 - 1))) / 2);
}

#contents .c-flex--2.gap > *:nth-child(2n+1) {
  margin-left: 0;
}

#contents .c-flex--3 > * {
  width: calc(100% / 3);
}

#contents .c-flex--3.gap > * {
  width: calc(calc(100% - calc(var(--c-flex-gap) * calc(3 - 1))) / 3);
}

#contents .c-flex--3.gap > *:nth-child(3n+1) {
  margin-left: 0;
}

#contents .c-flex--4 > * {
  width: calc(100% / 4);
}

#contents .c-flex--4.gap > * {
  width: calc(calc(100% - calc(var(--c-flex-gap) * calc(4 - 1))) / 4);
}

#contents .c-flex--4.gap > *:nth-child(4n+1) {
  margin-left: 0;
}

#contents .c-flex--5 > * {
  width: calc(100% / 5);
}

#contents .c-flex--5.gap > * {
  width: calc(calc(100% - calc(var(--c-flex-gap) * calc(5 - 1))) / 5);
}

#contents .c-flex--5.gap > *:nth-child(5n+1) {
  margin-left: 0;
}

#contents .c-flex--6 > * {
  width: calc(100% / 6);
}

#contents .c-flex--6.gap > * {
  width: calc(calc(100% - calc(var(--c-flex-gap) * calc(6 - 1))) / 6);
}

#contents .c-flex--6.gap > *:nth-child(6n+1) {
  margin-left: 0;
}

#contents .c-flex--end {
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
}

#contents .c-flex--center {
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

#contents .c-flex--between {
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}

#contents .c-flex--alignEnd {
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
}

#contents .c-flex--alignCenter {
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

#contents .c-flex--wrap {
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

#contents .c-flex--reverse {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

#contents .c-flex--column {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

#contents .alignCenter {
  text-align: center;
}

#contents .alignRight {
  text-align: right;
}

#contents .alignLeft {
  text-align: left;
}

#contents img.alignCenter {
  margin-left: auto;
  margin-right: auto;
}

#contents img.alignLeft {
  margin-left: 0;
  margin-right: auto;
}

#contents img.alignRight {
  margin-left: auto;
  margin-right: 0;
}

#contents .lh-10 {
  line-height: 1;
}

#contents .lh-15 {
  line-height: 1.5;
}

#contents .lh-20 {
  line-height: 2;
}

#contents .font-10 {
  font-size: 10px !important;
}

#contents .font-12 {
  font-size: 12px !important;
}

#contents .font-14 {
  font-size: 14px !important;
}

#contents .font-16 {
  font-size: 16px !important;
}

#contents .font-18 {
  font-size: 18px !important;
}

#contents .font-20 {
  font-size: 20px !important;
}

#contents .font-22 {
  font-size: 22px !important;
}

#contents .font-24 {
  font-size: 24px !important;
}

#contents .font-26 {
  font-size: 26px !important;
}

#contents .font-28 {
  font-size: 28px !important;
}

#contents .font-30 {
  font-size: 30px !important;
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .font-10 {
    font-size: 0.74074vw !important;
  }
  #contents .font-12 {
    font-size: 0.88889vw !important;
  }
  #contents .font-14 {
    font-size: 1.03704vw !important;
  }
  #contents .font-16 {
    font-size: 1.18519vw !important;
  }
  #contents .font-18 {
    font-size: 1.33333vw !important;
  }
  #contents .font-20 {
    font-size: 1.48148vw !important;
  }
  #contents .font-22 {
    font-size: 1.62963vw !important;
  }
  #contents .font-24 {
    font-size: 1.77778vw !important;
  }
  #contents .font-26 {
    font-size: 1.92593vw !important;
  }
  #contents .font-28 {
    font-size: 2.07407vw !important;
  }
  #contents .font-30 {
    font-size: 2.22222vw !important;
  }
}

@media screen and (max-width: 800px) {
  #contents .font-10 {
    font-size: 0.92593vw !important;
  }
  #contents .font-12 {
    font-size: 1.11111vw !important;
  }
  #contents .font-14 {
    font-size: 1.2963vw !important;
  }
  #contents .font-16 {
    font-size: 1.48148vw !important;
  }
  #contents .font-18 {
    font-size: 1.66667vw !important;
  }
  #contents .font-20 {
    font-size: 1.85185vw !important;
  }
  #contents .font-22 {
    font-size: 2.03704vw !important;
  }
  #contents .font-24 {
    font-size: 2.22222vw !important;
  }
  #contents .font-26 {
    font-size: 2.40741vw !important;
  }
  #contents .font-28 {
    font-size: 2.59259vw !important;
  }
  #contents .font-30 {
    font-size: 2.77778vw !important;
  }
}

#contents .mt-5 {
  margin-top: 0.5em !important;
}

#contents .mt-10 {
  margin-top: 1em !important;
}

#contents .mt-15 {
  margin-top: 1.5em !important;
}

#contents .mt-20 {
  margin-top: 2em !important;
}

#contents .mt-25 {
  margin-top: 2.5em !important;
}

#contents .mt-30 {
  margin-top: 3em !important;
}

#contents .mt-35 {
  margin-top: 3.5em !important;
}

#contents .mt-40 {
  margin-top: 4em !important;
}

#contents .mt-45 {
  margin-top: 4.5em !important;
}

#contents .mt-50 {
  margin-top: 5em !important;
}

#contents .mt-55 {
  margin-top: 5.5em !important;
}

#contents .mt-60 {
  margin-top: 6em !important;
}

#contents .u-note {
  padding-left: 1em;
  text-indent: -1em;
  display: inline-block;
}

#contents .u-marker {
  padding: 0 0.2em;
  margin: 0 0.2em;
  background: var(--maincolor);
  color: #fff;
}

#contents .u-maincolor {
  color: var(--maincolor);
}

#contents .u-subcolor {
  color: var(--subcolor);
}

#contents .u-hidden {
  display: none;
  visibility: hidden;
}

#contents .c-blockLink a {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
}

#contents [data-ruby] {
  position: relative;
  display: inline-block;
  line-height: 1;
}

#contents [data-ruby]:before {
  content: attr(data-ruby);
  position: absolute;
  top: -1.2em;
  left: 50%;
  font-size: max(0.3em,8px);
  line-height: 1;
  text-align: center;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
  white-space: nowrap;
}

@media screen and (min-width: 801px) {
  .sp {
    display: none !important;
  }
  #contents a[href^="tel:"] {
    pointer-events: none;
  }
}

@media screen and (max-width: 800px) {
  .pc {
    display: none !important;
  }
}

/* ======== ↑ End common ↑ ======== */
/* ======== ↓ main ↓ ======== */
#contents .parallaxWrapper {
  position: relative;
}

#contents .parallax {
  position: absolute;
  width: 100%;
  height: 100%;
  -webkit-clip-path: inset(0);
          clip-path: inset(0);
  z-index: -1;
}

#contents .parallax .bg {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 105vh;
}

#contents .parallax #particle {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  aspect-ratio: 16 / 9;
  -o-object-fit: cover;
     object-fit: cover;
}

#contents .parallax.parallax1 {
  background: #000;
}

#contents .parallax.parallax1 .emblem {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  z-index: 1;
}

@media screen and (max-width: 800px) {
  #contents .parallax {
    background-size: auto 100vh;
  }
}

#contents h2.heading {
  font-family: "Teko", sans-serif;
  font-size: 50px;
  font-weight: 400;
  text-align: center;
  letter-spacing: 0.02em;
  width: 7.32em;
  height: 1.6em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 0.1em 1em 0 1.5em;
  position: relative;
  z-index: 1;
}

#contents h2.heading:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#39000c), color-stop(90%, #d80632));
  background: linear-gradient(90deg, #39000c, #d80632 90%);
  -webkit-mask-image: linear-gradient(105deg, #000 90%, transparent 90.3%);
          mask-image: linear-gradient(105deg, #000 90%, transparent 90.3%);
  z-index: -1;
}

#contents h2.heading.blue:before {
  background: -webkit-gradient(linear, left top, right top, from(#01193a), color-stop(90%, #065fd8));
  background: linear-gradient(90deg, #01193a, #065fd8 90%);
}

#contents h2.heading.green:before {
  background: -webkit-gradient(linear, left top, right top, from(#002210), color-stop(90%, #06e670));
  background: linear-gradient(90deg, #002210, #06e670 90%);
}

#contents h2.heading.s {
  font-size: 40px;
  padding-left: 1.9em;
  width: 9.15em;
  height: 2em;
}

#contents h2.heading.js-scroll .wrap {
  -webkit-transition: 0.5s ease 0.8s;
  transition: 0.5s ease 0.8s;
  opacity: 0;
}

#contents h2.heading.js-scroll:before {
  -webkit-transition: 1s cubic-bezier(0.33, 0, 0.1, 1) 0.3s;
  transition: 1s cubic-bezier(0.33, 0, 0.1, 1) 0.3s;
  opacity: 0;
  -webkit-transform: translateX(-100%);
          transform: translateX(-100%);
}

#contents h2.heading.is-scroll .wrap {
  opacity: 1;
}

#contents h2.heading.is-scroll:before {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents h2.heading {
    font-size: 3.7vw;
  }
}

@media screen and (max-width: 800px) {
  #contents h2.heading {
    font-size: 6.25vw;
  }
  #contents h2.heading.s {
    font-size: 5vw;
  }
}

#contents h3.heading {
  font-size: 50px;
  line-height: 1.25;
}

#contents h3.heading.--right {
  text-align: right;
}

#contents h3.heading.--yellow .bg {
  background: -webkit-gradient(linear, left top, right top, from(#8e7500), to(#000));
  background: linear-gradient(90deg, #8e7500, #000);
}

#contents h3.heading.s {
  font-size: 35px;
}

#contents h3.heading.s .bg {
  padding: 0.2em 0.3em 0.1em;
}

#contents h3.heading .bg {
  padding: 0 0.25em;
  background: -webkit-gradient(linear, left top, right top, from(#007d3a), to(#000));
  background: linear-gradient(90deg, #007d3a, #000);
  border-right: 1px solid #d5d5d5;
  border-bottom: 1px solid #d5d5d5;
  display: inline-block;
}

#contents h3.heading .bg:not(:first-child) {
  margin-top: 0.35em;
}

#contents h3.heading.center {
  text-align: center;
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents h3.heading {
    font-size: 3.7vw;
  }
  #contents h3.heading.s {
    font-size: 2.6vw;
  }
}

@media screen and (max-width: 800px) {
  #contents h3.heading {
    font-size: 6.25vw;
  }
  #contents h3.heading.s {
    font-size: 4.375vw;
  }
}

#contents h4.heading {
  font-size: 30px;
  padding-bottom: 0.2em;
  position: relative;
}

#contents h4.heading:after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  background: -webkit-gradient(linear, left top, left bottom, from(#00e28a), to(#09a070));
  background: linear-gradient(#00e28a, #09a070);
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents h4.heading {
    font-size: 2.22vw;
  }
}

@media screen and (max-width: 800px) {
  #contents h4.heading {
    font-size: 4.5vw;
  }
}
#contents .c-btn a {
  font-size: 22px;
  text-align: center;
  width: 100%;
  max-width: 22.73em;
  min-height: 3.28em;
  color: #fff;
  background: -webkit-gradient(linear, left top, right top, from(#10a054), to(#007d3a));
  background: linear-gradient(90deg, #10a054, #007d3a);
  padding: 0.25em 1.5em;
  margin: 0 auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  position: relative;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  overflow: hidden;
  z-index: 1;
}

#contents .c-btn a:after {
  content: '';
  position: absolute;
  top: 0;
  right: 1em;
  bottom: 0;
  margin: auto;
  width: 1.137em;
  aspect-ratio: 1 / 1;
  background: url(../images/buttonArrow.svg) no-repeat center/contain;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

#contents .c-btn a:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#007d3a), to(#000000));
  background: linear-gradient(90deg, #007d3a, #000000);
  -webkit-transition: 0.2s;
  transition: 0.2s;
  z-index: -1;
  opacity: 0;
}

#contents .c-btn a:hover:before {
  opacity: 1;
}

#contents .c-btn a:hover:after {
  right: 0.7em;
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .c-btn a {
    font-size: 1.63vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .c-btn a {
    font-size: min(3.5vw,22px);
  }
}

#contents .c-frame {
  background: url(../images/frame_corner.png) no-repeat left top, url(../images/frame_corner.png) no-repeat right top, url(../images/frame_corner.png) no-repeat left bottom, url(../images/frame_corner.png) no-repeat right bottom;
  padding: 4px;
  margin: 0 auto;
  max-width: 1208px;
}

#contents .c-frame > * {
  background: radial-gradient(#045846, #080908 80%);
}

#contents .c-point {
  font-size: 66px;
  line-height: 1.15;
  padding: 0.2em 1em 0.5em 1.13em;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  min-height: 3.03em;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

#contents .c-point:before {
  content: '';
  position: absolute;
  top: 0;
  left: -1.25em;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 143, 104, 0)), to(rgba(0, 143, 104, 0.6)));
  background: linear-gradient(rgba(0, 143, 104, 0), rgba(0, 143, 104, 0.6));
  border-top: 1px solid #d6d6d6;
  border-bottom: 1px solid #d6d6d6;
  -o-border-image: linear-gradient(90deg, #048c58, #048c58 43%, rgba(4, 140, 88, 0)) 2;
     border-image: -webkit-gradient(linear, left top, right top, from(#048c58), color-stop(43%, #048c58), to(rgba(4, 140, 88, 0))) 2;
     border-image: linear-gradient(90deg, #048c58, #048c58 43%, rgba(4, 140, 88, 0)) 2;
  -webkit-mask-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #000), to(transparent));
  -webkit-mask-image: linear-gradient(90deg, #000 50%, transparent);
          mask-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #000), to(transparent));
          mask-image: linear-gradient(90deg, #000 50%, transparent);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  z-index: -2;
}

#contents .c-point.--yellow:before {
  -o-border-image: linear-gradient(90deg, #8c7401, #8c7401 43%, rgba(140, 116, 1, 0)) 2;
     border-image: -webkit-gradient(linear, left top, right top, from(#8c7401), color-stop(43%, #8c7401), to(rgba(140, 116, 1, 0))) 2;
     border-image: linear-gradient(90deg, #8c7401, #8c7401 43%, rgba(140, 116, 1, 0)) 2;
  background: -webkit-gradient(linear, left top, left bottom, from(rgba(125, 94, 0, 0)), to(rgba(125, 94, 0, 0.6)));
  background: linear-gradient(rgba(125, 94, 0, 0), rgba(125, 94, 0, 0.6));
}

#contents .c-point .dec1 {
  position: absolute;
  top: 1px;
  left: 2%;
  z-index: -1;
}

#contents .c-point .dec2 {
  position: absolute;
  top: -29%;
  left: -3.3%;
  z-index: -1;
}

#contents .c-point .txt {
  margin-left: 0.4em;
  position: relative;
  top: 0.12em;
}

@media screen and (max-width: 1370px) {
  #contents .c-point .dec1 {
    width: 18.86%;
  }
  #contents .c-point .dec2 {
    width: 17%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .c-point {
    font-size: 4.4vw;
  }
  #contents .c-point .num {
    width: 19.73vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .c-point {
    font-size: 4.5vw;
  }
  #contents .c-point .num {
    width: 18vw;
  }
}

#contents .c-figure figcaption {
  margin-top: 1em;
}

#contents .arrowUp {
  padding-left: 1em;
  position: relative;
}

#contents .arrowUp:before {
  content: '';
  position: absolute;
  top: 0.3em;
  left: 0;
  width: 0.75em;
  aspect-ratio: 1 / 1.1333;
  background: url(../images/arrow001.svg) no-repeat center/contain;
  -webkit-transform: rotate(-90deg);
          transform: rotate(-90deg);
}

#contents .arrowDown {
  padding-left: 1em;
  position: relative;
}

#contents .arrowDown:before {
  content: '';
  position: absolute;
  top: 0.3em;
  left: 0;
  width: 0.75em;
  aspect-ratio: 1 / 1.1333;
  background: url(../images/arrow001.svg) no-repeat center/contain;
  -webkit-transform: rotate(90deg);
          transform: rotate(90deg);
}

#contents .arrowLeft {
  padding-left: 1em;
  position: relative;
}

#contents .arrowLeft:before {
  content: '';
  position: absolute;
  top: 0.3em;
  left: 0;
  width: 0.75em;
  aspect-ratio: 1 / 1.1333;
  background: url(../images/arrow001.svg) no-repeat center/contain;
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

#contents .arrowRight {
  padding-left: 1em;
  position: relative;
}

#contents .arrowRight:before {
  content: '';
  position: absolute;
  top: 0.3em;
  left: 0;
  width: 0.75em;
  aspect-ratio: 1 / 1.1333;
  background: url(../images/arrow001.svg) no-repeat center/contain;
}

@media screen and (max-width: 800px) {
  #contents .arrowUpSp:before {
    -webkit-transform: rotate(-90deg) !important;
            transform: rotate(-90deg) !important;
  }
}

#contents .p-kv {
  position: relative;
  overflow: hidden;
}

#contents .p-kv > *:not(:first-child) {
  position: absolute;
}

#contents .p-kv img {
  width: 100%;
  max-width: none;
}

#contents .p-kv .img {
  top: 0%;
  right: 0%;
  width: 84.296875%;
}

#contents .p-kv .particle {
  top: 0%;
  left: 0%;
  width: 100%;
}

#contents .p-kv .anniversary {
  top: 2.4%;
  left: 1%;
  width: 49.0234375%;
}

#contents .p-kv .pgu {
  top: 2.3%;
  right: 1.5%;
  width: 13.8671875%;
}

#contents .p-kv .catch {
  left: 3.2%;
  bottom: 3%;
  width: 23.3984375%;
}

#contents .p-kv.js-scroll .bg {
  -webkit-transition: 1s ease 0.3s;
  transition: 1s ease 0.3s;
  -webkit-filter: brightness(0);
          filter: brightness(0);
}

#contents .p-kv.js-scroll .img {
  -webkit-transition: 1s ease 0.3s;
  transition: 1s ease 0.3s;
  opacity: 0;
}

#contents .p-kv.js-scroll .particle {
  -webkit-transition: 1s cubic-bezier(0.1, 0.8, 0, 1) 2s;
  transition: 1s cubic-bezier(0.1, 0.8, 0, 1) 2s;
  opacity: 0;
  -webkit-transform: translateX(-5%) scale(0.95);
          transform: translateX(-5%) scale(0.95);
}

#contents .p-kv.js-scroll .catch {
  -webkit-transition: 1s ease 2.7s;
  transition: 1s ease 2.7s;
  opacity: 0;
  -webkit-filter: blur(10px);
          filter: blur(10px);
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
}

#contents .p-kv.is-scroll .bg {
  -webkit-filter: none;
          filter: none;
}

#contents .p-kv.is-scroll .img {
  opacity: 1;
  -webkit-animation: kvImg 4s ease 0s 1 normal forwards running;
          animation: kvImg 4s ease 0s 1 normal forwards running;
}

@-webkit-keyframes kvImg {
  0% {
    -webkit-filter: brightness(0.05);
            filter: brightness(0.05);
    -webkit-transform: translateX(10%);
            transform: translateX(10%);
  }
  47%, 50% {
    -webkit-filter: brightness(0.05);
            filter: brightness(0.05);
    -webkit-transform: none;
            transform: none;
  }
  60% {
    -webkit-filter: brightness(3);
            filter: brightness(3);
    -webkit-transform: none;
            transform: none;
  }
  100% {
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}

@keyframes kvImg {
  0% {
    -webkit-filter: brightness(0.05);
            filter: brightness(0.05);
    -webkit-transform: translateX(10%);
            transform: translateX(10%);
  }
  47%, 50% {
    -webkit-filter: brightness(0.05);
            filter: brightness(0.05);
    -webkit-transform: none;
            transform: none;
  }
  60% {
    -webkit-filter: brightness(3);
            filter: brightness(3);
    -webkit-transform: none;
            transform: none;
  }
  100% {
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}

#contents .p-kv.is-scroll .particle {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}

#contents .p-kv.is-scroll .particle img {
  -webkit-animation: kvParticle 6s ease-in-out 0s infinite alternate forwards running;
          animation: kvParticle 6s ease-in-out 0s infinite alternate forwards running;
}

@-webkit-keyframes kvParticle {
  0% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(-1%);
            transform: translateX(-1%);
  }
}

@keyframes kvParticle {
  0% {
    -webkit-transform: translateX(0%);
            transform: translateX(0%);
  }
  100% {
    -webkit-transform: translateX(-1%);
            transform: translateX(-1%);
  }
}

#contents .p-kv.is-scroll .catch {
  opacity: 1;
  -webkit-filter: none;
          filter: none;
  -webkit-transform: none;
          transform: none;
}

@media screen and (max-width: 800px) {
  #contents .p-kv .img {
    right: -24%;
    width: 147.7%;
  }
  #contents .p-kv .particle {
    width: 100%;
  }
  #contents .p-kv .anniversary {
    top: 1%;
    left: 1.5%;
    width: 96.3%;
  }
  #contents .p-kv .pgu {
    top: auto;
    right: 2.3%;
    bottom: 2.5%;
    width: 30.2%;
  }
  #contents .p-kv .catch {
    left: 2.5%;
    bottom: 2.4%;
    width: 57.5%;
  }
}

#contents .p-video {
  padding-top: 120px;
}

#contents .p-video_img {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 940px;
  margin: 0 auto;
  overflow: hidden;
  position: relative;
}

#contents .p-video_img .thumb {
  -webkit-filter: brightness(0.6);
          filter: brightness(0.6);
}

#contents .p-video_img .button {
  position: absolute;
  top: 55%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  font-size: 34px;
}

#contents .p-video_img .button .icon {
  font-size: inherit;
  width: 2.0882em;
  margin: 0 auto;
}

#contents .p-video_img .button .txt {
  font-family: "Teko", sans-serif;
  text-align: center;
}

#contents .p-video_img > a {
  -webkit-transition: 0.5s ease;
  transition: 0.5s ease;
}

#contents .p-video_img > a * {
  -webkit-transition: inherit;
  transition: inherit;
}

#contents .p-video_img > a:hover .thumb {
  -webkit-transform: scale(1.05);
          transform: scale(1.05);
  -webkit-filter: brightness(0.4);
          filter: brightness(0.4);
}

#contents .p-video_img > a:hover .icon {
  -webkit-transform: scale(0.85);
          transform: scale(0.85);
}

#contents .p-video_img > a:hover .txt {
  letter-spacing: 0.05em;
  color: var(--maincolor);
}

@media screen and (max-width: 800px) {
  #contents .p-video_img .button {
    font-size: 8.5vw;
  }
}

#contents .p-sec01 {
  padding: 60px 0 125px;
  position: relative;
}

#contents .p-sec01 .block1 {
  max-width: 1200px;
  margin: 60px auto 0;
}

#contents .p-sec01 .txt1 {
  font-size: 34px;
  text-align: center;
  line-height: 1.8;
  position: relative;
  z-index: 2;
}

#contents .p-sec01 .txt2 {
  font-size: 20px;
  padding: 1.5em 2em 1.2em;
  margin-top: 1.7em;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid #8b8b8b;
}

#contents .p-sec01 .txt2 dl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}

#contents .p-sec01 .txt2 dl + dl {
  margin-top: 0.65em;
}

#contents .p-sec01 .txt2 dl dt {
  font-size: 120%;
  padding-right: 1.25em;
  position: relative;
  white-space: nowrap;
}

#contents .p-sec01 .txt2 dl dt:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0.25em;
  margin: auto;
  width: 0.75em;
  height: 1.5em;
  aspect-ratio: 1 / 1.1333;
  background: url(../images/arrow001.svg) no-repeat center/contain;
}

#contents .p-sec01 .txt2 dl dd {
  line-height: 1.7;
}

@media screen and (max-width: 1370px) {
  #contents .p-sec01 {
    padding: 6% 0 12%;
  }
  #contents .p-sec01 .block1 {
    margin-top: 6%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec01 .txt1 {
    font-size: 2vw;
  }
  #contents .p-sec01 .txt2 {
    font-size: 1.66vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec01 .txt1 {
    font-size: 3.8vw;
  }
  #contents .p-sec01 .txt2 {
    font-size: 3.5vw;
  }
  #contents .p-sec01 .txt2 dl {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  #contents .p-sec01 .txt2 dl + dl {
    margin-top: 1em;
  }
  #contents .p-sec01 .txt2 dl dt {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
  }
  #contents .p-sec01 .txt2 dl dt:after {
    -webkit-transform: rotate(90deg);
            transform: rotate(90deg);
  }
}

#contents .p-sec02 {
  padding: 240px 0 95px;
}

#contents .p-sec02 .wrapper1 {
  position: relative;
}

#contents .p-sec02 .scale1 {
  position: absolute;
  top: -9.5%;
  right: 20.8%;
  z-index: 2;
  width: 37.186%;
}

#contents .p-sec02 .scale2 {
  position: absolute;
  top: -17.8%;
  right: -26.2%;
  z-index: 3;
  width: 82.149%;
}

#contents .p-sec02 .lighting {
  position: absolute;
  top: 0%;
  right: 0%;
  width: 60.29%;
  z-index: 1;
}

#contents .p-sec02 .point {
  margin-top: 83px;
}

#contents .p-sec02 .point > li {
  font-size: 40px;
  line-height: 1.22;
  padding: 0.4em 1em 0.5em 0.8em;
  position: relative;
  z-index: 1;
}

#contents .p-sec02 .point > li + li {
  margin-top: 1.3em;
}

#contents .p-sec02 .point > li:before {
  content: '';
  position: absolute;
  top: 0;
  left: -1.25em;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#004d38), color-stop(50%, #000));
  background: linear-gradient(90deg, #004d38, #000 50%);
  border: 1px solid #d6d6d6;
  -webkit-mask-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #000), to(transparent));
  -webkit-mask-image: linear-gradient(90deg, #000 50%, transparent);
          mask-image: -webkit-gradient(linear, left top, right top, color-stop(50%, #000), to(transparent));
          mask-image: linear-gradient(90deg, #000 50%, transparent);
  -webkit-transform: skewX(15deg);
          transform: skewX(15deg);
  -webkit-transform-origin: top left;
          transform-origin: top left;
  z-index: -2;
}

#contents .p-sec02 .point > li::after {
  content: '';
  position: absolute;
  top: 1px;
  left: 26.5%;
  width: 6.9em;
  aspect-ratio: 1 / 0.2427;
  background: url(../images/sec02_pointDec.png) no-repeat top left/contain;
  z-index: -1;
}

#contents .p-sec02 .point > li:last-child:before {
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
  -webkit-transform-origin: bottom left;
          transform-origin: bottom left;
}

#contents .p-sec02 .point > li.yellow .num {
  -webkit-filter: brightness(0) saturate(100%) invert(71%) sepia(96%) saturate(485%) hue-rotate(6deg) brightness(106%) contrast(98%);
          filter: brightness(0) saturate(100%) invert(71%) sepia(96%) saturate(485%) hue-rotate(6deg) brightness(106%) contrast(98%);
}

#contents .p-sec02 .point > li.yellow:before {
  background: -webkit-gradient(linear, left top, right top, from(#4d3a00), color-stop(50%, #000));
  background: linear-gradient(90deg, #4d3a00, #000 50%);
}

#contents .p-sec02 .point > li.yellow:after {
  -webkit-filter: brightness(0) saturate(100%) invert(67%) sepia(73%) saturate(6124%) hue-rotate(34deg) brightness(85%) contrast(101%);
          filter: brightness(0) saturate(100%) invert(67%) sepia(73%) saturate(6124%) hue-rotate(34deg) brightness(85%) contrast(101%);
}

#contents .p-sec02 .point .txt {
  margin-top: 0.55em;
}

#contents .p-sec02 .title {
  margin-top: 270px;
  max-width: 52.44%;
}

@media screen and (min-width: 801px) {
  #contents .p-sec02 .point {
    max-width: 50%;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-sec02 {
    padding: 12% 0 10%;
  }
  #contents .p-sec02 .point {
    margin-top: 8%;
  }
  #contents .p-sec02 .title {
    margin-top: 20%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec02 .point > li {
    font-size: 2.8vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec02 .scaleGroup {
    position: relative;
    padding-top: 100%;
  }
  #contents .p-sec02 .scale1 {
    top: 5%;
    left: 0%;
    width: 55%;
  }
  #contents .p-sec02 .scale2 {
    top: -28%;
    right: -21%;
    width: 90%;
  }
  #contents .p-sec02 .lighting {
    top: 15%;
    right: 25%;
  }
  #contents .p-sec02 .title {
    margin-top: 0;
    max-width: 80%;
  }
  #contents .p-sec02 .point > li {
    font-size: 5vw;
  }
  #contents .p-sec02 .point .num {
    max-width: 30%;
  }
}

#contents .p-sec03 {
  padding: 120px 0 65px;
}

#contents .p-sec03 .imgGroup1 {
  padding-top: 39.6%;
  margin-top: 80px;
  position: relative;
}

#contents .p-sec03 .imgGroup1 img {
  position: absolute;
}

#contents .p-sec03 .imgGroup1 img:nth-child(1) {
  top: 0%;
  left: 0.4%;
  width: 26.15%;
}

#contents .p-sec03 .imgGroup1 img:nth-child(2) {
  top: 0%;
  left: 28.9%;
  width: 36.296%;
}

#contents .p-sec03 .imgGroup1 img:nth-child(3) {
  left: 38.5%;
  bottom: 0%;
  width: 36.296%;
}

#contents .p-sec03 .imgGroup1 img:nth-child(4) {
  top: 0%;
  right: 4.7%;
  width: 22.519%;
}

#contents .p-sec03 .imgGroup1.js-scroll img {
  -webkit-transition: 2s ease 0.3s;
  transition: 2s ease 0.3s;
  opacity: 0;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}

#contents .p-sec03 .imgGroup1.js-scroll img:nth-child(2) {
  -webkit-transition-delay: 0.6s;
          transition-delay: 0.6s;
}

#contents .p-sec03 .imgGroup1.js-scroll img:nth-child(3) {
  -webkit-transition-delay: 0.9s;
          transition-delay: 0.9s;
}

#contents .p-sec03 .imgGroup1.js-scroll img:nth-child(4) {
  -webkit-transition-delay: 1.2s;
          transition-delay: 1.2s;
}

#contents .p-sec03 .imgGroup1.is-scroll img {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}

#contents .p-sec03 .block1 {
  margin-top: 40px;
}

#contents .p-sec03 .block1 dl {
  font-size: 16px;
  margin-top: 0.5em;
}

#contents .p-sec03 .block1 dd {
  margin-top: 0.3em;
  line-height: 1.85;
}

@media screen and (min-width: 801px) {
  #contents .p-sec03 .block1 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 40px;
  }
  #contents .p-sec03 .block1 .item:nth-child(1) {
    width: 48%;
  }
  #contents .p-sec03 .block1 .item:nth-child(2) {
    width: calc(52% - 40px);
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-sec03 {
    padding: 0 0 6%;
  }
  #contents .p-sec03 .imgGroup1 {
    margin-top: 8%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec03 .block1 dl {
    font-size: 1.6vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec03 .imgGroup1 {
    padding-top: 152%;
  }
  #contents .p-sec03 .imgGroup1 img:nth-child(1) {
    top: 0%;
    left: 0%;
    width: 45%;
  }
  #contents .p-sec03 .imgGroup1 img:nth-child(2) {
    top: 47%;
    left: 0%;
    width: 75%;
  }
  #contents .p-sec03 .imgGroup1 img:nth-child(3) {
    left: auto;
    right: 0%;
    bottom: 0%;
    width: 75%;
  }
  #contents .p-sec03 .imgGroup1 img:nth-child(4) {
    top: -4%;
    right: 2%;
    width: 45%;
  }
  #contents .p-sec03 .block1 dl {
    font-size: max(2.8vw,14px);
  }
  #contents .p-sec03 .block1 .item:not(:first-child) {
    margin-top: 2em;
  }
}

#contents .p-sec04 {
  padding-top: 37px;
}

#contents .p-sec04 .c-point {
  margin-top: 50px;
}

#contents .p-sec04 .block1 {
  padding: 60px 0 80px;
}

#contents .p-sec04 .block1 .logo {
  max-width: 528px;
  margin: 0 auto;
  position: relative;
  z-index: 3;
}

#contents .p-sec04 .txt1 {
  font-size: 24px;
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0.02em;
  margin-top: 2em;
}

#contents .p-sec04 .img1 {
  position: relative;
  margin-top: 44px;
}

#contents .p-sec04 .img1 figcaption {
  position: absolute;
  left: 5.7%;
  bottom: 9%;
  font-family: "Noto Sans", sans-serif;
  font-size: 50px;
  color: #cbd8e5;
}

#contents .p-sec04 .img1 figcaption .bg {
  background: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0)), color-stop(30%, rgba(0, 0, 0, 0.9)), color-stop(70%, rgba(0, 0, 0, 0.9)), to(rgba(0, 0, 0, 0)));
  background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9) 30%, rgba(0, 0, 0, 0.9) 70%, rgba(0, 0, 0, 0));
  display: inline-block;
  padding: 0.12em 1.1em;
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
}

#contents .p-sec04 .block2 {
  padding-top: 86%;
  position: relative;
}

#contents .p-sec04 .block2 .scale {
  position: absolute;
  top: -17.8%;
  left: 15.8%;
  width: 67.186%;
  z-index: 2;
}

#contents .p-sec04 .block2 .scale.js-scroll .img3 {
  -webkit-transition: 2s ease 0.5s;
  transition: 2s ease 0.5s;
  opacity: 0;
  -webkit-transform: scale(0.95);
          transform: scale(0.95);
}

#contents .p-sec04 .block2 .scale.js-scroll .btn .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn .plus {
  -webkit-transition: 0.5s ease 1.6s;
  transition: 0.5s ease 1.6s;
  opacity: 0;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn:before {
  -webkit-transition: 0.5s ease 1.5s;
  transition: 0.5s ease 1.5s;
  width: 0%;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn2 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn2 .plus {
  -webkit-transition-delay: 1.9s;
          transition-delay: 1.9s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn2:before {
  -webkit-transition-delay: 1.8s;
          transition-delay: 1.8s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn3 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn3 .plus {
  -webkit-transition-delay: 2s;
          transition-delay: 2s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn3:before {
  -webkit-transition-delay: 1.9s;
          transition-delay: 1.9s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn4 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn4 .plus {
  -webkit-transition-delay: 1.7s;
          transition-delay: 1.7s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn4:before {
  -webkit-transition-delay: 1.6s;
          transition-delay: 1.6s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn5 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn5 .plus {
  -webkit-transition-delay: 1.8s;
          transition-delay: 1.8s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn5:before {
  -webkit-transition-delay: 1.7s;
          transition-delay: 1.7s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn6 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn6 .plus {
  -webkit-transition-delay: 2.1s;
          transition-delay: 2.1s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn6:before {
  -webkit-transition-delay: 2s;
          transition-delay: 2s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn7 .wrap, #contents .p-sec04 .block2 .scale.js-scroll .btn.btn7 .plus {
  -webkit-transition-delay: 2.2s;
          transition-delay: 2.2s;
}

#contents .p-sec04 .block2 .scale.js-scroll .btn.btn7:before {
  -webkit-transition-delay: 2.1s;
          transition-delay: 2.1s;
}

#contents .p-sec04 .block2 .scale.is-scroll .img3 {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}

#contents .p-sec04 .block2 .scale.is-scroll .btn .wrap, #contents .p-sec04 .block2 .scale.is-scroll .btn .plus {
  opacity: 1;
}

#contents .p-sec04 .block2 .scale.is-scroll .btn:before {
  width: 100%;
}

#contents .p-sec04 .block2 .btn {
  font-family: "Teko", sans-serif;
  font-size: 34px;
  line-height: 1.3;
  letter-spacing: 0.02em;
  position: absolute;
  top: 0%;
  left: 0%;
  z-index: 1;
}

#contents .p-sec04 .block2 .btn:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#b20127), to(#005191));
  background: linear-gradient(90deg, #b20127, #005191);
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
  z-index: -1;
}

#contents .p-sec04 .block2 .btn a {
  display: block;
  padding: 0.15em 1.8em 0 1em;
}

#contents .p-sec04 .block2 .btn a:hover {
  -webkit-filter: drop-shadow(0 0 0.2em #00e88e);
          filter: drop-shadow(0 0 0.2em #00e88e);
}

#contents .p-sec04 .block2 .btn .plus {
  display: inline-block;
  position: absolute;
  top: 0;
  right: 0.75em;
  bottom: 0;
  margin: auto;
  width: 0.7em;
  height: 0.7em;
  background: url(../images/icon_plus.svg) no-repeat center/contain;
}

#contents .p-sec04 .block2 .btn.btn1 {
  top: 14.4%;
  left: 29.7%;
}

#contents .p-sec04 .block2 .btn.btn2 {
  top: 19.5%;
  left: 62.2%;
}

#contents .p-sec04 .block2 .btn.btn3 {
  top: 31.7%;
  left: 15.9%;
}

#contents .p-sec04 .block2 .btn.btn4 {
  top: 39.3%;
  left: 76%;
}

#contents .p-sec04 .block2 .btn.btn5 {
  top: 49.7%;
  left: 13%;
}

#contents .p-sec04 .block2 .btn.btn6 {
  top: 55.3%;
  left: 75%;
}

#contents .p-sec04 .block2 .btn.btn7 {
  top: 69.8%;
  left: 46.7%;
}

@media screen and (max-width: 1370px) {
  #contents .p-sec04 {
    padding-top: 4%;
  }
  #contents .p-sec04 .c-point {
    margin-top: 5%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec04 .txt1 {
    font-size: 2.4vw;
  }
  #contents .p-sec04 .img1 figcaption {
    font-size: 3.7vw;
  }
  #contents .p-sec04 .block2 .btn {
    font-size: 2.518vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec04 .txt1 {
    font-size: 4.5vw;
  }
  #contents .p-sec04 .img1 figcaption {
    font-size: 6.25vw;
  }
  #contents .p-sec04 .block2 {
    padding-top: 120%;
  }
  #contents .p-sec04 .block2 .scale {
    top: -30%;
    left: 0%;
    width: 100%;
  }
  #contents .p-sec04 .block2 .btn {
    font-size: 6vw;
  }
  #contents .p-sec04 .block2 .btn.btn1 {
    top: 13%;
    left: 14%;
  }
  #contents .p-sec04 .block2 .btn.btn2 {
    top: 17%;
    left: 62.2%;
  }
  #contents .p-sec04 .block2 .btn.btn3 {
    top: 31%;
    left: 1%;
  }
  #contents .p-sec04 .block2 .btn.btn4 {
    top: 39.3%;
    left: 75%;
  }
  #contents .p-sec04 .block2 .btn.btn5 {
    top: 49%;
    left: 1%;
  }
  #contents .p-sec04 .block2 .btn.btn6 {
    top: 55%;
    left: 72%;
  }
  #contents .p-sec04 .block2 .btn.btn7 {
    top: 70%;
    left: 39%;
  }
}

#contents .p-sec05 {
  padding: 130px 0;
}

#contents .p-sec05 .block1 {
  max-width: 1200px;
  margin: 0 auto;
}

#contents .p-sec05 .txt1 {
  font-size: 24px;
  line-height: 1.6;
  letter-spacing: 0.02em;
  margin-top: 2.5em;
}

#contents .p-sec05 .img1 {
  max-width: 600px;
  margin-top: 45px;
  position: relative;
}

#contents .p-sec05 .img1 figcaption {
  position: absolute;
  left: -2em;
  bottom: 10%;
  font-family: "Noto Sans", sans-serif;
  font-size: 30px;
  color: #cbd8e5;
}

#contents .p-sec05 .img1 figcaption .bg {
  background: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0)), color-stop(30%, rgba(0, 0, 0, 0.9)), color-stop(70%, rgba(0, 0, 0, 0.9)), to(rgba(0, 0, 0, 0)));
  background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9) 30%, rgba(0, 0, 0, 0.9) 70%, rgba(0, 0, 0, 0));
  display: inline-block;
  padding: 0.12em 1.1em;
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
}

#contents .p-sec05 .img1 figcaption .bg:not(:first-child) {
  margin-top: 0.2em;
}

@media screen and (max-width: 1370px) {
  #contents .p-sec05 {
    padding: 6% 0 13%;
  }
  #contents .p-sec05 .img1 {
    margin-top: 5%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec05 .txt1 {
    font-size: 2.5vw;
  }
  #contents .p-sec05 .img1 figcaption {
    left: 0%;
    font-size: 3.7vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec05 .txt1 {
    font-size: 3.6vw;
  }
  #contents .p-sec05 .img1 figcaption {
    left: -0.5em;
    bottom: 5%;
    font-size: 4vw;
  }
}

#contents .p-weapons {
  position: relative;
}

#contents .p-weapons .title {
  position: absolute;
  top: 63.5%;
  left: 0;
  max-width: 7.066vw;
}

#contents .p-weapons .wrapper1 {
  position: relative;
  padding-top: 118.7%;
}

#contents .p-weapons .scale {
  position: absolute;
  top: -13.2%;
  right: -8.7%;
  width: 111.12%;
}

#contents .p-weapons .scene {
  position: absolute;
  top: 75.8%;
  right: 0%;
  width: 40%;
}

@media screen and (max-width: 800px) {
  #contents .p-weapons .title {
    top: 35%;
    max-width: 13.25vw;
  }
  #contents .p-weapons .scale {
    top: -21.2%;
    right: -4.6%;
  }
  #contents .p-weapons .scene {
    width: 50%;
  }
}

#contents .p-finFunnel .wrapper1 {
  position: relative;
  padding-top: 29.8%;
}

#contents .p-finFunnel .title {
  position: absolute;
  top: 27%;
  left: 0%;
  max-width: 28.88vw;
}

#contents .p-finFunnel .scale1 {
  position: absolute;
  top: -23.5%;
  left: 6%;
  width: 99.926%;
}

#contents .p-finFunnel .wrapper2 {
  position: relative;
  padding-top: 71.7%;
}

#contents .p-finFunnel .scale2 {
  position: absolute;
  top: -46%;
  left: -4.4%;
  width: 67.186%;
}

#contents .p-finFunnel .scale3 {
  position: absolute;
  top: 1.2%;
  right: -2.3%;
  width: 43.186%;
}

#contents .p-finFunnel .scene {
  position: absolute;
  left: 0%;
  bottom: -29.7%;
  width: 40%;
}

@media screen and (min-width: 801px) {
  #contents .p-finFunnel .figure1 {
    max-width: 40%;
    margin-left: auto;
  }
  #contents .p-finFunnel .figure2 {
    max-width: 40%;
    margin-left: auto;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-finFunnel .wrapper1 {
    padding-top: 55%;
  }
  #contents .p-finFunnel .title {
    top: 10%;
    max-width: 48.75%;
  }
  #contents .p-finFunnel .scale1 {
    top: 8%;
  }
  #contents .p-finFunnel .wrapper2 {
    padding-top: 120%;
  }
  #contents .p-finFunnel .scale2 {
    top: 5%;
  }
  #contents .p-finFunnel .scale3 {
    top: 32%;
  }
  #contents .p-finFunnel .scene {
    top: 5%;
    left: auto;
    right: 0%;
    bottom: auto;
    width: 50%;
  }
}

#contents .p-beamRifle {
  padding-top: 85px;
}

#contents .p-beamRifle .wrapper1 {
  position: relative;
}

#contents .p-beamRifle .title {
  position: absolute;
  top: 12.6%;
  left: 0%;
  max-width: 5.067vw;
}

#contents .p-beamRifle .scene {
  position: absolute;
  top: 7.3%;
  left: 0%;
  max-width: 37.038%;
}

#contents .p-beamRifle .scale {
  position: absolute;
  top: 4.8%;
  left: -14.3%;
  width: 82.371%;
}

#contents .p-beamRifle .figure1 {
  margin-top: 50px;
}

#contents .p-beamRifle .figure2 {
  max-width: 400px;
  margin-left: auto;
  margin-top: 30px;
}

@media screen and (min-width: 801px) {
  #contents .p-beamRifle .figure1 {
    max-width: 47.408%;
    margin-left: auto;
  }
  #contents .p-beamRifle .figure2 {
    max-width: 29.63%;
    margin-left: auto;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-beamRifle {
    padding-top: 9%;
  }
  #contents .p-beamRifle .figure1 {
    margin-top: 3.5%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-beamRifle .title {
    top: 12%;
    max-width: 9.5vw;
  }
  #contents .p-beamRifle .scaleGroup {
    padding-top: 120%;
    position: relative;
  }
  #contents .p-beamRifle .scene {
    max-width: 50%;
  }
  #contents .p-beamRifle .scale {
    top: -5%;
    left: 4%;
    width: 100%;
  }
  #contents .p-beamRifle .figure2 img {
    max-width: 50%;
    margin: 0 auto;
  }
}

#contents .p-beamSaber {
  padding-top: 120px;
}

#contents .p-beamSaber .wrapper1 {
  position: relative;
}

#contents .p-beamSaber .scene {
  margin-top: 55px;
  max-width: 40%;
}

#contents .p-beamSaber .scale {
  position: absolute;
  top: -20.6%;
  right: -5.6%;
  width: 79.704%;
}

#contents .p-beamSaber .figure1 {
  margin-top: 30px;
}

#contents .p-beamSaber .title {
  position: absolute;
  top: 83.35%;
  right: 8.2%;
  max-width: 32.38%;
}

@media screen and (min-width: 801px) {
  #contents .p-beamSaber .figure1 {
    max-width: 29.63%;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-beamSaber {
    padding-top: 12%;
  }
  #contents .p-beamSaber .scene {
    margin-top: 5%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-beamSaber .scaleGroup {
    padding-top: 110%;
    position: relative;
  }
  #contents .p-beamSaber .scale {
    top: 2%;
    right: 0%;
    width: 90%;
  }
  #contents .p-beamSaber .scene {
    position: absolute;
    top: 42%;
    left: 0%;
    max-width: 50%;
    margin: 0;
  }
  #contents .p-beamSaber .title {
    top: auto;
    left: 0%;
    right: auto;
    bottom: 0%;
    max-width: 54.625%;
  }
  #contents .p-beamSaber .figure1 img {
    max-width: 50%;
    margin: 0 auto;
  }
}

#contents .p-hyperBazooka {
  padding-top: 80px;
}

#contents .p-hyperBazooka .wrapper1 {
  position: relative;
}

#contents .p-hyperBazooka .title1 {
  position: absolute;
  top: 0%;
  left: 0.3%;
  max-width: 51.12%;
}

#contents .p-hyperBazooka .scale1 {
  position: absolute;
  top: -4.8%;
  left: -7.6%;
  width: 85.704%;
}

#contents .p-hyperBazooka .figure1 {
  margin-top: 50px;
}

#contents .p-hyperBazooka .figure1 img {
  width: 105.625%;
  max-width: none;
  margin-left: -5.625%;
}

#contents .p-hyperBazooka .figure2 {
  margin-top: 48px;
}

#contents .p-hyperBazooka .wrapper2 {
  position: relative;
  padding-top: 325px;
}

#contents .p-hyperBazooka .title2 {
  position: absolute;
  top: 4.7%;
  right: 0%;
  max-width: 38.667%;
}

@media screen and (min-width: 801px) {
  #contents .p-hyperBazooka .figure1 {
    max-width: 47.408%;
    margin-left: auto;
  }
  #contents .p-hyperBazooka .figure2 {
    max-width: 33.482%;
    margin-left: auto;
  }
  #contents .p-hyperBazooka .figure3 {
    max-width: 48.149%;
  }
  #contents .p-hyperBazooka .scale2 {
    position: absolute;
    top: 2.3%;
    right: 0%;
    max-width: 46%;
  }
  #contents .p-hyperBazooka .scale2 img {
    position: relative;
    top: 12px;
    left: -23.1%;
    width: 140.75%;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-hyperBazooka {
    padding-top: 8%;
  }
  #contents .p-hyperBazooka .wrapper2 {
    padding-top: 26%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-hyperBazooka .scaleGroup1 {
    padding-top: 110%;
    position: relative;
  }
  #contents .p-hyperBazooka .title1 {
    top: 8%;
    max-width: 69.75%;
  }
  #contents .p-hyperBazooka .scale1 {
    top: 5%;
    left: -1%;
    width: 105%;
  }
  #contents .p-hyperBazooka .title2 {
    max-width: 65.25%;
  }
  #contents .p-hyperBazooka .scale2 {
    margin-top: -10%;
  }
  #contents .p-hyperBazooka .scale2 img {
    position: relative;
    left: 8%;
    width: 90%;
  }
  #contents .p-hyperBazooka .figure3 {
    margin-top: 2em;
  }
}

#contents .p-coverSeal {
  padding-top: 90px;
}

#contents .p-coverSeal .wrapper1 {
  position: relative;
}

#contents .p-coverSeal .img1 {
  margin-top: 63px;
  width: 59.26%;
}

#contents .p-coverSeal .scene {
  position: absolute;
  top: 47%;
  right: 0%;
  width: 35.56%;
}

#contents .p-coverSeal .txt1 {
  letter-spacing: -0.04em;
  margin: 125px auto 0;
  max-width: 890px;
}

#contents .p-coverSeal .scale {
  margin: 75px auto 0;
  width: 74.075%;
}

#contents .p-coverSeal .title {
  position: absolute;
  bottom: 0%;
  right: 0;
  max-width: 5.066vw;
}

@media screen and (max-width: 1370px) {
  #contents .p-coverSeal {
    padding-top: 9%;
  }
  #contents .p-coverSeal .img1 {
    margin-top: 6%;
  }
  #contents .p-coverSeal .txt1 {
    margin-top: 12%;
  }
  #contents .p-coverSeal .scale {
    margin-top: 6%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-coverSeal .title {
    max-width: 9.5vw;
  }
}

#contents .p-sec06 {
  padding-top: 150px;
}

#contents .p-sec06 .img1 {
  position: relative;
  margin-top: 77px;
}

#contents .p-sec06 .img1 figcaption {
  position: absolute;
  left: 5.7%;
  bottom: 10%;
  font-family: "Noto Sans", sans-serif;
  font-size: 50px;
  color: #cbd8e5;
}

#contents .p-sec06 .img1 figcaption .bg {
  background: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0)), color-stop(30%, rgba(0, 0, 0, 0.9)), color-stop(70%, rgba(0, 0, 0, 0.9)), to(rgba(0, 0, 0, 0)));
  background: linear-gradient(90deg, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.9) 30%, rgba(0, 0, 0, 0.9) 70%, rgba(0, 0, 0, 0));
  display: inline-block;
  padding: 0.12em 1.1em;
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
}

#contents .p-sec06 .txt1 {
  font-size: 24px;
  text-align: center;
  line-height: 1.6;
  letter-spacing: 0.02em;
  margin-top: 2em;
}

@media screen and (max-width: 1370px) {
  #contents .p-sec06 {
    padding-top: 15%;
  }
  #contents .p-sec06 .img1 {
    margin-top: 7%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-sec06 .img1 figcaption {
    font-size: 3.7vw;
  }
  #contents .p-sec06 .txt1 {
    font-size: 2.5vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec06 .img1 figcaption {
    font-size: 4vw;
  }
  #contents .p-sec06 .txt1 {
    font-size: 3vw;
  }
}

#contents .p-sec07 {
  padding-top: 90px;
}

#contents .p-sec07 .block1 {
  position: relative;
}

#contents .p-sec07 .wrapper1 {
  position: relative;
  margin-top: 30px;
}

#contents .p-sec07 .scale1 {
  position: absolute;
  top: -99%;
  left: -3.5%;
  width: 58.52%;
}

#contents .p-sec07 .wrapper2 {
  position: relative;
  margin-top: 162px;
}

#contents .p-sec07 .scene1 {
  position: absolute;
  top: 28.5%;
  left: 0%;
  width: 44.75%;
}

#contents .p-sec07 .scaleGroup1 {
  padding-top: 75%;
  position: relative;
}

#contents .p-sec07 .scale2 {
  position: absolute;
  top: -22.6%;
  left: -4%;
  width: 54.075%;
}

#contents .p-sec07 .scale3 {
  position: absolute;
  top: -6%;
  right: -1%;
  width: 47.26%;
}

#contents .p-sec07 .title1 {
  position: absolute;
  left: 0%;
  bottom: 0%;
  max-width: 52.815%;
}

#contents .p-sec07 .block2, #contents .p-sec07 .block3, #contents .p-sec07 .block4, #contents .p-sec07 .block5, #contents .p-sec07 .block6, #contents .p-sec07 .block7 {
  margin-top: 100px;
}

#contents .p-sec07 .figure2, #contents .p-sec07 .figure3, #contents .p-sec07 .figure4, #contents .p-sec07 .figure5, #contents .p-sec07 .figure6 {
  margin-top: 50px;
}

#contents .p-sec07 .wrapper3 {
  position: relative;
  padding-top: 25%;
}

#contents .p-sec07 .scale4 {
  position: absolute;
  top: -33%;
  left: 18%;
  width: 62.89%;
}

#contents .p-sec07 .wrapper4 {
  position: relative;
}

#contents .p-sec07 .figure7 {
  max-width: 44.44%;
  position: relative;
  padding-top: 37%;
}

#contents .p-sec07 .figure7 img {
  position: absolute;
  top: 0;
  left: 9%;
  right: 0;
  margin: auto;
}

#contents .p-sec07 .scene2 {
  position: absolute;
  top: 27.6%;
  right: 0%;
  width: 40%;
}

@media screen and (min-width: 801px) {
  #contents .p-sec07 .txt1 {
    max-width: 42.97%;
    margin-left: auto;
  }
  #contents .p-sec07 .figure2 img, #contents .p-sec07 .figure3 img, #contents .p-sec07 .figure4 img, #contents .p-sec07 .figure5 img, #contents .p-sec07 .figure6 img {
    width: 52.6%;
  }
  #contents .p-sec07 .figure1 {
    margin-left: auto;
    max-width: 48.15%;
  }
  #contents .p-sec07 .figure2, #contents .p-sec07 .figure4, #contents .p-sec07 .figure6 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    gap: 20px;
  }
  #contents .p-sec07 .figure3, #contents .p-sec07 .figure5 {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
            flex-direction: row-reverse;
    gap: 20px;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-sec07 {
    padding-top: 9%;
  }
  #contents .p-sec07 .block2, #contents .p-sec07 .block3, #contents .p-sec07 .block4, #contents .p-sec07 .block5, #contents .p-sec07 .block6, #contents .p-sec07 .block7 {
    margin-top: 10%;
  }
  #contents .p-sec07 .figure2, #contents .p-sec07 .figure3, #contents .p-sec07 .figure4, #contents .p-sec07 .figure5, #contents .p-sec07 .figure6 {
    margin-top: 5%;
  }
  #contents .p-sec07 .wrapper2 {
    margin-top: 10%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-sec07 .wrapper1 {
    padding-top: 75%;
  }
  #contents .p-sec07 .scale1 {
    top: -5%;
    left: 5%;
    width: 90%;
  }
  #contents .p-sec07 .wrapper2 {
    padding-top: 40%;
  }
  #contents .p-sec07 .scene1 {
    top: 0%;
    left: 15%;
    width: 70%;
  }
  #contents .p-sec07 .scaleGroup1 {
    padding-top: 100%;
  }
  #contents .p-sec07 .scale2 {
    top: 0%;
  }
  #contents .p-sec07 .scale3 {
    top: 10%;
  }
  #contents .p-sec07 .title1 {
    max-width: 89.125%;
  }
  #contents .p-sec07 .block2 figcaption, #contents .p-sec07 .block3 figcaption, #contents .p-sec07 .block4 figcaption, #contents .p-sec07 .block5 figcaption, #contents .p-sec07 .block6 figcaption, #contents .p-sec07 .block7 figcaption {
    margin-top: 1em;
  }
  #contents .p-sec07 .wrapper3 {
    padding-top: 50%;
  }
  #contents .p-sec07 .scale4 {
    top: -12%;
    left: 0%;
    width: 100%;
  }
  #contents .p-sec07 .wrapper4 {
    padding-top: 20%;
  }
  #contents .p-sec07 .scene2 {
    top: 15%;
  }
  #contents .p-sec07 .figure7 {
    max-width: 70%;
    padding-top: 50%;
  }
  #contents .p-sec07 .figure7 img {
    left: -5%;
    top: -10%;
  }
}

#contents .p-gallery {
  padding-top: 100px;
}

#contents .p-gallery .galleryWrapper {
  margin-top: 80px;
}

#contents .p-gallery .gallery_item img {
  width: 100%;
}

@media screen and (max-width: 1370px) {
  #contents .p-gallery .galleryWrapper {
    margin: 4% 0 6%;
  }
}

#contents .p-gallery .slick-slide {
  background: #000;
}

#contents .p-gallery .slick-slide > * {
  opacity: 0.2;
  -webkit-transition: 0.5s;
  transition: 0.5s;
}

#contents .p-gallery .slick-active > * {
  opacity: 1;
}

#contents .p-gallery .slick-dots {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  position: absolute;
  gap: 0.3vw;
  top: 1.5vw;
  left: 0;
  right: 0;
  margin: auto;
}

#contents .p-gallery .slick-dots li {
  font-size: 0;
}

#contents .p-gallery .slick-dots button {
  width: 3.8vw;
  height: 4px;
  background: #515151;
  border: none;
  font-size: 0;
  cursor: pointer;
  opacity: 1!important;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

#contents .p-gallery .slick-dots button:hover {
  background: #d60632;
}

#contents .p-gallery .slick-arrow {
  position: absolute;
  top: 0;
  bottom: 0;
  margin: auto;
  z-index: 1;
  width: 32px;
  height: 48px;
  font-size: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-image: url(../images/arrow002.svg)!important;
  background-position: center center!important;
  background-repeat: no-repeat!important;
  background-size: contain!important;
  border: none;
  cursor: pointer;
}

#contents .p-gallery .slick-prev {
  left: calc(50% - 475px);
  -webkit-transform: rotate(180deg);
          transform: rotate(180deg);
}

#contents .p-gallery .slick-next {
  right: calc(50% - 475px);
}

#contents .p-gallery .slick-active button {
  background: #d60632;
}

@media screen and (max-width: 800px) {
  #contents .p-gallery .slick-dots {
    top: calc(100% + 2vw);
    gap: 1.5vw;
  }
  #contents .p-gallery .slick-dots li button {
    width: 9vw;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-gallery {
    padding-top: 10%;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-gallery .gallery_list {
    margin-bottom: 10%;
  }
}

#contents .p-scale {
  padding-top: 140px;
}

#contents .p-scale .txt1 {
  font-size: 24px;
  margin-top: 30px;
}

#contents .p-scale .block1 {
  position: relative;
  margin-top: 67px;
}

#contents .p-scale .title {
  position: absolute;
  bottom: 103.5%;
  right: 0%;
  max-width: 16.075%;
}

#contents .p-scale .scale1 {
  position: absolute;
  left: 2.5%;
  bottom: -3.8%;
  width: 43.49%;
}

#contents .p-scale .scale1 .name {
  left: 9%;
  bottom: 20%;
}

#contents .p-scale .scale2 {
  position: absolute;
  left: 43.4%;
  bottom: -5.2%;
  width: 58.23%;
}

#contents .p-scale .scale2 .name {
  left: 5%;
  bottom: 13%;
}

#contents .p-scale .name {
  position: absolute;
  z-index: 2;
  font-size: 16px;
  padding: 0.3em 1.5em 0.5em;
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
}

#contents .p-scale .name .l {
  font-size: 150%;
  line-height: 1;
  display: block;
}

#contents .p-scale .name:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  background: -webkit-gradient(linear, left top, right top, from(#007d3a), to(#10a054));
  background: linear-gradient(90deg, #007d3a, #10a054);
  opacity: 0.9;
  -webkit-transform: skewX(-15deg);
          transform: skewX(-15deg);
  z-index: -1;
}

#contents .p-scale .txt2 {
  text-align: center;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 2.2em auto 0;
}

@media screen and (max-width: 1370px) {
  #contents .p-scale {
    padding-top: 6%;
  }
  #contents .p-scale .block1 {
    margin-top: 6%;
  }
  #contents .p-scale .txt1 {
    margin-top: 3%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-scale .txt1 {
    font-size: 2vw;
  }
  #contents .p-scale .name {
    font-size: 1.2vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-scale .title {
    max-width: 27.125%;
  }
  #contents .p-scale .scale1 {
    left: 0%;
  }
  #contents .p-scale .scale2 {
    left: 50%;
  }
  #contents .p-scale .txt1 {
    font-size: min(3vw,16px);
    max-width: 75%;
  }
  #contents .p-scale .name {
    font-size: min(2vw,12px);
  }
}

#contents .p-product {
  padding-top: 155px;
}

#contents .p-product .block1 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  padding: 1em;
}

#contents .p-product .block1 .txt {
  margin-top: 80px;
}

#contents .p-product .block1 .name {
  font-size: 30px;
  line-height: 1.2;
}

#contents .p-product .block1 .rollout {
	/*
  font-family: "Teko", sans-serif;
  */
  font-size: 40px;
  line-height: 1;
}

#contents .p-product .block1 .price {
  font-size: 22px;
}

#contents .p-product .block1 .date {
  font-size: 22px;
}

#contents .p-product .block1 .notes {
  font-size: 13px;
}

#contents .p-product .block1 .notes li {
  padding-left: 1em;
  text-indent: -1em;
}

#contents .p-product .block1 .extra {
  padding: 0.5em 0.8em;
  border: 1px solid var(--maincolor);
}

#contents .p-product .block1 .extra .l {
  font-size: 110%;
}

#contents .p-product .bnr a {
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto;
  display: block;
}

@media screen and (min-width: 801px) {
  #contents .p-product .block1 {
    min-height: 1060px;
  }
  #contents .p-product .block1 .txt {
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    max-width: 45%;
    position: relative;
    z-index: 2;
  }
  #contents .p-product .block1 .img {
    width: 55%;
    position: relative;
    z-index: 1;
  }
  #contents .p-product .block1 .img img {
    position: absolute;
    top: -2%;
    left: -1%;
    width: 109.57%;
    max-width: none;
  }
  #contents .p-product .block1 .logo1 img {
    width: 38.697%;
  }
  #contents .p-product .block1 .logo2 {
    margin-top: 50px;
  }
  #contents .p-product .block1 .logo2 img {
    width: 74.712%;
  }
}

@media screen and (max-width: 1370px) {
  #contents .p-product {
    padding-top: 6%;
  }
  #contents .p-product .block1 .txt {
    margin-top: 8%;
  }
}

@media screen and (min-width: 801px) and (max-width: 1350px) {
  #contents .p-product .block1 {
    min-height: 88.33vw;
  }
  #contents .p-product .block1 .logo2 {
    margin-top: 5%;
  }
  #contents .p-product .block1 .name {
    font-size: 2.4vw;
  }
  #contents .p-product .block1 .rollout {
    font-size: 3.33vw;
  }
  #contents .p-product .block1 .price {
    font-size: 1.83vw;
  }
  #contents .p-product .block1 .date {
    font-size: 1.83vw;
  }
  #contents .p-product .block1 .notes {
    font-size: 1.5vw;
  }
}

@media screen and (max-width: 800px) {
  #contents .p-product .block1 {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
  }
  #contents .p-product .block1 .logoGroup {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
        -ms-flex-pack: center;
            justify-content: center;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 4vw;
  }
  #contents .p-product .block1 .name {
    font-size: 4.5vw;
  }
  #contents .p-product .block1 .rollout {
    font-size: 8vw;
  }
  #contents .p-product .block1 .price {
    font-size: 4vw;
  }
  #contents .p-product .block1 .date {
    font-size: 4vw;
  }
  #contents .p-product .block1 .notes {
    font-size: 3.2vw;
  }
  #contents .p-product .block1 .extra {
    font-size: 4vw;
  }
}

#contents .contentsFooter {
  padding-top: 105px;
}

#contents .contentsFooter .btn > a {
  display: block;
  color: #fff;
  background: #01071f;
  border: 2px solid #0c3be9;
  font-size: 22px;
  text-align: center;
  line-height: 1.3;
  padding: 0.75em 1em;
  margin: 0 auto;
  width: 100%;
  max-width: 33.54em;
  position: relative;
}

#contents .contentsFooter .btn > a:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  border: 15px solid transparent;
  border-top-color: #0c3be9;
  border-left-color: #0c3be9;
}

#contents .contentsFooter .btn > a.hover .arrow, #contents .contentsFooter .btn > a:hover .arrow {
  right: 0.5em;
}

#contents .contentsFooter .btn > a .arrow {
  position: absolute;
  top: 0;
  right: 0.8em;
  bottom: 0;
  margin: auto;
  width: 0.4em;
  height: 1.1em;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

#contents .contentsFooter .btn > a .arrow:before, #contents .contentsFooter .btn > a .arrow:after {
  content: '';
  position: absolute;
  right: 0;
  margin: auto;
  width: 100%;
  height: 50%;
  background: #0c3be9;
}

#contents .contentsFooter .btn > a .arrow:before {
  top: 0;
  -webkit-transform: skewX(45deg);
          transform: skewX(45deg);
}

#contents .contentsFooter .btn > a .arrow:after {
  bottom: 0;
  -webkit-transform: skewX(-45deg);
          transform: skewX(-45deg);
}

#contents .contentsFooter .sns {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  margin-top: 60px;
}

#contents .contentsFooter .sns .snsBtn {
  display: block;
  height: 1em;
  margin: 0 0.2em 0 0;
}

#contents .contentsFooter .copyright {
  font-family: "Noto Serif", serif;
  font-size: 14px;
  text-align: center;
  padding: 2em 0;
}

@media screen and (max-width: 800px) {
  #contents .contentsFooter .btn {
    max-width: 100%;
  }
  #contents .contentsFooter .btn > a {
    font-size: 3.5vw;
  }
}

@media screen and (max-width: 1370px) {
  #contents .contentsFooter {
    padding-top: 10%;
  }
  #contents .contentsFooter .sns {
    margin-top: 6%;
  }
}

#contents #totop {
  position: fixed;
  right: 0;
  bottom: 0;
  width: 60px;
  max-width: 12vw;
  aspect-ratio: 1 / 1;
  z-index: 15;
}

#contents #totop > a {
  display: block;
  width: 100%;
  height: 100%;
  background: rgba(3, 3, 3, 0.15);
  border: 1px solid var(--maincolor);
}

#contents #totop > a .arrow {
  position: absolute;
  top: 12.5%;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 40%;
  height: 36.66%;
  -webkit-transition: 0.2s;
  transition: 0.2s;
}

#contents #totop > a .arrow:before, #contents #totop > a .arrow:after {
  content: '';
  position: absolute;
  right: 0;
  margin: auto;
  width: 50%;
  height: 50%;
  background: var(--maincolor);
}

#contents #totop > a .arrow:before {
  left: 50%;
  -webkit-transform: skewY(45deg);
          transform: skewY(45deg);
}

#contents #totop > a .arrow:after {
  right: 50%;
  -webkit-transform: skewY(-45deg);
          transform: skewY(-45deg);
}

.c-modal {
  font-family: "Noto Serif", serif;
  width: -webkit-fit-content;
  width: -moz-fit-content;
  width: fit-content;
  max-width: 90vw;
  max-height: 90vh;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
  position: relative;
}

.c-modal * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.c-modal .mfp-close {
  top: 20px;
  right: 20px;
  font-size: 0;
  width: 30px;
  height: 30px;
  opacity: 1;
}

.c-modal .mfp-close:before, .c-modal .mfp-close:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 3px;
  border-radius: 3px;
  background: #fff;
}

.c-modal .mfp-close:before {
  -webkit-transform: rotate(45deg);
          transform: rotate(45deg);
}

.c-modal .mfp-close:after {
  -webkit-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

@media screen and (max-width: 800px) {
  .c-modal .mfp-close {
    top: 2vw;
    right: 2vw;
  }
}

.c-systemModal {
  overflow-y: auto;
  -webkit-animation: systemModal 0.3s cubic-bezier(0, 0.66, 0.33, 1) 0s 1 normal forwards running;
          animation: systemModal 0.3s cubic-bezier(0, 0.66, 0.33, 1) 0s 1 normal forwards running;
}

.c-systemModal::-webkit-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: #666 #c1bfbf;
  width: 4px;
}

.c-systemModal::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 4px;
}

.c-systemModal_block {
  width: 1140px;
  max-width: 100%;
  margin: 0 auto;
  font-size: 20px;
  color: #fff;
  background: #1d1d1d;
  padding: 70px 1.5em 1.5em;
  position: relative;
}

#m-system-hand .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_hand_250603.png) no-repeat right bottom/55.087%;
}

#m-system-hand .c-systemModal_block figure {
  width: 59.723%;
}

#m-system-head .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_head_250603.png) no-repeat right bottom/63.948%;
}

#m-system-head .c-systemModal_block figure {
  width: 77.23%;
}

#m-system-shoulder .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_shoulder_250603.png) no-repeat right bottom/51.404%;
}

#m-system-shoulder .c-systemModal_block figure {
  width: 70.186%;
}

#m-system-chest .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_chest_250603.png) no-repeat right bottom/56.316%;
}

#m-system-chest .c-systemModal_block figure {
  width: 77.315%;
}

#m-system-arm .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_arm_250603.png) no-repeat right bottom/46.229%;
}

#m-system-arm .c-systemModal_block figure {
  width: 82.315%;
}

#m-system-waist .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_waist_250603.png) no-repeat right bottom/56.141%;
}

#m-system-waist .c-systemModal_block figure {
  width: 98.982%;
}

#m-system-leg .c-systemModal_block {
  background: #1d1d1d url(../images/system_bg_leg_250603.png) no-repeat right bottom/39.123%;
}

#m-system-leg .c-systemModal_block figure {
  width: 75.926%;
}

.c-systemModal .title {
  position: absolute;
  top: 0;
  left: 0;
  font-family: "Teko", sans-serif;
  font-size: 40px;
  line-height: 1;
  color: #fff;
  background: -webkit-gradient(linear, left top, right top, from(#b20127), color-stop(90%, #005191));
  background: linear-gradient(90deg, #b20127, #005191 90%);
  -webkit-mask-image: linear-gradient(105deg, #000 90%, transparent 91%);
          mask-image: linear-gradient(105deg, #000 90%, transparent 91%);
  width: 4.125em;
  aspect-ratio: 1 / 0.303;
  padding: 0.2em 0.2em 0 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.c-systemModal .content > *:not(:first-child) {
  margin-top: 0.5em;
}

.c-systemModal h3 {
  font-size: 40px;
  line-height: 1.3;
}

.c-systemModal h3 + * {
  margin-top: 0.5em;
}

@media screen and (max-width: 1140px) {
  .c-systemModal_block {
    font-size: 1.75vw;
    padding-top: 6vw;
  }
  .c-systemModal .title {
    font-size: 3.5vw;
  }
  .c-systemModal h3 {
    font-size: 3.5vw;
  }
}

@media screen and (max-width: 800px) {
  .c-systemModal_block {
    font-size: 3.5vw;
    padding-top: 12vw;
  }
  .c-systemModal .title {
    font-size: 7vw;
  }
  .c-systemModal h3 {
    font-size: 4.4vw;
  }
}

/* 250604更新 ▼*/
.c-videoModal {
  overflow: visible;
  -webkit-animation: videoModal 0.5s ease 0s 1 normal forwards running;
          animation: videoModal 0.5s ease 0s 1 normal forwards running;
}

.c-videoModal .mfp-close {
  top: -40px;
  right: 0;
}

.c-videoModal .iframeWrapper {
  width: 900px;
  max-width: 90vw;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  position: relative;
}

.c-videoModal .iframeWrapper iframe {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

/* 250604更新 ▲*/
.mfp-arrow {
  opacity: 1;
  width: 50px;
  height: 50px;
}

.mfp-arrow:before, .mfp-arrow:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  width: 50%;
  height: 50%;
  background: #fff;
  border: 0;
  opacity: 1;
}

.mfp-arrow:before {
  top: 50%;
  -webkit-transform: skewX(45deg);
          transform: skewX(45deg);
}

.mfp-arrow:after {
  bottom: 50%;
  -webkit-transform: skewX(-45deg);
          transform: skewX(-45deg);
}

.mfp-arrow-left {
  left: auto;
  right: calc(50% + 570px);
}

.mfp-arrow-right {
  left: calc(50% + 570px);
  right: auto;
}

.mfp-arrow-right:before {
  -webkit-transform: skewX(-45deg);
          transform: skewX(-45deg);
}

.mfp-arrow-right:after {
  -webkit-transform: skewX(45deg);
          transform: skewX(45deg);
}

@media screen and (max-width: 1370px) {
  .mfp-arrow-left {
    left: 2%;
    right: auto;
  }
  .mfp-arrow-right {
    left: auto;
    right: 2%;
  }
}

@media screen and (max-width: 800px) {
  .mfp-arrow-left {
    top: auto;
    bottom: 0%;
    left: 2%;
  }
  .mfp-arrow-right {
    top: auto;
    bottom: 0%;
    right: 2%;
  }
}

/* Animation */
.js-scroll.fadeInUp {
  opacity: 0;
  -webkit-transition: 0.6s ease 0.3s;
  transition: 0.6s ease 0.3s;
  -webkit-transform: translateY(30px);
          transform: translateY(30px);
}

.js-scroll.fadeInLeft {
  opacity: 0;
  -webkit-transition: 0.8s ease 0.3s;
  transition: 0.8s ease 0.3s;
  -webkit-transform: translateX(-3.33vw);
          transform: translateX(-3.33vw);
}

.js-scroll.fadeInRight {
  opacity: 0;
  -webkit-transition: 0.8s ease 0.3s;
  transition: 0.8s ease 0.3s;
  -webkit-transform: translateX(3.33vw);
          transform: translateX(3.33vw);
}

.js-scroll.fadeInMask {
  -webkit-transition: 2s ease 0.3s;
  transition: 2s ease 0.3s;
  -webkit-mask-image: -webkit-gradient(linear, right top, left top, color-stop(40%, transparent), color-stop(60%, #000));
  -webkit-mask-image: linear-gradient(-90deg, transparent 40%, #000 60%);
          mask-image: -webkit-gradient(linear, right top, left top, color-stop(40%, transparent), color-stop(60%, #000));
          mask-image: linear-gradient(-90deg, transparent 40%, #000 60%);
  -webkit-mask-size: 300%;
          mask-size: 300%;
  -webkit-mask-position: 100%;
          mask-position: 100%;
}

.js-scroll.fadeInFlip {
  opacity: 0;
  -webkit-transition: 1s ease 0.3s;
  transition: 1s ease 0.3s;
  -webkit-transform: rotateX(90deg);
          transform: rotateX(90deg);
}

.js-scroll.fadeInZoom {
  opacity: 0;
  -webkit-transition: 1.5s ease 0.3s;
  transition: 1.5s ease 0.3s;
  -webkit-transform: scale(0.9);
          transform: scale(0.9);
}

.js-scroll.fadeInFlicker {
  -webkit-transition: 0.5s ease 0.3s;
  transition: 0.5s ease 0.3s;
  opacity: 0;
}

.js-scroll.fadeInLeft2 {
  opacity: 0;
  -webkit-transition: 2s cubic-bezier(0.33, 0, 0.33, 1) 0.5s;
  transition: 2s cubic-bezier(0.33, 0, 0.33, 1) 0.5s;
  -webkit-transform: translateX(-8vw);
          transform: translateX(-8vw);
}

.js-scroll.fadeInRight2 {
  opacity: 0;
  -webkit-transition: 2s cubic-bezier(0.33, 0, 0.33, 1) 0.5s;
  transition: 2s cubic-bezier(0.33, 0, 0.33, 1) 0.5s;
  -webkit-transform: translateX(8vw);
          transform: translateX(8vw);
}

.js-scroll.is-scroll.fadeInUp, .js-scroll.is-scroll.fadeInLeft, .js-scroll.is-scroll.fadeInRight, .js-scroll.is-scroll.fadeInFlip, .js-scroll.is-scroll.fadeInZoom, .js-scroll.is-scroll.fadeInLeft2, .js-scroll.is-scroll.fadeInRight2 {
  opacity: 1;
  -webkit-transform: none;
          transform: none;
}

.js-scroll.is-scroll.fadeInMask {
  -webkit-mask-position: 0%;
          mask-position: 0%;
}

.js-scroll.is-scroll.fadeInFlicker {
  opacity: 1;
  -webkit-animation: flicker 1s ease 0.5s 1 normal forwards running;
          animation: flicker 1s ease 0.5s 1 normal forwards running;
}

@-webkit-keyframes systemModal {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(0.8, 0);
            transform: scale(0.8, 0);
  }
  100% {
    opacity: 1;
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}

@keyframes systemModal {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(0.8, 0);
            transform: scale(0.8, 0);
  }
  100% {
    opacity: 1;
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}

/* 250604更新 ▼*/
@-webkit-keyframes videoModal {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  100% {
    opacity: 1;
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}
@keyframes videoModal {
  0% {
    opacity: 0;
    -webkit-filter: blur(10px);
            filter: blur(10px);
    -webkit-transform: scale(0.8);
            transform: scale(0.8);
  }
  100% {
    opacity: 1;
    -webkit-filter: none;
            filter: none;
    -webkit-transform: none;
            transform: none;
  }
}

/* 250604更新 ▲*/
@-webkit-keyframes flicker {
  0%, 10%, 20%, 30%, 40%, 50% {
    -webkit-filter: brightness(0.5);
            filter: brightness(0.5);
  }
  5%, 15%, 35%, 45%, 55%, 100% {
    -webkit-filter: brightness(1);
            filter: brightness(1);
  }
}
@keyframes flicker {
  0%, 10%, 20%, 30%, 40%, 50% {
    -webkit-filter: brightness(0.5);
            filter: brightness(0.5);
  }
  5%, 15%, 35%, 45%, 55%, 100% {
    -webkit-filter: brightness(1);
            filter: brightness(1);
  }
}

/* ======== ↑ End main ↑ ======== */
