@charset "UTF-8";
/* ------------------------------------------------------------
// index.html
------------------------------------------------------------ */
.triangle-container {
  position: relative;
  width: 100%;
  height: 100vh;
  margin: 0 auto 160px; /* 中央寄せ */
  display: flex;
  flex-direction: column; /* 縦に並べる */
  gap: 20px; /* 三角形間のスペース */
  z-index: 10;
}
@media print, screen and (max-width: 991px) {
  .triangle-container {
    height: 60vh;
    margin: 0 auto 60px; /* 中央寄せ */
  }
}

.triangle {
  position: absolute;
  z-index: 100;
  width: 100%;
  height: 50px; /* 基準の高さ */
  background-color: white;
  box-sizing: border-box;
}
@media print, screen and (max-width: 991px) {
  .triangle {
    height: 30px;
  }
}
@media print, screen and (max-width: 575px) {
  .triangle {
    height: 10px;
  }
}

.top-left {
  clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
  position: absolute;
  top: 100px;
}

.bottom-right {
  clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
  position: absolute;
  bottom: 0;
}

.triangle.responsive-shape {
  position: relative;
  height: 0;
  padding-bottom: 50%;
  background-color: transparent;
}

.triangle.responsive-shape::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: white;
  box-sizing: border-box;
}

.top-left.responsive-shape::before {
  clip-path: polygon(0% 0%, 100% 0%, 0% 100%);
}

.bottom-right.responsive-shape::before {
  clip-path: polygon(100% 0%, 100% 100%, 0% 100%);
}

#main-img {
  position: relative;
  top: 100px;
  width: 100%;
  height: calc(100vh - 100px); /* ←ヘッダー分を引く */
  overflow: hidden;
}
@media print, screen and (max-width: 991px) {
  #main-img {
    height: calc(60vh - 100px); /* スマホ時も調整（必要に応じて変更） */
  }
}

#slides {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
}
#slides .slide {
  position: absolute;
  display: flex;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 1s ease-in-out;
  z-index: 0;
  pointer-events: none;
}
#slides .slide.active {
  opacity: 1;
  z-index: 1;
  pointer-events: auto;
}

#slides .slide .title {
  position: absolute;
  z-index: 2;
  padding-top: 5px;
  font-size: 220px;
  font-weight: 400;
  color: #fff;
  letter-spacing: 0.05em;
  line-height: 0.9;
  overflow: hidden;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

#slides .slide.active .title {
  opacity: 1;
  transition-delay: 0.5s;
}

@media print, screen and (max-width: 991px) {
  #slides .slide .title {
    font-size: 110px;
  }
}
@media print, screen and (max-width: 767px) {
  #slides .slide .title {
    font-size: 60px;
  }
}
#slides .slide .title img {
  display: block;
  width: auto;
  max-width: 600px;
  height: auto;
  margin: 0 auto;
}
@media print, screen and (max-width: 991px) {
  #slides .slide .title img {
    max-width: 300px;
  }
}
@media print, screen and (max-width: 575px) {
  #slides .slide .title img {
    max-width: 180px;
  }
}

#slides .slide .title .logo-l {
  display: block;
  width: auto;
  max-width: 800px;
  height: auto;
  margin: 0 auto;
}
@media print, screen and (max-width: 991px) {
  #slides .slide .title .logo-l {
    max-width: 400px;
  }
}
@media print, screen and (max-width: 575px) {
  #slides .slide .title .logo-l {
    max-width: 240px;
  }
}

#slides .slide .slide-partial {
  position: absolute;
  width: 50%;
  height: 100%;
  overflow: hidden;
  transition: transform 1.2s ease-in-out;
}

#slides .slide .slide-partial img {
  position: absolute;
  z-index: 1;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  transition: none;
}

#slides .slide .slide-left {
  left: 0;
  transform: translateX(-100%);
}

#slides .slide .slide-left img {
  top: 0;
  right: 0;
  -o-object-position: 100% 50%;
     object-position: 100% 50%;
}

#slides .slide .slide-right {
  right: 0;
  transform: translateX(100%);
  transition-delay: 0.2s;
}

