html {
  /*scroll-behavior: smooth;*/
}

.l-body {
}

.l-main {
  position: relative;
  /*background: #fff;*/
}

#mv {
  /*position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  height: 100vh;*/
}
#sec01 {
  position: absolute;
  width: 100%;
  height: 100%;
}
#sec02 {
  position: absolute;
  width: 100%;
  height: 100%;
}
/*#sec02 {
  position: relative;
  height: calc(var(--vh, 1vh) * 100);
  scroll-snap-align: start;
  scroll-snap-stop: always;
}
#sec03 {
  scroll-snap-align: start;
      scroll-snap-stop: always;
}*/
.p-mv {
  position: relative;
  height: calc(var(--vh, 1vh) * 100);
  /*height: 100%;*/
}
@media screen and (max-width: 960px) {
  .p-mv {
    margin-bottom: 60px;
    min-height: 600px;
  }
}
.p-mv__dummy {
  position: absolute;
  width: 100%;
}
.p-mv__dummy--item {
  height: calc(var(--vh, 1vh) * 100);
}
.p-mv__bg {
  position: relative;
}

.p-mv__img {
  display: block;
  height: calc(var(--vh, 1vh) * 100);
  opacity: 1;
  transition: none; /* CSS側のtransitionは切ってGSAPだけに任せる */
}
@media screen and (max-width: 960px) {
  .p-mv__img:after {
    position: absolute;
    bottom: 0;
    left: 0;
    content: "";
    width: 100%;
    height: 20%;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
    z-index: 1;
  }
}
/*.p-mv.is-active .p-mv__img {
  opacity: 0;
  filter: blur(120px);
}*/
.p-mv__img video {
  height: 100%;
}

.p-mv__img,
.p-mv__img picture {
  height: 100%;
}

