@charset "utf-8";
/* // header調整（透過なしに変更）
.header {
  background-color: transparent;
  .is-scroll & {
    background-color: var(--color-white);
  }
}

.header-logo-name {
  background-color: #fff;
  .is-scroll & {
    background-color: #000;
  }
}

.globalNav {
  & a {
    color: var(--color-white);
  }
}

.is-scroll .globalNav {
  & a {
    color: #000;
    &:hover {
      color: var(--color-main);
    }
  }
}

.main {
  margin-top: 0;
} */

.mv {
  width: 100%;
  height: calc(100lvh - var(--header-height));
  position: relative;
}
@media screen and (width <= 768px) {
  .mv {
    height: auto;
    aspect-ratio: 768 / 580;
  }
}

.swiper {
  width: 100%;
  height: 100%;
  position: relative;
  &::after {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    width: 100%;
    height: 100%;
    background-color: #00000060;
    z-index: 1;
  }
}

.swiper-slide {
  width: 100%;
  height: 100%;
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
  }
}

.mv-copy {
  position: absolute;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  height: 100%;
  z-index: 1;
}

.mv-copy-inner {
  align-self: center;
  width: min(100%, 1240px);
  padding: 0 var(--side-padding);
  margin: 0 auto;
  align-self: center;
  & h1 {
    height: 1px;
    font-size: 10px;
    color: transparent;
    line-height: 1;
    overflow: hidden;
  }
  & p {
    font-size: clamp(51px, -9.444px + 7.87vw, 85px);
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1.5;
    color: var(--color-white);
    &.mv-copy-en {
      margin-top: 1em;
      font-family: var(--font-family-din);
      font-size: clamp(24px, -4.444px + 3.704vw, 40px);
      font-weight: 600;
      letter-spacing: 0;
    }
  }
}
@media screen and (width <= 768px) {
  .mv-copy-inner {
    & p {
      font-size: clamp(34px, 13.008px + 5.598vw, 56px);
      &.mv-copy-en {
        margin-top: 0.5em;
        font-size: 3.12vw;
      }
    }
  }
}

.who {
  position: relative;
  background: linear-gradient(rgba(30, 92, 167, .8),  rgba(30, 92, 167, .8)),  url('../img/top/bg_top_who.webp'); 
  background-repeat: no-repeat;
  background-position: center top;
  background-size: cover;
  color: var(--color-white);
  padding: 180px 0 calc(180px + 360px);
}
@media screen and (width <= 768px) {
  .who {
    background: linear-gradient(rgba(30, 92, 167, 1) 0%, rgba(30, 92, 167, 1) 60%, rgba(30, 92, 167, .8) 100%), url(../img/top/bg_top_who.webp) no-repeat bottom center / 140% auto;
    padding: 23.43vw 0 calc(23.43vw + 46.87vw);
  }
}

.who-icon {
  position: absolute;
  width: min(16.66vw, 200px);
  aspect-ratio: 1;
  top: max(-7.5vw, -90px);
  right: var(--side-padding);
  z-index: 1;
  &._02 {
    width: min(6.5vw, 78px);
    top: min(10vw, 120px);
    right: min(20vw, 240px);
  }
}
@media screen and (width <= 768px) {
  .who-icon {
    width: 13.8vw;
    top: -6vw;
    right: var(--sp-small-padding);
    &._02 {
      width: 5.33vw;
      top: 6vw;
      right: 20vw;
    }
  }
}

.who-inner {
  width: 100%;
  margin: 0 auto;
  padding: 0;
}
@media screen and (width <= 768px) {
  .who-inner {
    padding: 0 var(--side-padding);
  }
}

.who-contents {
  display: flex;
  gap: min(6.45vw, 80px);
  align-items: stretch;
  margin-top: 100px;
}
@media screen and (width <= 768px) {
  .who-contents {
    flex-flow: column;
    gap: 6.51vw;
    margin-top: 6.51vw;
  }
}

.who-img {
  width: calc(50% - min(6.45vw, 80px));
  translate: 0 80px;
  opacity: 0;
  transition: all var(--animation-time) ease-out;
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  &.is-view {
    translate: 0 0;
    opacity: 1;
  }
}
@media screen and (width <= 768px) {
  .who-img {
    width: 100%;
    aspect-ratio: 60 / 48;
  }
}

.who-text {
  display: flex;
  gap: 50px;
  flex-flow: column;
  justify-content: space-between;
  width: 50%;
  padding-right: max(20px, calc(50% - 600px));
  & > h3 {
    margin-top: -0.5em;
    font-size: clamp(21px, -3.889px + 3.241vw, 35px);
    font-weight: 600;
  }
  & > p {
    font-size: 18px;
    line-height: 2.1;
  }
}
@media screen and (width <= 768px) {
  .who-text {
    gap: 6.51vw;
    width: 100%;
    padding-right: 0;
    & > h3 {
      margin-top: 0;
      font-size: clamp(20px, 10.458px + 2.545vw, 30px);
    }
    & > p {
      /* font-size: clamp(14px, 12.092px + 0.509vw, 16px); */
      font-size: clamp(16px, 14.092px + 0.509vw, 18px);
    }
  }
  .who-btn a {
    margin: 0 auto;
  }
}

.products {
  position: relative;
  margin-top: -360px;
  color: var(--color-white);
  z-index: 1;
}
@media screen and (width <= 768px) {
  .products {
    margin-top: -46.87vw;
  }
}

.products-icon {
  position: absolute;
  width: min(8.33vw, 100px);
  aspect-ratio: 1;
  top: max(-5vw, -60px);
  left: min(5vw, 60px);
  z-index: 1;
  &._02 {
    width: min(5.33vw, 64px);
    top: max(-10vw, -120px);
    left: min(15vw, 180px);
  }
}