#slides .slide .slide-right img {
  top: 0;
  left: 0;
  -o-object-position: 0% 50%;
     object-position: 0% 50%;
}

#slides .slide.active .slide-partial {
  transform: translateX(0);
}

#slides .slide.active .slide-right {
  transition-delay: 0.2s;
}

/* slide-1：右寄せ・上下中央 */
#slides .slide-1 .title {
  top: 50%;
  right: 0;
  left: auto;
  transform: translateY(-50%);
  text-align: right;
}

/* slide-2：中央寄せ・上下中央 */
#slides .slide-2 .title {
  top: 50%;
  left: 50%;
  right: auto;
  transform: translate(-50%, -50%);
  text-align: center;
}

/* slide-3：左寄せ・下寄せ */
#slides .slide-3 .title {
  bottom: 50px;
  left: 20px;
  right: auto;
  top: auto;
  transform: none;
  text-align: left;
}

/* slide-4：中央寄せ・上下中央・拡大アニメあり */
#slides .slide-4 .title {
  top: 50%;
  left: 50%;
  right: auto;
  transform: translate(-50%, -50%) scale(0.8);
  text-align: center;
  transition: opacity 1s ease-in-out, transform 1s ease-in-out;
}

#slides .slide-4.active .title {
  transform: translate(-50%, -50%) scale(1);
  transition-delay: 0.5s;
}

.index-info-wrap {
  margin-bottom: 120px;
  background: url(../images/index/info-bg.png) no-repeat center center/cover;
}
.index-info-wrap .cont-area {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #ffffff;
  width: 50%;
  height: 825px;
  margin-left: auto;
}
@media screen and (max-width: 991px) {
  .index-info-wrap {
    margin-bottom: 40px;
    padding: 60px 0;
    background: #111111;
  }
  .index-info-wrap .cont-area {
    font-size: 18px;
    width: 100%;
    height: auto;
  }
}

.index-cont-wrap-1 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  height: 791px;
  margin-bottom: 120px;
  background: url(../images/index/service-about-bg.png) no-repeat center center/cover;
}
.index-cont-wrap-1 .box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
}
.index-cont-wrap-1 .box .cont-area .link-btn {
  text-align: right;
}
@media print, screen and (max-width: 991px) {
  .index-cont-wrap-1 {
    height: auto;
    margin-bottom: 40px;
    padding: 60px 0 90px;
    background: url(../images/index/service-about-bg.png) no-repeat center left/auto;
  }
  .index-cont-wrap-1 .box {
    width: 100%;
  }
  .index-cont-wrap-1 .box:first-child {
    margin-bottom: 60px;
  }
  .index-cont-wrap-1 .box .cont-area .link-btn {
    text-align: center;
  }
}

.index-cont-wrap-2 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  height: 791px;
  margin-bottom: 120px;
  background: url(../images/index/stock-reputation-bg.png) no-repeat center center/cover;
}
.index-cont-wrap-2 .box {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 50%;
}
.index-cont-wrap-2 .box .cont-area .link-btn {
  text-align: right;
}
@media print, screen and (max-width: 991px) {
  .index-cont-wrap-2 {
    height: auto;
    margin-bottom: 40px;
    padding: 60px 0 90px;
    background: url(../images/index/stock-reputation-bg.png) no-repeat center left/auto;
  }
  .index-cont-wrap-2 .box {
    width: 100%;
  }
  .index-cont-wrap-2 .box:first-child {
    margin-bottom: 60px;
  }
  .index-cont-wrap-2 .box .cont-area .link-btn {
    text-align: center;
  }
}

.index-contact-wrap {
  margin-bottom: 120px;
  background: url(../images/index/contact-bg.png) no-repeat center center/cover;
}
.index-contact-wrap .cont-area {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  color: #ffffff;
  width: 50%;
  height: 826px;
  padding-right: 120px;
}
@media screen and (max-width: 991px) {
  .index-contact-wrap {
    margin-bottom: 40px;
    padding: 60px 0;
    background: url(../images/index/contact-bg.png) no-repeat center right;
  }
  .index-contact-wrap .cont-area {
    font-size: 18px;
    width: 100%;
    height: auto;
    padding-right: 0;
  }
}