.p-mv__list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  position: absolute;
top: 50%;
    right: 350px;
    font-size: 14px;
    transform: translate(0, -50%);
    font-family: var(--font_family--en);
}
@media screen and (max-width: 960px) {
  .p-mv__list {
    top: 43%;
    right: 20px;
    font-size: 12px;
    gap: 2px;
  }
}
.p-mv__img img,
.p-mv__img video {
  position: absolute;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.p-mv__scroll {
  position: absolute;
  bottom: 91px;
  right: 40px;
  z-index: 1;
  padding: 0;
  overflow: hidden;
  height: 26px;
  cursor: pointer;
}
.p-mv__scroll.is-hidden {
  opacity: 0;
}

@media screen and (max-width: 960px) {
  .p-mv__scroll {
    bottom: 32px;
    right: 20px;
  }
}
.p-mv__scroll i {
    animation: scrollFadeMove 2s ease-in-out infinite;
}
@keyframes scrollFadeMove {
  0% {
    opacity: 0;
    transform: translateY(-6px);
  }
  50% {
    opacity: 1;
    transform: translateY(0px);
  }
  100% {
    opacity: 0;
    transform: translateY(6px);
  }
}
.p-mv__scrollLink {
  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: 16px;
  padding: 0;
}

.p-mv__scrollLink {
      display: flex;
      align-items: center;
      height: 15px;
      /*overflow: hidden;*/
}

.p-mv__scrollLink span {
  font-size: 16px;
  line-height: 1;
}
@media screen and (max-width: 960px) {
  .p-mv__scrollLink span {
    font-size: 14px;
  }
}

.p-mv__scrollLink i {
  max-width: 9px;
  width: 9px;
}

.p-mv__scrollLink i img {
  width: 100%;
}
@media screen and (max-width: 960px) {
  .p-mv__scrollLink i {
    display: block;
    max-width: 10px;
    margin-bottom: 4px;
  }
}
.p-mv__ttl {
  position: absolute;
  bottom: 70px;
  left: 50px;
  transform: translate(0, 0);
  z-index: 1;
}

@media screen and (max-width: 960px) {
  .p-mv__ttl {
    bottom: 120px;
    left: 20px;
  }
}
.p-mv__ttl h1 {
  font-size: min(7vw, 112px);
  line-height: 1.1;
  /*font-family: var(--font_family--en);*/
  font-family: "Tai Heritage Pro", serif;
}
@media screen and (max-width: 960px) {
  .p-mv__ttl h1 {
    font-size: 11.5vw;
    line-height: 1.1;
  }
}
.p-mv__ttl h1 .char {
  display: inline-block;
}
.p-mv__ttl p {
  margin-top: 26px;
  font-size: min(2.4vw, 18px);
  font-weight: 500;
}

@media screen and (max-width: 960px) {
  .p-mv__ttl p {
    margin-top: 18px;
    font-size: 12px;
  }
}
.p-mv__desc {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  margin-top: -40px;
  padding: 80px 40px;
  text-align: center;
  line-height: 2.2;
  z-index: 1;
  opacity: 0;
}
@media screen and (max-width: 960px) {
  .p-mv__desc {
    margin-top: -50px;
    padding: 40px 32px;
    text-align: left;
  }
}
.p-mv__desc.is-active {
  opacity: 1;
}
.p-mv__desc h4 {
  margin-bottom: 32px;
  font-size: 24px;
  text-align: center;
}
@media screen and (max-width: 960px) {
  .p-mv__desc h4 {
  margin-bottom: 20px;
  font-size: 20px;
  text-align: left;
  }
}
.p-mv__desc p {
  font-size: 16px;
}
@media screen and (max-width: 960px) {
  .p-mv__desc p {
  font-size: 14px;
    text-align: left;
  }
}
.p-mv__desc h4 .char,
.p-mv__desc p .char {
  display: inline-block;
}
.p-feature {
  /*padding-top: 108px;*/
}
@media screen and (max-width: 960px) {
  .p-feature {
    padding-top: 0px;
  }
}
.p-feature__list.is-2column {
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  border-top: 1px solid var(--color_border);
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column {
    padding-top: 36px;
    margin-top: 12px;
    gap: 0;
  }
}
.p-feature__list.is-2column .p-feature__img {
 aspect-ratio: 1 / 1;
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column .p-feature__img {
   aspect-ratio: 1 / 1;
  }
}
.p-feature__list.is-2column .p-feature__img a {
  height: 100%;
}
.p-feature__item {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 80px 0;
  border-top: 1px solid var(--color_border);
}
@media screen and (max-width: 960px) {
  .p-feature__item {
    padding: 36px 0;
    border-top: 0;
    border-bottom: 1px solid var(--color_border);
  }
}
@media screen and (max-width: 960px) {
  .p-feature__item:first-child {
    padding: 0 0 36px;
  }
}
@media screen and (max-width: 960px) {
  .p-feature__item:last-child {
    padding: 36px 0 20px;
    border-bottom: 0;
  }
}
.p-feature__list.is-2column .p-feature__item {
  display: block;
  width: calc((100% - 32px) / 2);
  border-top: 0;
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column .p-feature__item {
    width: 100%;
  }
}
.p-feature__txt {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
  width: 100%;
  margin-top: 70px;
}
@media screen and (max-width: 960px) {
  .p-feature__txt {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 4px;
    margin-top: 28px;
  }
}
.p-feature__list.is-2column .p-feature__txt {
  display: block;
  margin-top: 40px;
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column .p-feature__txt {
    margin-top: 32px;

  }
}
.p-feature__list.is-2column .p-feature__corp {
  margin-top: 24px;
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column .p-feature__corp {
    margin-top: 10px;

  }
}
.p-feature__list.is-2column .p-feature__tag {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 0 12px;
  margin-left: 0;
  margin-top: 24px;
}
@media screen and (max-width: 960px) {
  .p-feature__list.is-2column .p-feature__tag {
   margin-top: 8px;
  }
}
.p-feature__ttl {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 20px;
  width: 42%;
  font-family: var(--font_family--en);
}
@media screen and (max-width: 960px) {
  .p-feature__ttl {
    gap: 8px;
    width: 100%;
  }
}
.p-feature__list.is-2column .p-feature__ttl {
  width: 100%;
}
.p-feature__site {
  display: block;
  font-size: 48px;
  line-height: 1.2;
}
@media screen and (max-width: 960px) {
  .p-feature__site {
    font-size: 20px;
  }
}
.p-feature__corp {
  display: block;
  margin-top: 24px;
  font-size: 14px;
  color: var(--color_note);
}

@media screen and (max-width: 960px) {
  .p-feature__corp {
    display: block;
    margin-top: 10px;
    font-size: 12px;
  }
}
.p-feature__art {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  gap: 40px;
  width: 58%;
  padding: 0;
}

@media screen and (max-width: 960px) {
  .p-feature__art {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    gap: 20px;
    width: 100%;
    padding: 0;
  }
}
@media screen and (max-width: 960px) {
  .p-feature__info {
    display: none;
  }
}
.p-feature__desc {
  font-size: 14px;
  line-height: 2.2;
}

@media screen and (max-width: 960px) {
  .p-feature__desc {
    font-size: 13px;
  }
}
.p-feature__btnWrap {
  display: flex;
  align-items: center;
  gap: 20px;
}
.p-feature__btn {
  display: inline-block;
  margin-top: 40px;
  font-size: 14px;
  font-family: var(--font_family--en);
  letter-spacing: 0.05em;
}
@media screen and (max-width: 960px) {
  .p-feature__btn {
   font-size: 13px;
  }
}
.p-feature__img {
  position: relative;
  margin: 0;
  clip-path: inset(0px 0px 0px 0px);
  transition: clip-path 0.3s ease;
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 217 / 92;
}
@media screen and (max-width: 960px) {
  .p-feature__img {
   aspect-ratio: 1 / 1;
  }
}
.p-feature__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-feature__img a {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 120%; /* 高さを多めにして視差を感じやすくする */
  overflow: hidden;
  vertical-align: middle;
}
@media screen and (max-width: 960px) {
  .p-feature__img a {
    height: 100%; /* 高さを多めにして視差を感じやすくする */
  }
}
.p-feature__img a span {
  display: block;
  height: 100%;
}
.p-feature__img a span picture {
  display: block;
  height: 100%;
}
.p-feature__tag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  gap: 4px;
  margin-top: 3px;
  margin-left: 40px;
  font-size: 10px;
  color: var(--color_note);
  font-family: var(--font_family--en);
  letter-spacing: 0.04em;
}
@media screen and (max-width: 960px) {
  .p-feature__tag {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    margin-left: 0;
    gap: 8px;
    font-size: 10px;
  }
}
.p-projects {
  padding: 80px 0;
}

