@charset "UTF-8";

body {
  background-color: var(--bg-color);
  color: var(--black);
  font-family: var(--main-font);
  letter-spacing: 0.07em;
}

main {
  position: relative;
  z-index: var(--MAIN_INDEX);
}

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

button {
  background-color: transparent;
  border: none;
  cursor: pointer;
  outline: none;
  padding: 0;
  appearance: none;
}

.sp-br {
  display: none;
}

.tab-br {
  display: none;
}

.pc-br {
  display: inline;
}

.container {
  width: 83.3%;
  max-width: 1440px;
  margin: 0 auto;
}

.fadein {
  opacity: 0;
}

.bg-extend {
  display: block;
  animation-name: bgextendAnimeBase;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  position: relative;
  overflow: hidden;
  opacity: 0;
}

@keyframes bgextendAnimeBase {
  0% {
    opacity: 0%;
  }

  100% {
    opacity: 100%;
  }
}

.bgappear {
  animation-name: bgextendAnimeSecond;
  animation-duration: 1s;
  animation-delay: 0.6s;
  animation-fill-mode: forwards;
  opacity: 0;
}

@keyframes bgextendAnimeSecond {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

.bgLRextend::before {
  animation-name: bgLRextendAnime;
  animation-duration: 1s;
  animation-fill-mode: forwards;
  content: '';
  position: absolute;
  width: 100%;
  height: 100%;
  background-color: var(--white);
}

@keyframes bgLRextendAnime {
  0% {
    transform-origin: left;
    transform: scaleX(0);
  }

  50% {
    transform-origin: left;
    transform: scaleX(1);
  }

  50.001% {
    transform-origin: right;
  }

  100% {
    transform-origin: right;
    transform: scaleX(0);
  }
}

.bgappearTrigger,
.bgLRextendTrigger {
  opacity: 0;
}

/* メディアクエリは適宜変更 */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .pc-br {
    display: none;
  }

  .tab-br {
    display: inline;
  }
}

/* メディアクエリは適宜変更 */
@media screen and (max-width: 767px) {
  .pc-br {
    display: none;
  }

  .sp-br {
    display: inline;
  }
}

/*
mv
================================================ */
.mv {
  position: relative;
}

.swiper-slide01 {
  position: relative;
}

.swiper-slide01::after {
  content: "出典: Laserline GmbH, Germany";
  color: var(--white);
  position: absolute;
  bottom: 5vw;
  right: 2em;
  z-index: 2;
}

.mv_topleft_image {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
  pointer-events: none;

  width: 95vh;
}

.mv_topright_image {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  pointer-events: none;

  width: 95vh;
}

.swiper {
  height: 100svh;
  /* iOS16+ */
}

.swiper-slide {
  position: relative;
}

.mv .swiper-slide .mv_bgimage01 {
  width: 100%;
  height: 100vh;
}

.mv .swiper-slide .mv_bgimage01 img {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
}


.swiper-slide .mv_text01 {
  position: absolute;
  width: clamp(18.75rem, 12.148rem + 28.169vw, 37.5rem);
  bottom: 27vw;
  left: 10%;
  transform: translateY(50%);
}


.swiper-slide .mv_text01 img {
  width: 95%;
  object-fit: contain;
  padding: 10px 0;
}