.products-contents {
  margin-top: 100px;
}
@media screen and (width <= 768px) {
  .products-contents {
    margin-top: 6.51vw;
  }
}

.products-seg {
  display: flex;
  align-items: center;
  width: min(100%, 1240px);
  padding: 0 var(--side-padding);
  margin: 0 auto;
  color: var(--color-text);
  & + .products-seg {
    margin: 100px auto 180px;
  }
}
@media screen and (width <= 768px) {
  .products-seg {
    flex-flow: column;
    gap: 6.51vw;
    & + .products-seg {
      margin: 13.02vw auto;
    }
  }
}

.products-img {
  width: 60%;
  aspect-ratio: 7 / 4;
  min-height: 400px;
  translate: 0 80px;
  z-index: -1;
  opacity: 0;
  transition: all var(--animation-time) ease-out;
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  &.is-view {
    translate: 0 0;
    opacity: 1;
  }
}
@media screen and (width <= 768px) {
  .products-img {
    width: 100%;
    aspect-ratio: 6 / 4;
    min-height: initial;
  }
}

.products-text {
  width: calc(40% + 80px);
  margin-left: -80px;
  padding: 30px min(3.90vw,45px) 45px;
  border: solid 4px var(--color-main);
  border-top: none;
  border-left: none;
  background-color: var(--color-white);
  box-shadow: 4px 4px 12px 0px rgba(0,0,0,0.12);
  & > h3 {
    font-size: clamp(24px, -4.444px + 3.704vw, 40px);
    font-weight: 800;
    color: var(--color-main);
  }
  & > p {
    margin-top: 10px;
    font-size: 18px;
    font-weight: 500;
  }
}
@media screen and (width <= 768px) {
  .products-text {
    width: 100%;
    margin-left: 0;
    padding: 3.12vw;
    border: solid 2px var(--color-main);
    border-top: none;
    border-left: none;
    & > h3 {
      font-size: clamp(24px, 18.275px + 1.527vw, 30px);
      text-align: center;
    }
    & > p {
      margin-top: 0;
      /* font-size: clamp(14px, 12.092px + 0.509vw, 16px); */
      font-size: clamp(16px, 14.092px + 0.509vw, 18px);
    }
  }
}

.products-btn {
  margin-top: 20px;
}
@media screen and (width <= 768px) {
  .products-btn {
    & .cmn-more a {
      margin: 0 auto;
    }
  }
}

.corp {
  position: relative;
  padding: 0 0 180px;
  &::after {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    width: 70%;
    height: 95%;
    background-color: var(--color-sub);
    z-index: -1;
  }
}
@media screen and (width <= 768px) {
  .corp {
    padding: 13.02vw var(--side-padding) 13.02vw;
    background-color: var(--color-sub);
    &::after {
      content: none;
    }
  }
}

.corp-inner {
  width: 100%;
  margin: 0 auto;
  padding: 0;
}

.corp-seg {
  display: flex;
  gap: min(6.45vw, 80px);
  align-items: stretch;
  & + .corp-seg {
    margin-top: 100px;
  }
  &._left {
    flex-flow: row-reverse;
  }
}
@media screen and (width <= 768px) {
  .corp-seg {
    gap: 6.51vw;
    flex-flow: column-reverse;
    & + .corp-seg {
      margin-top: 13.02vw;
    }
    &._left {
      flex-flow: column-reverse;
    }
  }
}

.corp-img {
  width: 50%;
  aspect-ratio: 7 / 4;
  max-height: 500px;
  translate: 0 80px;
  opacity: 0;
  transition: all var(--animation-time) ease-out;
  & img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  &.is-view {
    translate: 0 0;
    opacity: 1;
  }
}
@media screen and (width <= 768px) {
  .corp-img {
    width: 100%;
    aspect-ratio: 600 / 337;
    max-height: initial;
    height: auto;
  }
}

.corp-text {
  display: flex;
  flex-flow: column;
  gap: 30px;
  justify-content: space-between;
  width: calc(50% - min(6.45vw, 80px));
  padding: 0 max(20px, calc(50% - 600px)) 0 0;
  .corp-seg._left & {
    padding: 0 0 0 max(20px, calc(50% - 600px));
  }
}
@media screen and (width <= 768px) {
  .corp-text {
    gap: 5.2vw;
    width: 100%;
    padding: 0;
    .corp-seg._left & {
      padding: 0;
    }
  }
}

.corp-title {
  & h2 {
    border-bottom: solid 3px var(--color-main);
    font-size: clamp(24px, -4.444px + 3.704vw, 40px);
    font-weight: 500;
    & span {
      display: inline-block;
      margin-top: -.25em;
      padding-right: min(3vw,30px);
      font-family: var(--font-family-din);
      font-weight: 700;
      font-size: clamp(99px, -18.333px + 15.278vw, 165px);
      line-height: 1.2;
      color: var(--color-main);
      opacity: .5;
    }
  }
  & p {
    margin-top: 30px;
    font-family: var(--font-family-din);
    font-size: clamp(51px, -9.444px + 7.87vw, 85px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
    color: var(--color-main);
  }
}
@media screen and (width <= 768px) {
  .corp-title {
    & h2 {
      display: inline-block;
      padding-right: 3em;
      border-width: 1.5px;
      font-size: clamp(18px, 14.183px + 1.018vw, 22px);
      & span {
        font-size: clamp(70px, 52.824px + 4.58vw, 88px);
      }
    }
    & p {
      margin-top: 0.3em;
      font-size: clamp(36px, 27.412px + 2.29vw, 45px);
    }
  }
}

@media screen and (width <= 768px) {
  .corp-btn {
    & .cmn-more a {
      margin: 0 auto;
    }
  }
}