@media screen and (max-width: 960px) {
  .p-projects {
    padding: 60px 0 0;
  }
}
.p-projects__list {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  padding: 80px 0;
  gap: 80px 40px;
  border-top: 1px solid var(--color_border);
}

@media screen and (max-width: 960px) {
  .p-projects__list {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    padding: 40px 0;
    gap: 40px;
  }
}
.p-projects__item {
  width: calc((100% - 80px) / 3);
}

@media screen and (max-width: 960px) {
  .p-projects__item {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
    gap: 20px;
    width: 100%;
  }
}
.p-projects__img {
  clip-path: inset(0px 0px 0px 0px);
  transition: clip-path 0.3s ease;
}
.p-projects__img span {
  display: block;
}
@media screen and (max-width: 960px) {
  .p-projects__img {
    width: 50%;
  }
}
.p-projects__img img {
  width: 100%;
}
.p-projects__txt {
  margin-top: 40px;
}

@media screen and (max-width: 960px) {
  .p-projects__txt {
    width: 50%;
    margin-top: 0;
  }
}
.p-projects__ttl {
  font-size: 18px;
  line-height: 1.4;
  font-family: var(--font_family--en);
}

@media screen and (max-width: 960px) {
  .p-projects__ttl {
    font-size: 14px;
  }
}
.p-projects__tag {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  margin-top: 12px;
  gap: 2px 12px;
  font-size: 10px;
  color: var(--color_note);
  font-family: var(--font_family--en);
  letter-spacing: 0.04em;
}

@media screen and (max-width: 960px) {
  .p-projects__tag {
    margin-top: 10px;
    gap: 0 8px;
    font-size: 10px;
  }
}