.swiper-slide-active .mv_text01 {
  animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

.swiper-slide .mv_text02 {
  position: absolute;
  bottom: 55%;
  left: 10%;
  transform: translateY(50%);
}

.swiper-slide .mv_text02 img {
  width: 20vw;
}

.swiper-slide-active .mv_text02 {
  animation: fadeIn2 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn2 {
  0% {
    opacity: 0;
    transform: translate(-100%, 50%);
  }

  100% {
    opacity: 1;
    transform: translate(0, 50%);
  }
}

.swiper-slide .mv_text03 {
  position: absolute;
  bottom: 70%;
  left: 30%;
  transform: translateY(50%);
}

.swiper-slide .mv_text03 img {
  width: 7vw;
}

.swiper-slide-active .mv_text03 {
  animation: fadeIn3 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn3 {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

.swiper-slide .mv_text04 {
  position: absolute;
  bottom: 65%;
  left: 42%;
  transform: translateY(50%);
}

.swiper-slide .mv_text04 img {
  width: 20vw;
}

.swiper-slide-active .mv_text04 {
  animation: fadeIn4 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn4 {
  0% {
    opacity: 0;
    transform: translate(-100%, 50%);
  }

  100% {
    opacity: 1;
    transform: translate(0, 50%);
  }
}

.swiper-slide .mv_text05 {
  position: absolute;
  bottom: 50%;
  left: 37%;
  transform: translateY(50%);
}

.swiper-slide .mv_text05 img {
  width: 16vw;
}

.swiper-slide-active .mv_text05 {
  animation: fadeIn5 0.6s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn5 {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

.swiper-slide .mv_text06 {
  position: absolute;
  bottom: 42%;
  left: 20%;
  transform: translateY(50%);
}

.swiper-slide .mv_text06 img {
  width: 18vw;
}

.swiper-slide-active .mv_text06 {
  animation: fadeIn6 1.3s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn6 {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

.swiper-slide .mv_text07 {
  position: absolute;
  bottom: 35%;
  left: 36%;
  transform: translateY(50%);
}

.swiper-slide .mv_text07 img {
  width: 25vw;
}

.swiper-slide-active .mv_text07 {
  animation: fadeIn7 1.1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn7 {
  0% {
    opacity: 0;
    transform: translate(100%, 50%);
  }

  100% {
    opacity: 1;
    transform: translate(0, 50%);
  }
}

.swiper-slide .mv_text08 {
  position: absolute;
  bottom: 50%;
  left: 68%;
  transform: translateY(50%);
}

.swiper-slide .mv_text08 img {
  width: 9vw;
}

.swiper-slide-active .mv_text08 {
  animation: fadeIn8 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn8 {
  0% {
    opacity: 0;
    transform: translateY(-20%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

.swiper-slide .mv_text09 {
  position: absolute;
  bottom: 32%;
  left: 81%;
  transform: translateY(50%);
}

.swiper-slide .mv_text09 img {
  width: 4vw;
}

.swiper-slide-active .mv_text09 {
  animation: fadeIn9 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
}

@keyframes fadeIn9 {
  0% {
    opacity: 0;
    transform: translateY(100%);
  }

  100% {
    opacity: 1;
    transform: translateY(50%);
  }
}

/* @media(max-width:1350px) {

  .swiper-slide .mv_text02 img {
    width: 25vw;
  }

  .swiper-slide .mv_text03 img {
    width: 9vw;
  }

  .swiper-slide .mv_text04 img {
    width: 22vw;
  }

  .swiper-slide .mv_text05 img {
    width: 18vw;
  }

  .swiper-slide .mv_text06 img {
    width: 27vw;
  }

  .swiper-slide .mv_text07 img {
    width: 30vw;
  }

  .swiper-slide .mv_text08 img {
    width: 11vw;
  }

  .swiper-slide .mv_text09 img {
    width: 6vw;
  }

} */


@media(max-width:1024px) {
  .swiper-slide .mv_text01 img {
    width: 85%;
  }


  .mv_topleft_image {
    width: 80%;
  }

  .mv_topright_image {
    width: 80%;
  }

  .swiper {
    height: 70svh;
    /* iOS16+ */
  }

  .mv .swiper-slide .mv_bgimage01 img {
    object-position: 74% 75%;
  }

  .mv .swiper-slide .mv_bgimage01 {
    width: 100%;
  }

  .swiper-slide01::after {
    bottom: 14vw;
    font-size: 10px;
  }


}

@media(max-width:1024px) {
  .swiper-slide .mv_text02 img {
    width: 18vw;
  }

  .swiper-slide .mv_text03 img {
    width: 6vw;
  }

  .swiper-slide .mv_text04 img {
    width: 20vw;
  }

  .swiper-slide .mv_text05 img {
    width: 18vw;
  }

  .swiper-slide .mv_text06 img {
    width: 20vw;
  }

  .swiper-slide .mv_text07 img {
    width: 23vw;
  }

  .swiper-slide .mv_text08 img {
    width: 9vw;
  }

  .swiper-slide .mv_text09 img {
    width: 4vw;
  }

  .swiper-slide .mv_text02 {
    left: 4%;
  }

  .swiper-slide .mv_text06 {
    left: 16%;
  }

  .swiper-slide .mv_text07 {
    left: 28%;
  }

}


@media(max-width:550px) {
  .mv_topleft_image {
    width: auto;
  }

  .mv_topright_image {
    width: auto;
  }

  .swiper {
    height: 80svh;
  }

  .swiper-slide .mv_text01 {
    position: absolute;
    width: clamp(18.75rem, 12.148rem + 28.169vw, 37.5rem);
    bottom: 18%;
    left: 50%;
    transform: translate(-50%, 20%);
  }

  .swiper-slide .mv_text01 img {
    width: 80%;
    object-fit: contain;
    padding: 10px 0;
  }


  .swiper-slide-active .mv_text01 {
    animation: fadeIn 0.7s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn {
    0% {
      opacity: 0;
      transform: translate(-50%, 40%);
    }

    100% {
      opacity: 1;
      transform: translate(-50%, 20%);
    }
  }




  .swiper-slide .mv_text02 {
    position: absolute;
    bottom: 37%;
    left: 22%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text02 img {
    width: 40vw;
  }

  .swiper-slide-active .mv_text02 {
    animation: fadeIn2 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn2 {
    0% {
      opacity: 0;
      transform: translate(-100%, 50%);
    }

    100% {
      opacity: 1;
      transform: translate(0, 50%);
    }
  }

  .swiper-slide .mv_text03 {
    position: absolute;
    bottom: 53%;
    left: 30%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text03 img {
    width: 14vw;
  }

  .swiper-slide-active .mv_text03 {
    animation: fadeIn3 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn3 {
    0% {
      opacity: 0;
      transform: translateY(100%);
    }

    100% {
      opacity: 1;
      transform: translateY(50%);
    }
  }

  .swiper-slide .mv_text04 {
    position: absolute;
    bottom: 79%;
    left: 16%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text04 img {
    width: 38vw;
  }

  .swiper-slide-active .mv_text04 {
    animation: fadeIn4 1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn4 {
    0% {
      opacity: 0;
      transform: translate(-100%, 50%);
    }

    100% {
      opacity: 1;
      transform: translate(0, 50%);
    }
  }

  .swiper-slide .mv_text05 {
    position: absolute;
    bottom: 68%;
    left: 7%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text05 img {
    width: 30vw;
  }

  .swiper-slide-active .mv_text05 {
    animation: fadeIn5 0.6s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn5 {
    0% {
      opacity: 0;
      transform: translateY(100%);
    }

    100% {
      opacity: 1;
      transform: translateY(50%);
    }
  }

  .swiper-slide .mv_text06 {
    position: absolute;
    bottom: 27%;
    left: 9%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text06 img {
    width: 40vw;
  }

  .swiper-slide-active .mv_text06 {
    animation: fadeIn6 1.3s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn6 {
    0% {
      opacity: 0;
      transform: translateY(100%);
    }

    100% {
      opacity: 1;
      transform: translateY(50%);
    }
  }

  .swiper-slide .mv_text07 {
    position: absolute;
    bottom: 20%;
    left: 15%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text07 img {
    width: 75vw;
  }

  .swiper-slide-active .mv_text07 {
    animation: fadeIn7 1.1s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn7 {
    0% {
      opacity: 0;
      transform: translate(100%, 50%);
    }

    100% {
      opacity: 1;
      transform: translate(0, 50%);
    }
  }

  .swiper-slide .mv_text08 {
    position: absolute;
    bottom: 59%;
    left: 70%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text08 img {
    width: 18vw;
  }

  .swiper-slide-active .mv_text08 {
    animation: fadeIn8 1.5s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn8 {
    0% {
      opacity: 0;
      transform: translateY(-20%);
    }

    100% {
      opacity: 1;
      transform: translateY(50%);
    }
  }

  .swiper-slide .mv_text09 {
    position: absolute;
    bottom: 40%;
    left: 88%;
    transform: translateY(50%);
  }

  .swiper-slide .mv_text09 img {
    width: 8vw;
  }

  .swiper-slide-active .mv_text09 {
    animation: fadeIn9 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  }

  @keyframes fadeIn9 {
    0% {
      opacity: 0;
      transform: translateY(100%);
    }

    100% {
      opacity: 1;
      transform: translateY(50%);
    }
  }

}

/*
point / section-title
================================================ */
.point {
  color: var(--white);
  background-color: var(--red100);
  padding-block: 64px 10px;
  position: relative;
}

.point_top-image {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  pointer-events: none;
  width: 100%;
  transform: translateY(-99.5%);
}

.point_container {
  background-color: #000;
  width: 83.3%;
  margin: 0 auto 0;
  padding: 54px 64px 45px;
  padding-top: clamp(1.25rem, -3.981rem + 8.17vw, 3.375rem);
  padding-right: clamp(1.25rem, -5.365rem + 10.34vw, 3.938rem);
  padding-left: clamp(1.25rem, -5.365rem + 10.34vw, 3.938rem);
  position: relative;
  z-index: 2;
  top: -8vw;
}

.point_top-copy {
  position: absolute;
  top: -1em;
  left: 0;
  transform: translateY(-100%);
  font-size: 26px;
  font-weight: 500;
}

.point_top-image img {
  width: 100%;
}

.point_title {
  font-size: clamp(1.25rem, 0.6rem + 2.77vw, 2.375rem);
  font-weight: 500;
  text-align: center;
  margin-bottom: 1.4em;
}

.point_text {
  font-size: 17px;
  font-weight: 400;
  line-height: 2.2;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 14px;

}

.point_text span {
  color: var(--red100);
}

.point_text-item {
  text-align: center;
  position: relative;
  padding: 20px 30px;
  width: clamp(11.875rem, 2.644rem + 14.42vw, 15.625rem);
  height: 230px;
}

.point_text-item::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid var(--white);
  border-radius: 100%;
  position: absolute;
  width: clamp(13.125rem, 10.048rem + 4.81vw, 14.375rem);
  height: clamp(13.125rem, 10.048rem + 4.81vw, 14.375rem);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.point_text-item .title {
  font-size: clamp(1.375rem, 0.76rem + 0.96vw, 1.625rem);
  display: inline-block;

  position: relative;
  transform: translateY(-50%);
  padding: 0.6em;
  position: absolute;
  width: 100%;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1.4;
}

.point_text-item .title span {
  background-color: #000;
  display: inline-block;
  padding: 0 .6em;
  color: var(--white);
}

.point_text-item .text {
  line-height: 1.5;
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  transform: translate(-50%, -50%);
  font-size: clamp(0.938rem, 0.63rem + 0.48vw, 1.063rem);
}


.point_button {
  background-color: #fff;
  max-width: 900px;
  width: 90%;
  color: var(--red100);
  margin: 0 auto;
  text-align: center;
  margin-top: 50px;
  position: relative;
  top: -8vw;
}

.point_button::after {
  content: "";
  display: block;
  background-image: url(../img/point_icon.svg);
  background-size: contain;
  background-position: center;
  width: 100%;
  max-width: 90px;
  height: 30px;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 60%;
  transform: translate(100%, -50%);
}

.point_button a {
  font-size: 28px;
  font-weight: 500;
  display: block;
  padding: 1em;
}

@media(max-width:1024px) {
  .point {
    padding-block: 64px;
  }

  .point_top-copy {
    position: absolute;
    width: 100%;
    top: -1em;
    left: 50%;
    transform: translate(-50%, -100%);
    font-size: clamp(0.938rem, 0.035rem + 3.85vw, 1.6rem);
    display: flex;
    align-items: center;
  }

  .point_top-text {
    display: inline-block;
    margin: 0 auto;
  }

  .point_container {
    margin: 0 auto;
    top: 0;
    padding: 20px 20px 105px;
  }

  .point_text-point {
    margin: 0 auto 60px;
    font-size: clamp(0.875rem, 0.442rem + 1.85vw, 1.625rem);
  }

  .point_text-item {
    width: 60%;
    height: clamp(6.25rem, 1.555rem + 20.03vw, 14.375rem);
  }

  .point_text-item .title {
    font-size: clamp(1.375rem, 0.76rem + 0.96vw, 1.625rem);
    display: inline-block;
    position: relative;
    transform: translateY(-50%);
    padding: 0.6em;
    position: absolute;
    width: 100%;
    top: 0;
    left: 50%;
    transform: translate(-50%, -100%);
    line-height: 1.4;
  }

  .point_text-item::before {
    width: clamp(10rem, 3.861rem + 26.19vw, 20.625rem);
    height: clamp(10rem, 3.861rem + 26.19vw, 20.625rem);
  }

  .point_text-item:nth-of-type(odd) {
    margin-left: auto;
  }

  .point_text-item:nth-of-type(n+2) {
    margin-top: 40px;
  }

  .point_title {
    margin-bottom: 1.4em;
  }

  .point_text {
    line-height: 1.8;
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .point_text-item .title {
    font-size: clamp(1rem, 0.639rem + 1.54vw, 1.625rem);
    padding: .6em;
  }

  .point_text-item .text {
    font-size: clamp(0.75rem, 0.317rem + 1.85vw, 1.5rem);
  }

  .point_button {
    max-width: 900px;
    margin-top: 50px;
    top: 0;
    width: 70%;
  }
}

@media(max-width:767px) {
  .point_button {
    max-width: 900px;
    margin-top: 50px;
    top: 0;
    width: 78%;
  }

  .point_button a {
    font-size: 14px;
  }

  .point_button::after {
    top: 50%;
    left: 68%;
    transform: translate(100%, -50%);
    max-width: 40px;
  }
}


/*
cta / section-title
================================================ */
.cta {
  position: fixed;
  bottom: 20px;
  right: 10px;
  max-width: 350px;
  width: 100%;
  z-index: 10;
}

.section {
  position: relative;
}

.section-title {
  font-size: 45px;
  color: var(--white);
  font-weight: 500;
  line-height: 1.5;
  text-align: center;
}

.section-title span {
  border-bottom: 2px solid var(--red100);
  max-width: 400px;
  width: 100%;
  display: block;
  margin: 0 auto;
}

.section-bgtitle {
  position: absolute;
  bottom: 45px;
  left: 18px;
}

.section-title._white {
  color: var(--white);
}

.section-title._black {
  color: var(--black);
}

.section-title em {
  position: relative;
  font-style: normal;
}

.section-title strong {
  font-size: 150%;
  position: relative;
  font-style: normal;
}

.section-title em::before,
.section-title strong::before {
  content: '';
  display: block;
  width: 100%;
  height: 12px;
  background-color: var(--orange);
  position: absolute;
  left: 0;
  bottom: 3px;
  z-index: -1;
}

@media(max-width: 767px) {
  .cta {
    max-width: 800px;
    width: 90%;
    left: 50%;
    bottom: 10px;
    transform: translateX(-50%);
  }

  .section-title {
    font-size: 24px;
  }

  .section-title em::before,
  .section-title strong::before {
    height: 7px;
  }

  .section-title span {
    max-width: 250px;
  }

  .section-bgtitle {
    bottom: auto;
    top: 25px;
    left: 7px;
  }

  .section-bgtitle img {
    width: 50%;
  }
}


/*
technology
================================================ */
.technology {
  background-color: var(--gray400);
  padding-block: 80px 0;
  overflow: hidden;
  position: relative;
}

.technology::before {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background-image: url(../img/technology_bg_line.svg);
  background-position: center bottom;
  background-size: cover;
  background-repeat: no-repeat;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(110%);
  z-index: 0;
}

.technology .section-title span {
  max-width: 600px;
  width: 80%;
}

.technology__container {
  min-height: 930px;
  position: relative;
}

.technology__container-item {
  position: absolute;
  top: 19%;
  left: 58%;
  transform: translate(-50%, 0);
  z-index: 3;
}

.technology__container-item:nth-of-type(2n) {
  top: 50%;
  left: 59%;
  transform: translate(-125%, 0);
  z-index: 2;
}

.technology__container-item:nth-of-type(3n) {
  top: 55%;
  left: 60%;
  transform: translate(-7%, 0);
  z-index: 1;
}


.technology__title {
  color: var(--white);
  text-align: center;
  font-size: clamp(1rem, 0.163rem + 3.57vw, 1.875rem);
  font-weight: 500;
  white-space: nowrap;
}

.technology__container-item::before {
  content: "";
  display: block;
  background-image: url(../img/technology_circle.svg);
  background-repeat: no-repeat;
  background-size: contain;
  transform: translate(-52%, -50%);
  position: absolute;
  top: 50%;
  left: 50%;
  height: 50%;
  z-index: -1;
  padding-top: clamp(3.125rem, -1.06rem + 17.86vw, 7.5rem);
  padding-right: clamp(6.875rem, 2.092rem + 20.41vw, 11.875rem);
  padding-left: clamp(6.875rem, 2.092rem + 20.41vw, 11.875rem);
  padding-bottom: clamp(10.625rem, 4.646rem + 25.51vw, 16.875rem);
  background-blend-mode: screen;
  opacity: .9;
}


.technology__button {
  text-align: center;
  margin-top: 2em;
}

.technology__button-title {
  text-align: center;
  color: var(--white);
  font-size: clamp(0.938rem, 0.399rem + 2.3vw, 1.5rem);
  font-weight: 500;
  background-color: #000;
  padding: .5em 1em 1em;
  display: inline-block;
  border-radius: 5px;
}

.technology__button-wrap {
  text-align: center;
}

.read__button {
  background-color: var(--orange200);
  font-size: clamp(0.875rem, 0.516rem + 1.53vw, 1.25rem);
  line-height: 1;
  font-weight: 500;
  padding: .5em 2em;
  margin-top: -10px;
  border: 1.5px solid var(--white);
  border-radius: 50px;

}

.technology-hide_box {
  width: 100%;
  max-width: 500px;
  background-color: #fff;
  margin: 0 auto;
}

.technology-hide_box .text_wrap {
  padding: 26px;
}


.technology-hide_box .title {
  font-size: 24px;
  font-weight: 500;
  margin-bottom: .5em;
}

.technology-hide_box .text {
  font-size: 15px;
  font-weight: 500;
}


.technology__container02 {
  position: relative;
  isolation: isolate;
}

.technology__container-item02 {
  position: absolute;
  top: 34%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: .94 !important;
  z-index: 3;

}

.technology__container-item02:nth-of-type(2n) {
  position: absolute;
  top: 68%;
  left: 50%;
  transform: translate(-100%, -50%);
  z-index: 2;

}

.technology__container-item02:nth-of-type(3n) {
  position: absolute;
  top: 65%;
  left: 50%;
  transform: translate(-20%, -50%);
  z-index: 1;

}

.technology__button img {
  mix-blend-mode: multiply;
  max-width: clamp(11.25rem, 2.104rem + 39.02vw, 26.25rem);
}


.image_text {
  position: relative;
  display: inline-block;
}

.image_text::after {
  content: "出典: Laserline GmbH, Germany";
  color: var(--white);
  position: absolute;
  bottom: 10px;
  right: 10px;
  z-index: 2;
  font-size: 13px;
}


@media(max-width:980px) {
  .technology__container-item02 {
    position: absolute;
    top: clamp(10.625rem, 5.085rem + 23.64vw, 19.563rem);
    left: 50%;
    transform: translate(-50%, -50%);
    opacity: .94;
    z-index: 3;
  }

  .technology__container-item02:nth-of-type(2n) {
    position: absolute;
    top: clamp(18.75rem, 5.966rem + 54.55vw, 39.375rem);
    left: 50%;
    transform: translate(-100%, -50%);
    z-index: 2;
  }

  .technology__container-item02:nth-of-type(3n) {
    position: absolute;
    top: clamp(18.75rem, 6.818rem + 50.91vw, 38rem);
    left: 50%;
    transform: translate(-20%, -50%);
    z-index: 1;
  }

  .technology-hide_box .text_wrap {
    padding: 1em;
  }


  .technology-hide_box .title {
    font-size: 20px;
    font-weight: 500;
    margin-bottom: .5em;
  }

  .technology-hide_box .text {
    font-size: 14px;
    font-weight: 500;
  }

}

@media(max-width:880px) {
  .technology__button {
    margin-top: 1em;
  }
}

@media(max-width:767px) {
  .technology__container-item {
    transform: translate(-22%, -4%);
    left: 41%;
    top: 150px;
  }

  .technology__container-item:nth-of-type(2n) {
    transform: translate(-95%, 0);
    left: 44%;
  }

  .technology__container-item:nth-of-type(3n) {
    transform: translate(30%, 0);
    left: 55%;
    top: 61vw;
    transform: translate(0, 0);
  }

  .technology__button-title {
    padding: 0.3em 0.3em 1em;
  }

  .technology-hide_box .text_wrap {
    padding: 22px;
  }


  .technology-hide_box .title {
    font-size: 18px;
  }

  .technology-hide_box .text {
    font-size: 14px;

  }


}

@media(max-width:660px) {
  .technology__container-item:nth-of-type(2n) {
    transform: translate(-95%, 0);
    top: 60%;
  }

  .technology__container {
    min-height: clamp(31.25rem, 24.277rem + 29.75vw, 42.5rem);
  }
}

@media(max-width:600px) {
  .technology__container-item::before {
    transform: translate(-53%, -50%);
  }

  .technology__container-item:nth-of-type(2n) {
    transform: translate(-95%, 30%);
    top: 55vw;
  }

  .technology__container-item:nth-of-type(3n) {
    transform: translate(2%, 8%);
    top: 63vw;
  }

}

@media(max-width:570px) {
  .technology__container-item::before {
    transform: translate(-53%, -50%);
  }

  .technology__container-item:nth-of-type(2n) {
    transform: translate(-95%, 30%);
    top: 55vw;
  }

  .technology__container-item:nth-of-type(3n) {
    transform: translate(2%, 8%);
    top: 67vw;
  }

}

@media(max-width:570px) {
  .technology__container-item:nth-of-type(2n) {
    transform: translate(-95%, 30%);
    top: 58vw;
  }

}

@media(max-width:500px) {
  .technology__container-item:nth-of-type(2n) {
    top: 64vw;
  }

  .technology__container-item:nth-of-type(3n) {
    top: 69vw;
  }

}

@media(max-width:500px) {
  .technology__container-item:nth-of-type(2n) {
    top: 64vw;
  }

  .technology__container-item:nth-of-type(3n) {
    top: 74vw;
  }

}

@media(max-width:430px) {
  .technology__container-item:nth-of-type(2n) {
    top: 67vw;
  }

  .technology__container-item:nth-of-type(3n) {
    top: 79vw;
  }

}

@media(max-width:400px) {
  .technology__container-item::before {
    padding: 40px 103px 170px;
    transform: translate(-53%, -50%);
  }

  .technology__container-item:nth-of-type(2n) {
    transform: translate(-90%, 30%);
    top: 66vw;
  }

  .technology__container-item:nth-of-type(3n) {
    top: 77vw;
  }

}

@media(max-width:380px) {
  .technology__container-item::before {
    padding: 40px 103px 170px;
    transform: translate(-53%, -50%);
  }

  .technology__container-item:nth-of-type(2n) {
    transform: translate(-86%, 30%);
    top: 74vw;
  }

  .technology__container-item:nth-of-type(3n) {
    transform: translate(2%, 8%);
    top: 300px;
  }

}


/*
equipment
================================================ */
.equipment {
  padding-top: 90px;
  padding-bottom: 36px;
  background-image: linear-gradient(#ececec 70%, #ffffff 70.1%);
}

.equipment__wrapper {
  background-color: var(--red100);
  padding: clamp(1.875rem, -1.875rem + 7.81vw, 3.125rem);
  margin-top: -100px;
  position: relative;
  clip-path: polygon(2% 0%, 100% 0, 100% 98%, 98% 100%, 0 100%, 0% 2%);
}

.equipment__container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(1.25rem, -3.438rem + 9.77vw, 2.813rem);
  width: 95%;
  margin: 0 auto;
}

.equipment__title {
  text-align: left;
  font-size: 38px;
  font-weight: 500;
  margin-bottom: 50px;
  display: flex;
  align-items: center;
}

.equipment__title::before {
  content: "";
  display: block;
  width: 30px;
  height: 2px;
  background-color: var(--white);
  margin-right: .5em;
}

.equipment__item-text-wrap {
  background-color: var(--white);
  padding: 23px;
}

.equipment__item-text-title {
  font-size: 26px;
  margin-bottom: 0.5em;
}

.equipment__item-text-list {
  display: flex;
  flex-wrap: wrap;
}

.equipment__item-text-list li {
  font-size: 15px;
  margin-left: 1em;
  position: relative;
  display: flex;
  align-items: center;
}

.equipment__item-text-list li:last-of-type {
  width: 90%;
}

.equipment__item-text-list li::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  background-image: url(../img/arrow_icon.svg);
  background-size: contain;
  background-repeat: no-repeat;
}

@media(max-width: 1200px) {
  .equipment__item-text-wrap {
    height: 180px;
  }

}

@media(max-width: 1110px) {
  .equipment__item-text-wrap {
    height: 190px;
  }

}


@media(max-width: 767px) {
  .equipment__title {
    font-size: 18px;
    margin-bottom: 20px;
  }

  .equipment__item-text-list li {
    font-size: 13px;
    margin-left: 0.5em;

  }

  .equipment__wrapper {
    padding: 20px;
    margin-top: -100px;
    position: relative;
    clip-path: polygon(6% 0%, 100% 0, 100% 99%, 95% 100%, 0 100%, 0% 1%);
  }

  .equipment__container {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    width: 100%;
  }

  .equipment__item-text-wrap {
    height: auto;
    padding: 10px;
  }

  .equipment__item-text-title {
    font-size: 17px;
    margin-bottom: 0.5em;
  }
}

/*
about
================================================ */
.about {
  padding-top: 64px;
  padding-bottom: 80px;
}

.about__list {
  width: 800px;
  display: flex;
  flex-wrap: wrap;
  margin: 40px auto 0;
}

.about__list dt {
  border-top: 1px solid var(--gray100);
  font-size: 16px;
  width: 160px;
  text-align: center;
  padding-block: 20px;
}

.about__list dd {
  border-top: 1px solid var(--gray200);
  font-size: 16px;
  width: calc(100% - 160px);
  padding-left: 20px;
  padding-block: 20px;
}

.about__list dt:last-of-type {
  border-bottom: 1px solid var(--gray100);
}

.about__list dd:last-of-type {
  border-bottom: 1px solid var(--gray200);
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .about__list {
    width: 88%;
  }

  .about__list dt {
    width: 140px;
    padding-block: 16px;
  }

  .about__list dd {
    width: calc(100% - 140px);
    padding-block: 16px;
  }
}

@media screen and (max-width: 767px) {
  .about {
    padding-block: 40px;
  }

  .about__list {
    width: 92%;
    margin-top: 20px;
  }

  .about__list dt {
    width: 100%;
    padding: 12px;
    text-align: left;
    background-color: var(--gray);
  }

  .about__list dd {
    width: 100%;
    padding: 12px;
    text-align: left;
  }
}

/*
solution / section-title
================================================ */

.solution {
  padding-block: 80px;
  background-image: url(../img/solution_bg.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;

}

.solution__container {
  background-color: var(--whitea90);
  width: 83.3%;
  margin: 64px auto 0;
  padding: 104px 64px 64px;
  position: relative;
}

.solution__container:nth-of-type(n+2) {
  margin-top: 50px;
}

.solution__container::before {
  content: "";
  display: block;
  width: 1px;
  height: 70%;
  background-color: var(--black);
  position: absolute;
  bottom: 10%;
  left: 50%;
}


.solution__title {
  font-size: 26px;
  font-weight: 500;
  padding-bottom: 12px;
  position: relative;
}

.solution__title .solution__title-number {
  font-size: 40px;
  margin-right: 0.5em;
}

.solution__title .solution__title-marker {
  background-color: var(--green200);
  padding: .1em .3em;
  margin-right: .5em;
}

.solution__container:nth-of-type(2) .solution__title .solution__title-marker {
  background-color: var(--orange200);
}

.solution__container:nth-of-type(3) .solution__title .solution__title-marker {
  background-color: var(--blue300);
}

.solution__container {
  display: flex;
  justify-content: center;
  gap: 64px;
}

.solution__container-title {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  max-width: 180px;
}

.solution__container-copy {
  font-size: 15px;
  font-weight: 500;
}

.solution__container-list {
  font-size: 15px;
  font-weight: 500;
  color: var(--green200);
  display: flex;
  gap: .5em;
  margin-top: 0.5em;
}

.solution__container:nth-of-type(2) .solution__container-list li {
  color: var(--orange200);
}

.solution__container:nth-of-type(3) .solution__container-list li {
  color: var(--blue300);
}

.solution__container-list li {
  padding: 0.3em 0.5em;
  border: 1px solid var(--green200);
  background-color: var(--white);
}

.solution__container:nth-of-type(2) .solution__container-list li {
  border: 1px solid var(--orange200);
}

.solution__container:nth-of-type(3) .solution__container-list li {
  border: 1px solid var(--blue300);
}

@media(max-width: 1024px) {
  .solution__container {
    margin: 64px auto 0;
    padding: 104px 30px 30px;
  }

  .solution__title {
    font-size: 19px;
    font-weight: 500;
    padding-bottom: 12px;
  }

}

@media (max-width: 800px) {
  .solution__title {
    font-size: 18px;
  }
}


@media(max-width: 767px) {
  .solution__container {
    flex-direction: column;
    align-items: center;
    gap: 64px;
    padding: 94px 30px 30px;
  }

  .solution__container::before {
    content: "";
    display: block;
    width: 70%;
    height: 1px;
    background-color: var(--black);
    position: absolute;
    bottom: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .solution__container-copy {
    font-size: 16px;
    margin: 1em auto;
    width: 95%;
  }

  .solution__container-list li {
    font-size: 12px;
  }

  .solution__title {
    font-size: clamp(1.125rem, 0.109rem + 4.34vw, 2.188rem);
    padding-bottom: 12px;
  }
}

@media(max-width:400px) {
  .solution__title .solution__title-number {
    font-size: 32px;
    margin-right: 0.5em;
  }
}


/*
evogeneration
================================================ */
.evogeneration {
  padding-block: 80px;
  background-color: var(--red100);
}


.evogeneration__container {
  width: 83.3%;
  margin: 0 auto;
  position: relative;

  display: flex;
  align-items: center;
  gap: 65px;
}

.evogeneration__section-title {
  width: 55%;
  text-align: left;
  font-size: clamp(1.875rem, -0.334rem + 4.6vw, 3.75rem);
}

.evogeneration__section-title span {
  border-bottom: 2px solid var(--white);
  display: inline-block;
  font-size: clamp(1.125rem, -0.511rem + 3.41vw, 1.875rem);
  max-width: 100%;
}

.evogeneration__section-image {
  width: 45%;
}

.evogeneration__list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap: 0px;
  grid-row-gap: 0px;
  gap: 2vw;
  margin-top: 50px;
}

.evogeneration__item {
  background-color: var(--white);
  padding: 35px 22px;
}

.evogeneration__title-number {
  display: flex;
  justify-content: center;
  border-bottom: 1px solid var(--red100);
  padding-bottom: 16px;
}

.evogeneration__container__title {
  font-size: clamp(1.125rem, -0.368rem + 2.33vw, 1.875rem);
  text-align: center;
  margin-top: 28px;
  line-height: 1.6;
  min-height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.evogeneration__container__copy {
  line-height: 1.8;
  font-size: 15px;
  margin-top: 2em;
  position: relative;
}

.evogeneration__container__copy::before {
  content: "";
  display: inline-block;
  height: 2px;
  width: 15px;
  background-color: var(--red100);
  transform: translateY(-5px);
  margin-right: .5em;
}

@media(max-width: 1024px) {
  .evogeneration__container__title {
    font-size: 30px;
    text-align: center;
    margin-top: 28px;
    line-height: 1.6;
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .evogeneration__list {
    grid-template-columns: repeat(2, 1fr);
  }

}

@media(max-width: 767px) {
  .evogeneration__list {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 50px;
    flex-direction: column;
  }

  .evogeneration__item {
    padding: 25px 22px;
  }

  .evogeneration__container__title {
    font-size: 30px;
    margin-top: 5px;
  }

  .evogeneration__container__copy {
    font-size: 15px;
    margin-top: 1.5em;
  }


  .evogeneration__section-title {
    width: 100%;
    text-align: left;
    font-size: clamp(1.875rem, 0.792rem + 4.62vw, 3.75rem);
  }

  .evogeneration__section-image {
    width: 100%;
  }

  .evogeneration__container {
    flex-direction: column;

    width: 83.3%;
    gap: 10px;
  }

  .evogeneration__list {
    grid-template-columns: repeat(1, 1fr);
    gap: 50px;
    margin-top: 50px;
  }
}

/*
powder
================================================ */
.powder {
  padding-block: 80px;
  background-color: var(--white);
}

.powder__section-title {
  color: var(--black);
  background-image: url(../img/powder_image01.webp);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 150px 0;
}

.powder__section-title span {
  max-width: 600px;
}

.powder__item {
  padding: 78px 100px;
  background-color: var(--gray400);
}

.powder__table {
  width: 100%;
  table-layout: auto;
}

.powder__table .small_text {
  font-size: 12px;
}

.powder__table .text_red {
  color: var(--red100);
}


.powder__table,
td,
th {
  border: 1px solid var(--gray200);
  border-collapse: collapse;
  background-color: var(--white);
}

.powder__table td,
th {
  font-size: 17px;
  padding: 3px;
  width: 30px;
  height: 25px;
  text-align: center;
  font-weight: 500;
  padding: 1em;
  vertical-align: middle;
}

.powder__table tr td:nth-of-type(2) {
  text-align: left;
  width: 37%;
}

.powder__table tr td:nth-of-type(3) {
  width: 25%;
}

.powder__table tr td:nth-of-type(4) {
  width: 14%;
}

.powder__table tr td:nth-of-type(5) {
  width: 14%;
}

.powder__table th {
  font-size: 18px;
  background: var(--red100);
  color: var(--white);
  vertical-align: middle;
}

@media(max-width: 1024px) {
  .powder__section-title {
    padding: 50px 0;
  }

  .powder__item {
    padding: 40px 20px;
  }

  .powder__table {
    width: 1000px;
  }

  .powder__table-wrapper {
    overflow: scroll;
  }
}

@media(max-width: 767px) {

  .powder__table th {
    font-size: 16px;
  }

  .powder__section-title span {
    max-width: 400px;
  }

  .powder__table td,
  th {
    font-size: 15px;
    padding: 3px;
    width: 30px;
    height: 25px;
    text-align: center;
    font-weight: 500;
    padding: .3em;
    vertical-align: middle;
  }
}

/*
faq
================================================ */
.faq {
  padding-block: 80px;
  background-image: url(../img/question_bg.webp);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  position: relative;
}

.faq__container {
  background-color: var(--whitea90);
  padding: 60px 0;
  margin-top: 70px;
}

.faq__list {
  max-width: 1200px;
  width: 95%;
  margin: 0 auto;
}

.faq__item:nth-of-type(n+2) {
  margin-top: 20px;
}

.faq__item .question,
.faq__item .answer {
  position: relative;
  font-size: 19px;
  line-height: 1.7;
}

.faq__item .answer {
  font-size: 17px;
  position: relative
}

.answer::before {
  color: var(--red100);
  font-size: 38px;
  content: "A";
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(0, -50%);
  width: 100px;
  text-align: center;
}

.faq__item .question {
  background-color: var(--white);
  padding: 20px;
  padding-left: 114px;
  cursor: pointer;
  min-height: 100px;
  display: flex;
  align-items: center;
}

.faq__item .question::before {
  content: '';
  display: block;
  width: 100px;
  height: 100%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 0px;
  left: 0;
  background-color: var(--red100);
  padding: 10px;
}

.faq__item .question::after {
  content: '';
  display: block;
  width: 40px;
  height: 40px;
  background-image: url(../img/question_icon_q.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(70%, -50%);
  padding: 10px;
}

.question .text {
  margin-right: 30px;
}

.faq__item .answer {
  box-sizing: border-box;
  background-color: var(--whitea90);
  color: var(--black);
  height: 0;
  overflow: hidden;
  transition: all .5s;
}

.faq__item .answer__inner {
  padding: 20px 20px 20px 120px;
  /* padding-left: 114px; */
}

.faq__item .answer .list {
  display: inline-block;
  text-indent: -1em;
  padding-left: 1em;
}

.faq_border {
  position: absolute;
  top: 50%;
  right: 20px;
  display: block;
  height: 1px;
  width: 30px;
  background-color: var(--black);
}

.faq_border::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 50%;
  display: block;
  height: 30px;
  width: 1px;
  background-color: var(--black);
  transform: translateY(-50%);
  transition: .4s;
}

.question.active .faq_border::before {
  content: "";
  position: absolute;
  top: 50%;
  right: 50%;
  display: block;
  height: 0;
  width: 1px;
  background-color: var(--black);
  transform: translateY(-50%);
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .faq__list {
    width: 88%;
  }
}

@media screen and (max-width: 767px) {
  .faq {
    padding-block: 40px;
  }

  .faq__container {
    padding: 20px 0;
  }

  .faq__item:nth-of-type(n+2) {
    margin-top: 20px;
  }

  .faq__list {
    width: 92%;
    margin-top: 20px;
  }


  .question .text {
    font-size: 13px;
  }

  .faq__item .question::after {
    content: '';
    display: block;
    width: 30px;
    height: 20px;
    background-image: url(../img/question_icon_q.svg);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(20%, -50%);
    padding: 10px;
  }

  .faq__item .question {
    font-size: 15px;
    padding: 10px;
    padding-left: 54px;
    min-height: 60px;
  }

  .faq__item .answer {
    font-size: 15px;
    padding-left: 60px;
  }

  .faq__item .question::before {
    width: 40px;
  }

  .answer::before {
    color: var(--red100);
    font-size: 22px;
    content: "A";
    position: absolute;
    top: 50%;
    left: 1%;
    transform: translate(0, -50%);
    width: 40px;
    text-align: center;
  }

  /* .faq__item .answer::before {
    width: 28px;
    height: 30px;
    left: 16px;
  } */

  .faq__item .answer__inner {
    padding: 20px 10px;
    font-size: 13px;
  }

  .question .text {
    margin-right: 25px;
  }

  .faq_border {
    right: 10px;
    width: 20px;
  }

  .faq_border::before {
    height: 20px;
  }
}