@charset "utf-8";

/* ========================================================
   1. Variables (CSS変数定義)
   サイト全体の共通設定です。ここを変更すれば全体に反映されます。
   ======================================================== */
:root {
  /* --- Typography: Font Family (ft_) --- */
  --ft_base: "Zen Kaku Gothic New", "Yu Gothic Medium", "YuGothic", "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;

  /* 英語フォント */
  --ft_osw: "Oswald", sans-serif;

  /* --- Colors (cl_) --- */
  --cl_text: #1e1e1e;
  --cl_link: #000000;
  --cl_main: #0075be;

  --wd_pc: 1200px;
}

/* ========================================================
   2. Base Style (基本設定)
   ======================================================== */
html {
  font-size: 62.5%;
  /* 1rem = 10px */
}

body {
  font-family: var(--ft_base);
  font-size: 1.6rem;/* 16px */
  line-height: 1.8;
  color: var(--cl_text);
  text-align: justify;
  font-feature-settings: "palt";
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-size-adjust: 100%;
  width: 100%;
}

a {
  color: var(--cl_link);
  text-decoration: none;
  transition: opacity 0.3s ease;
}

a:hover {
  opacity: 0.7;
}


@media screen and (min-width:751px) and (max-width:1440px) {
  html {
    font-size: 0.69vw /* 1rem = 10px */
  }
}

/* ========================================================
   3. Layout (レイアウト共通)
   ======================================================== */

.l-inner {
  width: 90%;
  max-width: var(--wd_pc);
  margin: 0 auto;
}

/* ========================================================
   4. Utility (汎用クラス)
   ======================================================== */

/* --- Display Switching (PC/SP切り替え) --- */
@media screen and (min-width: 751px) {
  .u-pc-only {
    display: block;
  }

  .u-sp-only {
    display: none;
  }
}


/* --- Font Helpers (英語フォント指定) --- */
.u-font-en-oswald {
  font-family: var(--ft_osw);
}

/* --- Text Alignment --- */
.u-text-center {
  text-align: center;
}

.u-text-left {
  text-align: left;
}

.u-text-right {
  text-align: right;
}

.u-text-vertical-rl {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
}


/* --- Flex Helpers (横並び)  --- */
.u-flex {
  display: flex;
}

.u-flex-wrap {
  display: flex;
  flex-wrap: wrap;
}

.u-flex_col1 {
  width: calc(100%/1);
}

.u-flex_col2 {
  width: calc(100%/2);
}

.u-flex_col3 {
  width: calc(100%/3);
}

.u-flex_col3-2 {
  width: calc(100%/3 * 2);
}

.u-flex_col4 {
  width: calc(100%/4);
}

.u-over-center {
  width: 100vw;
  margin: 0 calc(50% - 50vw);
}

.u-over-left {
  width: 100vw;
  margin-left: calc(50% - 50vw);
}

.u-over-right {
  width: 100vw;
  margin-right: calc(50% - 50vw);
}

.u-noise-bg {
  background: url(../img/noise-black-bg.webp) repeat-y center top/100%;
  color: #fff;
  overflow: hidden;
}


/* ========================================================
   5. Component (コンポーネントの基底)
   ======================================================== */

.c-sec-ttl {
  position: relative;
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-align: center;
}

.c-sec-ttl:before {
  content: attr(data-title);
  display: block;
  font-size: 10rem;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
  text-transform: uppercase;
  font-family: var(--ft_osw);
  line-height: 1.2;
}

.c-sec-ttl .none {
  line-height: 0;
  opacity: 0;
}

.c-sec-ttl02 {
  font-size: 3rem;
  font-weight: 700;
  padding: 1rem;
  width: fit-content;
  margin-bottom: 4rem;
  position: relative;
}

.c-sec-ttl02 span {
  font-size: 1.8rem;
  background: #000;
  padding: 0.5rem 1rem;
  box-sizing: border-box;
  color: #fff;
  text-align: center;
  line-height: 1.2;
  display: inline-block;
  vertical-align: middle;
}

.c-sec-ttl02:after {
  content: '';
  display: block;
  width: 100vw;
  height: 1px;
  background: #000;
  position: absolute;
  right: 0;
  bottom: 0;
}

.c-catch-slide {
  position: relative;
  overflow: hidden;
}

.c-catch-slide h2 {
  position: absolute;
  color: #fff;
  bottom: 0;
  font-size: 8rem;
  font-weight: 700;
  z-index: 3;
  line-height: 1.2;
  width: 75%;
  margin: 0 auto;
  left: 0;
  right: 0;
}

.c-catch-slide_ft {
  position: absolute;
  bottom: 0;
  left: 0;
  z-index: 1;
}

.c-catch-slide_bg-text {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
}

.c-catch-slide_bg-text span {
  height: 44%;
  width: 100%;
  display: flex;
  margin: 1.5% 0;
}

.c-catch-slide_bg-text span img {
  display: block;
  height: 100%;
  width: auto;
  max-width: max-content;
  animation: loop 60s linear infinite;
  animation-fill-mode: both;
  margin: 0 5rem;
}

.c-catch-slide_bg-text span+span img {
  animation-direction: reverse;
}

@keyframes loop {
  0% {
    transform: translateX(0%);
  }

  100% {
    transform: translateX(-100%);
  }
}

.c-note-list {
  list-style-type: none;
  padding: 0;
}

.c-note-list li {
  padding-left: 1.2em;
  position: relative;
  margin-bottom: 0.3em;
}

.c-note-list li:before {
  content: attr(data-type);
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
  min-width: 1em;
}

/* ========================================================
   6. Media Queries (SP対応)
   max-width: 750px
   ======================================================== */
@media screen and (max-width: 750px) {
  html {
    font-size: 1.333vw;
  }

  body {
    font-size: 1.6rem;
    line-height: 1.6;
  }

  .u-pc-only {
    display: none;
  }

  .u-sp-only {
    display: block
  }

  .u-flex_col2,
  .u-flex_col3,
  .u-flex_col4 {
    width: calc(100%/1);
  }


  .c-sec-ttl {
    font-size: 2.8rem;
  }

  .c-sec-ttl:before {
    font-size: 11rem;
  }

  .c-sec-ttl02 {
    font-size: 3.4rem;
  }

  .c-catch-slide h2 {
    width: 100%;
    font-size: 8.4rem;
  }

  .c-catch-slide_bg-text span {
    height: 35%;
    margin: 5% 0;
  }
}





.l-header {
  top: 0;
  z-index: 999;
  position: fixed;
  padding: 1.4rem 5.6rem;
  width: 100%;
  transition: 0.3s opacity;
}

body.is-nav-open header.l-header {
  opacity: 0;
  pointer-events: none;
}

.c-btn-menu.js-trigger {
  position: fixed;
  top: 2rem;
  right: 5.6rem;
  width: 4rem;
  height: 3rem;
  z-index: 9999;
  background: none;
  border: none;
  cursor: pointer;
  mix-blend-mode: difference;
  color: #fff;
}

button.c-btn-menu.js-trigger.is-active span {
  width: 100%;
  top: 50%;
  transform: rotate(35deg);
}

button.c-btn-menu.js-trigger.is-active .c-btn-menu__line:nth-child(2) {
  transform: translateX(-100%);
  opacity: 0;
}

button.c-btn-menu.js-trigger.is-active .c-btn-menu__line:nth-child(3) {
  transform: rotate(-35deg);
}

.c-btn-menu__line {
  position: absolute;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: currentColor;
  transition: all 0.3s ease;
  border-radius: 2px;
}

.c-btn-menu__line:nth-child(1) {
  top: 0;
}

.c-btn-menu__line:nth-child(2) {
  top: 50%;
  transform: translateY(-50%);
  width: calc(100%/3*2.3);
}

.c-btn-menu__line:nth-child(3) {
  bottom: 0;
  width: calc(100% / 2);
}


.p-gnav {
  position: fixed;
  top: 0;
  right: 0;
  width: 80%;
  transform: scale(0, 1);
  transform-origin: right top;
  z-index: 1000;
  visibility: hidden;
  pointer-events: none;
  transition: transform 0.4s ease, visibility 0.4s ease, border-radius 0.4s ease;
  border-radius: 0;
  filter: drop-shadow(-1rem 1rem 0.5rem rgba(0, 0, 0, 0.2));
}

body.is-nav-open .p-gnav {
  visibility: visible;
  pointer-events: auto;
  transform: scale(1, 1);
  border-radius: 0 0 0 22rem;
}

.p-gnav__inner {
  width: 100%;
  height: 100%;
  padding: 8rem 8rem 12rem;
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transition: opacity 0.4s ease;
}

body.is-nav-open .p-gnav__inner {
  opacity: 1;
}

.p-gnav__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 6rem;
}

.p-gnav__logo img {
  width: 15.7rem;
}

.p-gnav__body {
  flex-grow: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 87rem;
  margin: 0 auto;
}

.p-gnav__links {
  width: 50%;
  padding-right: 4rem;
}

.p-gnav__list li {
  margin-bottom: 1.9rem;
}

.p-gnav__list a {
  font-size: 2.6rem;
  font-weight: 500;
  color: #fff;
  transition: color 0.3s;
}

.p-gnav__list a:hover {
  color: var(--cl_main);
  opacity: 1;
}

.p-gnav__sns .u-sns__btn+.u-sns__btn {
  margin-top: 3rem;
}



/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .l-header {
    padding: 3rem 4rem;
  }

  .p-gnav__inner {
    padding: 4rem 6rem;
  }

  .p-gnav__logo img {
    width: 22rem;
  }

  .p-gnav__list li {
    margin-bottom: 2.5rem;
  }

  .p-gnav__list a {
    font-size: 3.4rem;
  }

  .l-header .logo {
    width: 18.6rem;
  }

  body.is-nav-open .p-gnav {
    width: 95%;
    border-radius: 0 0 0 20rem;
  }

  .c-btn-menu.js-trigger {
    top: 4.7rem;
    right: 4rem;
    width: 6.4rem;
    height: 4rem;
  }

  .p-gnav__body {
    flex-direction: column;
    justify-content: flex-start;
    padding-top: 2rem;
    overflow-y: auto;
  }

  .p-gnav__links,
  .p-gnav__sns {
    width: 90%;
  }

  .p-gnav__links {
    padding-right: 0;
    margin-bottom: 4rem;
  }

  .p-gnav__sns {
    padding-left: 0;
    padding-bottom: 8rem;
  }

  .p-gnav__sns-btn {
    height: 7rem;
    font-size: 2rem;
  }
}



.p-full-scroll {
  width: 100%;
  position: relative;
}

.p-full-scroll__section {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  width: 100%;
  height: 300vh;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  box-shadow: 0 -1rem 3rem rgba(0, 0, 0, 0.5);
  z-index: 10;
  flex-wrap: wrap;
}

.p-full-scroll__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: var(--pc-img) no-repeat center center/cover;
  z-index: -1;
  filter: brightness(0.7);
  transition: filter 0.1s linear;
  will-change: filter;
}

.p-full-scroll__content {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #fff;
  height: 100vh;
  width: calc(100% - 28.6rem);
  justify-content: center;
  align-items: center;
  min-height: 64rem;
  padding: 10rem 0 15rem;
}

.p-fv__slide-title {
  font-size: 3.75em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  gap: 2.7rem;
  max-width: 50em;
  width: 100%;
  justify-content: center;
}

.p-fv__slide-title span,
.p-fv__slide-text span {
  display: inline-block;
  overflow: hidden;
  height: 1em;
  width: 100%;
}

.p-fv__slide-title span.u-sp-only,
.p-fv__slide-text span.u-sp-only {
  display: none;
}

.p-fv__slide-title.u-text-vertical-rl span {
  width: 1em;
  height: auto;
}

.p-fv__slide-title span img {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  transform: translate3d(0, 105%, 0);
  transition: transform 1.2s cubic-bezier(0.165, 0.84, 0.44, 1);
  will-change: transform;
  margin: 0 auto;
}

.p-fv__slide-text span img {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  opacity: 0;
  transition: opacity 1s cubic-bezier(0.165, 0.84, 0.44, 1);
  will-change: opacity;
  margin: 0 auto;
}

.p-fv__slide-title.u-text-vertical-rl span img {
  transform: translate3d(105%, 0, 0);
  height: auto;
}

.p-fv__slide-text.u-text-vertical-rl span img {
  height: auto;
}

.p-full-scroll__section.is-text-active .p-fv__slide-title span img {
  transform: translate3d(0, 0, 0);
}

.p-full-scroll__section.is-text-active .p-fv__slide-text span img {
  opacity: 1;
}

.p-fv__slide-title span:nth-child(2) img {
  transition-delay: 0.3s;
}

.p-fv__slide-title span:nth-child(3) img {
  transition-delay: 0.6s;
}

/* .p-fv__slide-text span:nth-child(1) img {
  transition-delay: 1.5s;
}
.p-fv__slide-text span:nth-child(2) img {
  transition-delay: 1.8s;
}
.p-fv__slide-text span:nth-child(3) img {
  transition-delay: 2.1s;
}
.p-fv__slide-text span:nth-child(4) img {
  transition-delay: 2.4s;
} */
.p-fv__slide-text span img {
  transition-delay: 1.1s;
}



.p-fv__slide-text {
  font-size: 1.75em;
  line-height: 2;
  font-weight: 500;
  gap: 0.6em;
}

.p-fv__slide-text span {
  width: 1em;
  height: fit-content;
}

.p-fv__slide-text span img {
  width: 100%;
  display: block;
  text-align: center;
  line-height: 1.4;
  font-size: 2.2rem;
}


.p-fv__slide-scroll-down {
  width: 100%;
  position: absolute;
  pointer-events: none;
  z-index: 2;
  bottom: 0;
  left: 0;
  right: 0;
}

.p-fv__slide-scroll-down a {
  display: inline-block;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 2;
  width: 2.4rem;
  padding: 0 0 16rem;
  color: #fff;
  font-size: 2.4rem;
  line-height: 1;
  font-family: var(--ft_osw);
  letter-spacing: .2em;
  text-transform: uppercase;
  text-decoration: none;
  writing-mode: vertical-lr;
  transition: 0.3s;
  overflow: hidden;
  margin: auto;
  pointer-events: all;
}

.p-fv__slide-scroll-down a:before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 2px;
  height: 15rem;
  background: #fff;
}

.p-fv__slide-scroll-down a:after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  width: 2px;
  height: 15rem;
  background: var(--cl_main);
  animation: sdl01 2s linear(0 0%, 0 1.8%, 0.01 3.6%, 0.03 6.35%, 0.07 9.1%, 0.13 11.4%, 0.19 13.4%, 0.27 15%, 0.34 16.1%, 0.54 18.35%, 0.66 20.6%, 0.72 22.4%, 0.77 24.6%, 0.81 27.3%, 0.85 30.4%, 0.88 35.1%, 0.92 40.6%, 0.94 47.2%, 0.96 55%, 0.98 64%, 0.99 74.4%, 1 86.4%, 1 100%) infinite;
}

.p-fv__slide-scroll-down a:hover {
  color: var(--cl_main);
}

@keyframes sdl01 {
  0% {
    transform: scale(1, 0);
    transform-origin: 0 0;
  }

  50% {
    transform: scale(1, 1);
    transform-origin: 0 0;
  }

  50.1% {
    transform: scale(1, 1);
    transform-origin: 0 100%;
  }

  100% {
    transform: scale(1, 0);
    transform-origin: 0 100%;
  }
}



.p-fv__slide#section1 .p-fv__slide-title {
    gap: 0.93em;
    height: 4.8em;
    width: 29rem;

}

.p-fv__slide#section4 {
  padding-top: 9rem;
  height: 500vh;
}

.p-fv__slide#section4 .p-full-scroll__content {
  justify-content: end;
  padding-bottom: 0;
  align-content: center;
  padding-top: 0;
}

.p-fv__slide#section4 .p-full-scroll__content>.u-flex-wrap {
  width: 100%;
  justify-content: end;
  align-items: flex-start;
  height: 27em;
}

.p-fv__slide#section4 .p-fv__slide-title {
    order: 2;
    margin-left: 1em;
    justify-content: space-between;
    width: 23.8rem;

}



.p-fv-skill {
  width: 100%;
  margin-top: -3em;
}

.p-fv-skill__container {
  position: relative;
  width: 35em;
  height: 33em;
  margin: 0 -1rem 0 auto;
}

.p-fv-skill__item {
  position: absolute;
  width: 15.625em;
  height: 15.625em;
  display: flex;
  justify-content: center;
  align-items: center;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item {
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-direction: alternate;
}

.p-fv-skill__svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.p-fv-skill__svg circle {
  fill: transparent;
  stroke: #fff;
  stroke-width: 1px;
  shape-rendering: auto;
  stroke-dasharray: 1000;
  stroke-dashoffset: 1000;

}

.p-full-scroll__section.is-text-active .p-fv-skill__svg circle {
  animation: anim-line-draw 3s ease-in-out forwards;
  animation-delay: 1s;
}

.p-fv-skill__content {
  position: relative;
  z-index: 2;
  opacity: 0;
}

.p-full-scroll__section.is-text-active .p-fv-skill__content {
  animation: anim-fade-in 1s ease forwards;
  animation-delay: 1.2s;
}

.p-fv-skill__text {
  color: #fff;
  font-size: 1.125em;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}


/* 1. Top */
.p-fv-skill__item--top {
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  animation-name: anim-float-y;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--top {
  animation-duration: 2s;
}

/* 2. Left */
.p-fv-skill__item--left {
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  z-index: 1;
  animation-name: anim-float-x;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--left {
  animation-duration: 5s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--left circle {
  animation-delay: 1.2s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--left .p-fv-skill__content {
  animation-delay: 1.4s;
}

/* 3. Right */
.p-fv-skill__item--right {
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  z-index: 1;
  animation-name: anim-float-x-reverse;
  animation-duration: 5.5s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--right {
  animation-duration: 6.5s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--right circle {
  animation-delay: 1.4s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--right .p-fv-skill__content {
  animation-delay: 1.6s;
}

/* 4. Bottom */
.p-fv-skill__item--bottom {
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  animation-name: anim-float-y-reverse;
  animation-duration: 6s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--bottom {
  animation-duration: 6s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--bottom circle {
  animation-delay: 1.6s;
}

.p-full-scroll__section.is-text-active .p-fv-skill__item--bottom .p-fv-skill__content {
  animation-delay: 1.8s;
}



/* 1. 線が描かれる動き */
@keyframes anim-line-draw {
  to {
    stroke-dashoffset: 0;
  }
}

/* 2. テキストのフェードイン */
@keyframes anim-fade-in {
  to {
    opacity: 1;
  }
}

/* 3. ふわふわ浮遊（位置のみ移動、円の歪みなし） */
@keyframes anim-float-y {
  0% {
    transform: translate3d(-50%, 0, 0);
  }

  100% {
    transform: translate3d(-50%, -1.5rem, 0);
  }
}

@keyframes anim-float-y-reverse {
  0% {
    transform: translate3d(-50%, 0, 0);
  }

  100% {
    transform: translate3d(-50%, 1.5rem, 0);
  }
}

@keyframes anim-float-x {
  0% {
    transform: translate3d(0, -50%, 0);
  }

  100% {
    transform: translate3d(-1.5rem, -50%, 0);
  }
}

@keyframes anim-float-x-reverse {
  0% {
    transform: translate3d(0, -50%, 0);
  }

  100% {
    transform: translate3d(1.5rem, -50%, 0);
  }
}

/* ========================================================
     Responsive (PC対応: 横1440px以上)
     ======================================================== */
@media screen and (min-width: 1440px) {
  .p-full-scroll__section {
    font-size: 1.11vw;
    font-size: min(0.9vw, 18px);
  }
}
/* ========================================================
     Responsive (PC対応: 横750px以上 縦900px以上)
     ======================================================== */
@media (min-width: 750px) and (min-height: 900px) {
  .p-full-scroll__section {
    height: 200vh;
}
.p-fv__slide#section4 {
    height: 250vh;
}
}
/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .p-fv-skill__container {
    width: 100%;
    height: 43rem;
  }

  .p-fv-skill__item {
    width: 20rem;
    height: 20rem;
  }

  .p-fv-skill__text {
    font-size: 2.2rem;
  }

  .p-fv-skill__svg circle {
    animation-duration: 3s;
  }

  .p-fv-skill__item--top {
    left: 57%;
  }

  .p-fv-skill__item--right {
    top: 56%;
    right: -4%;
  }

  .p-full-scroll__bg {
    background-image: var(--sp-img);
  }

  .p-fv__slide#section4 .p-full-scroll__content>.u-flex-wrap {
    justify-content: start;
    width: 28.6rem;
    height: 100%;
    margin: 0 5rem;
    align-items: stretch;
    padding: 7rem 0 5rem;
  }

  .p-fv__slide#section4 .p-fv__slide-title {
    order: 1;
    width: 100%;
    height: 41rem;
    margin: 0;
  }

  .p-fv__slide#section4 .p-fv__slide-text {
    order: 2;
    width: 28.6rem;
    font-size: 3.2rem;
    margin: auto 0 0;
  }

  .p-fv__slide#section4 .p-fv__slide-text span {
    width: auto;
    height: 1em;
  }

  .p-fv__slide#section4 .p-fv__slide-text.u-text-vertical-rl span img {
    height: 100%;
  }

  .p-fv__slide#section4 .p-full-scroll__content {
    justify-content: start;
    align-content: stretch;
    height: calc(100vh - 9rem);
    min-height: calc(100svh - 9rem);
  }

  .p-fv__slide#section4 .p-fv-skill {
        margin-right: 0;
        position: absolute;
        width: 50%;
        right: 0;
        bottom: 6%;
    }

  .p-fv__slide#section4 .p-fv__slide-scroll-down {
    display: none;
  }


}



section#section5 {
  z-index: 10;
  transition: 1s padding;
  height: auto;
}

.p-company-wrap {
  width: 100%;
}

.p-project,
.p-company {
  min-height: 75vw;
  width: 120vw;
  margin: 0 calc(50% - 60vw);
  position: relative;
  z-index: 2;
}

.p-project {
  border-radius: 0 0 50% 50%;
  overflow: hidden;
}

.p-project__bg {
  position: relative;
  padding: 9vw 0;
  width: 100vw;
  justify-content: center;
  color: #fff;
  margin: 0 auto;
  transform: scale(0);
  transition: 2s transform cubic-bezier(0.65, 0.05, 0.36, 1);
  transition-delay: 0.25s;
  will-change: transform, opacity;
}

.p-full-scroll__section.is-active .p-project__bg,
.l-project .p-project__bg {
  transform: scale(1);
}

.p-project__bg:before {
  content: '';
  display: block;
  width: 100vw;
  height: 100%;
  position: absolute;
  background: url(../img/noise-black-bg-dec.webp) no-repeat center/auto 100%;
  top: 0;
  left: 50%;
  margin: 0 auto;
  z-index: -1;
  transform: translateX(-50%);
}

.p-project__bg:after {
  content: '';
  display: block;
  width: 150vw;
  height: 150vw;
  aspect-ratio: 1/1;
  position: absolute;
  border-radius: 50%;
  background: url(../img/noise-black-bg.webp) repeat-y center top / 100%;
  color: #fff;
  overflow: hidden;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -3;
}

.p-project .l-inner.u-flex-wrap {
  height: 75vw;
  min-height: 126rem;
  align-items: center;
  justify-content: center;
  width: 100vw;
  position: relative;
  text-align: center;
  max-width: 100%;
}

.p-project .p-noise-canvas {
  opacity: 1;
}

.p-project__content {
  position: relative;
  z-index: 2;
}

.p-project__title {
  margin-bottom: 20px;
  color: #fff;
  line-height: 1;
}

.p-project__text {
  color: #fff;
  font-size: 2.2rem;
  line-height: 2;
  margin: 2em auto;
  font-weight: 500;
}

.p-project__text .u-font-en-oswald {
  font-size: 2.8rem;
}

.p-project__img {
  position: absolute;
  z-index: 1;
  overflow: hidden;
  box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.5);
  transition: transform 0.5s ease;
  background: #EDEDED;
}

.p-project__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 01: 上中央 */
.p-project__img01 {
  width: 15.6em;
  aspect-ratio: 250/316;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

/* 02: 左 */
.p-project__img02 {
  width: 23.75em;
  aspect-ratio: 380/272;
  top: 23%;
  left: 0;
}

/* 03: 右 */
.p-project__img03 {
  width: 15.6em;
  aspect-ratio: 260/316;
  top: 20%;
  right: 6%;
}

/* 04: 左下  */
.p-project__img04 {
  width: 19.375em;
  aspect-ratio: 310/400;
  bottom: 4%;
  left: 18%;
}

/* 05: 右下*/
.p-project__img05 {
  width: 15.6em;
  aspect-ratio: 250/316;
  bottom: 8%;
  right: 18%;
}


.p-project__more {
  position: absolute;
  bottom: 6%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
}

.p-project__link {
  color: var(--cl_main);
  font-size: 3.2rem;
  letter-spacing: 0.1em;
  display: flex;
  align-items: center;
  gap: 1rem;
  transition: opacity 0.3s;
}

.p-project__link::after {
  content: "";
  display: block;
  width: 4rem;
  height: 0.75rem;
  background: url(../img/more-arrow.webp) no-repeat center/contain;
  position: relative;
  transition: width 0.3s;
}


/* ========================================================
   Responsive (SP対応: 750px以下)
   ======================================================== */
@media screen and (max-width: 750px) {
  section#section5 {
    height: auto;
  }

  .p-project {
    height: auto;
    min-height: auto;
    width: 200vw;
    margin: 0 calc(50% - 100vw);
  }

  .p-project__bg:before {
    width: 224vw;
    background-image: url(../img/noise-black-bg-dec_sp.webp);
  }

  .p-project__bg:after {
    width: 224vw;
    height: 224vw;
  }

  .p-project__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 2rem;
  }

  .p-project__bg {
    padding: 0;
    transition: 0.85s transform cubic-bezier(0.65, 0.05, 0.36, 1);
  }
  .p-project__content {
    width: 100%;
    margin-top: -15rem;
  }

  .p-project__text {
    font-size: 3.2rem;
    width: 82%;
    text-align: justify;
    margin-bottom: 0;
  }

  .p-project__img01 {
    width: 22.3rem;
    left: 52%;
  }

  .p-project__img02 {
    width: 30.6rem;
    left: -8%;
    top: 10%;
  }

  .p-project__img03 {
    width: 22.3rem;
    right: -4%;
    top: 9%;
  }

  .p-project__img04 {
    width: 22.3rem;
    bottom: 13%;
    left: 13%;
  }

  .p-project .l-inner.u-flex-wrap {
    height: 75vw;
    min-height: 150rem;
}
  .p-project__img05 {
    width: 30.6rem;
    aspect-ratio: 294/220;
    right: 0;
    bottom: 21%;
  }

  .p-project__link {
    font-size: 5rem;
    margin-right: -5rem;
  }
}


.p-noise-wrap {
  position: relative;
  background: linear-gradient(0deg, rgba(102, 102, 102, 1) 0%, rgba(232, 228, 221, 1) 70%), #fff;
  overflow: hidden;
  min-height: 100vh;
  height: auto;
  z-index: 1;
}

.p-project>.l-inner,
.p-company>.l-inner {
  font-size: 1em;
  z-index: 2;
  position: relative;
  width: 90vw;
  max-width: 100%;
}

.p-noise-canvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  pointer-events: none;
  mix-blend-mode: hard-light;
  opacity: 0.3;
}


/* ========================================================
   Responsive (SP対応: 750px以下)
   ======================================================== */
@media screen and (max-width: 750px) {
  .p-full-scroll__section {
    height: 200vh;
  }

  .p-fv__slide#section4 {
    height: 280vh;
  }

  .p-project>.l-inner,
  .p-company>.l-inner {
    width: 83vw;
  }

  .p-full-scroll__bg,
  .p-full-scroll__content {
    height: 100dvh;
    width: 100%;
  }

  .p-fv__slide-title {
    font-size: 5.7rem;
    max-width: 100%;
    gap: 4.5rem;
  }
.p-fv__slide#section1 .p-fv__slide-title {
    width: 33rem;
}
  .p-fv__slide-scroll-down a {
    font-size: 2.7rem;
  }

  .p-fv__slide-title span.u-sp-only,
  .p-fv__slide-text span.u-sp-only {
    display: block;
  }
}

.p-company {
  border-radius: 50vw 50vw 0 0;
  background: #fff;
  padding: 10em 0 10rem;
  box-sizing: border-box;
  margin-top: -5em;
  z-index: 1;
  height: 100%;
  min-height: auto;
  opacity: 0;
  transition: 1.5s opacity;
}

.p-full-scroll__section.is-active .p-company {
  opacity: 1;
}

.p-company .l-inner {
  max-width: var(--wd_pc) !important;
}

.p-company>.l-inner {
  transform: translateY(110%);
  opacity: 0;
  transition: 1s transform, 1.5s opacity;
  transition-delay: 0.5s;
}

.p-full-scroll__section.is-active .p-company>.l-inner {
  transform: translateY(0);
  opacity: 1;
}

.p-company__catch {
  font-size: 5.8rem;
  font-weight: 700;
  line-height: 1.3;
  margin-bottom: 8rem;
  letter-spacing: 0.05em;
  margin: 1.6em 0;
}

.p-company__message {
  justify-content: space-between;
  align-items: stretch;
  position: relative;
  font-weight: 700;
  gap: 14.8rem;
  width: 90%;
  margin-bottom: 22rem;
}

.p-company__message-content {
  width: calc(100% - (45rem + 14.8rem));
  position: relative;
  z-index: 1;
  mix-blend-mode: multiply;
}

.p-company__watermark {
  position: absolute;
  left: -1rem;
  font-family: serif;
  font-style: italic;
  font-size: 15rem;
  color: #f2f2f2;
  z-index: -1;
  pointer-events: none;
  line-height: 1;
  bottom: -0.1em;
  width: 140%;
}

.p-company__message-body {
  height: 100%;
  align-items: start;
}

.p-company__message-body p {
  font-size: 2rem;
  line-height: 1.8;
  width: 100%;
}

.p-company__sign {
  font-weight: 700;
  text-align: right;
  margin: auto 0 0 0;
}

.p-company__message-img {
  width: 45rem;
}

.p-company__message-img img {
  width: 100%;
  height: auto;
  display: block;
}


.p-company__award {
  padding: 5rem 6rem;
  width: auto;
  position: relative;
  margin-left: 15rem;
}

.p-company__award .l-inner {
  margin: 0 0;
  max-width: 880px !important;
  width: 88%;
}

.p-company__award:before {
  content: '';
  display: block;
  width: 100vw;
  height: 100%;
  background: #F7F6F3;
  position: absolute;
  z-index: -1;
  top: 0;
  left: 0;
}

.p-company__award-img {
  width: 35.4rem;
  left: -6em;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.p-company__award-img img {
  width: 100%;
  height: auto;
  display: block;
}

.p-company__award-content {
  display: flex;
  flex-direction: row-reverse;
  padding-left: 18rem;
  align-items: center;
}

.p-company__award-title {
  writing-mode: vertical-rl;
  font-size: 3.2rem;
  font-weight: 700;
  line-height: 1.6;
  flex-shrink: 0;
  transform: translateY(-14rem);
  margin: 0 1rem;
}

.p-company__award-title span {
  font-size: 3.88rem;
  display: block;
}

.p-company__award-text {
  font-size: 1.8rem;
  line-height: 2;
  font-weight: 700;
  margin: 0 6.8rem;
}


/* ========================================================
   Responsive (SP対応: 750px以下)
   ======================================================== */
@media screen and (max-width: 750px) {
  .p-company {
    padding: 11.2rem 0 0;
    border-radius: 40vw 40vw 0 0;
  }
.p-company>.l-inner {
    transform: translateY(0);
}
  .p-company__message-body p {
    font-size: 3.2rem;
  }

  .p-company__message-body .p-company__sign {
    font-size: 3.5rem;
  }

  .p-company__sign span {
    font-size: 2.8rem;
  }

  .p-company__catch {
    font-size: 4rem;
    margin-bottom: 5rem;
    line-height: 1.8;
  }

  .p-company__message {
    flex-direction: column;
    width: 100%;
    gap: 9.3rem;
  }

  .p-company__message-content {
    width: 100%;
  }

  .p-company__watermark {
    width: 110%;
    left: -9rem;
    bottom: -1.2em;
  }

  .p-company__message-img {
    width: 100%;
    top: 0;
  }

  .p-company__award {
    flex-direction: column;
    padding: 6rem;
    margin: 0 calc(50% - 50vw);
  }

  .p-company__award .l-inner {
    width: 100%;
    position: relative;
  }

  .p-company__award-img {
    width: 39.8rem;
    left: 0;
    transform: translateY(0);
    top: -17rem;
  }

  .p-company__award-content {
    width: 100%;
    flex-direction: column;
    padding: 0;
    align-items: end;
  }

  .p-company__award-title {
    transform: translateY(0);
    margin: -22.6rem 0 5rem;
  }

  .p-company__award-text {
    font-size: 2.8rem;
    margin: auto;
  }
}




.p-company-more {
  background: #4d4d4d;
  color: #fff;
  font-weight: 700;
}

.p-company-more__item {
  padding: 5rem 0;
  width: 75%;
}

.p-company-more__item-text {
  font-size: 2.2rem;
  margin: 1em auto;
}

.p-company-more__roles-img img {
    max-width: 123.8rem;
    margin: 5rem auto;
    display: block;
    width: 93%;
}

.p-company-more__data {
  border: 0.5px solid;
  box-sizing: border-box;
  margin: 5em auto;
}

.p-company-more__data li {
    border: 0.5px solid;
    box-sizing: border-box;

}

.p-company-more__data li.img {
  position: relative;
}

.p-company-more__data li.img:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  background: #353535;
  z-index: -1;
}

.p-scroll-slide {
  width: 100%;
  overflow: hidden;
}

.p-scroll-slide__row {
  width: 100%;
  will-change: transform;
}

.p-scroll-slide__row[data-direction="right"] .p-scroll-slide__track {
  transform: translateX(-20%);
}

.p-scroll-slide__row[data-direction="left"] .p-scroll-slide__track {
  transform: translateX(-5%);
}




.p-scroll-slide__track {
  display: flex;
  width: max-content;
}

.p-scroll-slide__list {
  display: flex;
  align-items: center;
}

.p-scroll-slide__item {
  width: 50rem;
  height: 34.8rem;
  overflow: hidden;
  transform: skewX(-17deg);
  background-color: #000;
  overflow: hidden;
}

.p-scroll-slide__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: skewX(15deg) scale(1.2);
  will-change: transform;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.p-scroll-slide__item--wide {
  width: 90rem;
}

.p-scroll-slide__item--wide-min {
  width: 69.6rem;
}

.p-scroll-slide__item--narrow {
  width: 20rem;
}


/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {

  .p-company-more__item {
    width: 90%;
  }

  .p-company-more__item-text {
    font-size: 2.8rem;
    width: 90%;
  }

  .p-company-more__data {
        border: 0;
    
    }

  .p-company-more__data li.u-flex_col3 {
        width: calc(100% / 2);
        border: 1px solid;
    
    }

  .p-company-more__data li.u-flex_col3-2 {
        width: 100%;
        border: 1px solid;
    
    }

  .p-company-more__data li.img {
    width: 100%;
    order: -1;
    border: 0;
  }

  .p-company-more__data li.img:before {
    display: none;
  }

  .p-scroll-slide__item {
    width: 57rem;
    height: 39rem;
  }

  .p-scroll-slide__item--wide {
    width: 100rem;
  }

  .p-scroll-slide__item--narrow {
    width: 75rem;
  }

  .js-scroll-move {
    display: flex;
    width: max-content;
    animation: sp-infinite-loop 100s linear infinite;
  }

  .js-scroll-move[data-direction="right"] {
    animation-direction: reverse;
  }

  @keyframes sp-infinite-loop {
    0% {
      transform: translateX(0);
    }

    100% {
      transform: translateX(-50%);
    }
  }
}


.p-sns {
  position: relative;
  width: 100%;
  padding: 15rem 0;
  color: #fff;
  overflow: hidden;
}

.p-sns__bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url(../img/top-sns_bg.webp) no-repeat center top/cover;
  z-index: -1;
  background-attachment: fixed;
}

.p-sns__bg::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.6);
}

.p-sns__slider {
  margin-top: 6rem;
  margin-bottom: 6rem;
}
.p-sns.slider-none .p-sns__slider {
    display: none!important;
}



.p-sns__item {
    position: relative;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background-color: #ccc;
    transition: opacity 0.3s;

}

.p-sns__item:after {
  content: '';
  display: block;
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  width: 2.4rem;
  height: 2.4rem;
  z-index: 2;
  background: url(../img/insta-logo.svg) no-repeat center/contain;
  pointer-events: none;
}

.p-sns__item:hover {
  opacity: 0.8;
}

.p-sns__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}




.p-sns__btn-area {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
}

.u-sns__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48.6rem;
  border: 1px solid;
  color: #fff;
  font-weight: 700;
  transition: all 0.3s ease;
  background: #1A1A1A;
  padding: 4rem 1rem;
  box-sizing: border-box;
  gap: 1.5rem;
  font-size: 3.2rem;
  line-height: 1.2;
}

.u-sns__btn:hover {
  background-color: #fff;
  color: #000;
}

.u-sns__btn-icon {
  width: auto;
  height: 4rem;
  transition: all 0.3s ease;
}

.u-sns__btn:hover span.u-sns__btn-icon {
  filter: brightness(0);
}

.u-sns__btn-icon img {
  height: 100%;
  width: auto;
  vertical-align: baseline;
}

.u-sns__btn-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}


/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .p-sns {
    padding: 15rem 0;
  }
    .p-sns__item {
        width: 70%;
    
    }
  .p-sns__bg {
        background: url(../img/top-sns_bg_sp.webp) no-repeat center top/contain;
    }
  .p-sns.slider-none .p-sns__bg {
      background-size: cover;
  }
  .p-sns__title {
    font-size: 5rem;
    margin-bottom: 4rem;
  }

  .p-sns__btn-area {
    flex-direction: column;
    align-items: center;
    gap: 5rem;
  }

  .p-sns__item:after {
    width: 7.4rem;
    height: 7.4rem;
    bottom: 5rem;
    right: 5rem;
  }

  .p-sns__btn {
    width: 100%;
    max-width: 30rem;
  }

  .u-sns__btn {
    font-size: 4rem;
    max-width: 60rem;
    width: 100%;
    padding: 4.5rem 1rem;
  }

  .u-sns__btn-icon {
    height: 5.2rem;
  }
}



.l-footer {
  width: 100%;
  color: #fff;
  padding: 8rem 0 3rem;
  background: #4d4d4d;
  min-height: auto;
}

.l-footer .p-noise-canvas {
  opacity: 0.7;
}

.l-footer__head {
  text-align: center;
  margin: 8rem auto 10rem;
}

.l-footer__body {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10rem;
  gap: 5%;
}

.l-footer__img {
  width: 40%;
  aspect-ratio: 4/3;
  max-height: 53rem;
}

.l-footer__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.l-footer__data {
  width: 55%;
  font-size: 2rem;
  line-height: 2;
  font-weight: 700;
}

.l-footer__row {
  display: flex;
  margin-bottom: 1.5rem;
}

.l-footer__row dt {
  width: 7em;
  margin-right: 2em;


  text-align: justify;
  text-align-last: justify;
}

.l-footer__row dd {
  flex: 1;
}


.l-footer__sns {
  display: flex;
  justify-content: center;
  gap: 5rem;
  margin-bottom: 10rem;
}

.l-footer__sns-link {
  color: #fff;
  width: 3rem;
  height: 3rem;
  transition: transform 0.3s;
}

.l-footer__sns-link img {
  height: 100%;
  width: auto;
}

.l-footer__sns-link:hover {
  transform: scale(1.2);
  opacity: 1;
}

.l-footer__sns-link svg {
  width: 100%;
  height: 100%;
  display: block;
}

.l-footer__copy {
  text-align: center;
  font-size: 1.4rem;
  letter-spacing: 0.15em;
  width: 100%;
}


/* ========================================================
     下層ページ footer
     ======================================================== */
.l-sub-page .l-footer {
  padding: 10rem 0;
}

.l-sub-page .l-footer>.l-inner {
  gap: 2rem 10rem;
  justify-content: space-between;
}

.l-sub-page .l-footer__company-name {
  font-size: 2.4rem;
  margin-bottom: 1.8rem;
}

.l-sub-page .l-footer__add .u-flex-wrap {
  width: 100%;
  gap: 1.8rem;
}

.l-sub-page .l-footer__text {
  font-weight: 500;
}

.l-sub-page .l-footer__add dt {
  width: 10rem;
  text-align-last: justify;
}

.l-sub-page .l-footer__add dd {
  width: calc(100% - 11.8rem);
  display: flex;
  gap: 1.8rem;
  justify-content: space-between;
}

.l-sub-page .l-footer__add dd a {
  color: #fff;
}

.l-sub-page .l-footer__sns {
  margin: auto 0 0;
}

.l-sub-page .l-footer__copy {
  text-align: right;
  letter-spacing: 0.1rem;
}

/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .l-footer {
    padding: 6rem 0 3rem;
  }

  .l-footer__head {
    margin-bottom: 4rem;
  }

  .l-footer__body {
    flex-direction: column;
    gap: 4rem;
    margin: 0 auto 6rem;
    width: 100%;
  }

  .l-footer__img {
    width: 100%;
    order: 2;
  }

  .l-footer__data {
    width: 100%;
    font-size: 2.8rem;
  }

  .l-footer__row dt {
    width: auto;
    min-width: 6em;
    margin-right: 1em;
    font-size: 2.5rem;
  }

  .l-footer__sns {
    gap: 10rem;
    margin: 10rem auto;
  }

  .l-footer__sns-link {
    width: 7rem;
    height: 7rem;
  }

  .l-footer__copy {
    font-size: 2rem;
  }


  /* ========================================================
     下層ページ footer
     ======================================================== */
  .l-sub-page .l-footer {
    padding: 10rem 0 5rem;
  }

  .l-sub-page .l-footer__logo {
    width: 33.5rem;
    margin: 0 auto;
  }

  .l-sub-page .l-footer>.l-inner {
    gap: 5.5rem 0;
    justify-content: center;
  }

  .l-sub-page .l-footer__company-name {
    font-size: 3.4rem;
    text-align: center;
    margin-bottom: 5rem;
  }

  .l-footer__add {
    font-size: 2.4rem;
  }

  .l-sub-page .l-footer__add .u-flex-wrap {
    gap: 4.5rem;
  }

  .l-sub-page .l-footer__add dt {
    width: 15rem;
  }

  .l-sub-page .l-footer__add dd {
    display: block;
    width: calc(100% - 19.5rem);
  }

  .l-sub-page .l-footer__copy {
    text-align: center;
  }


}


.p-formwork {
    padding: 8rem 0 10rem;
}
.p-formwork .c-sec-ttl__border {
    font-size: 3.8rem;
    width: fit-content;
    margin: 0 auto 4rem;
    padding-bottom: 0.5rem;
    border-bottom: 0.3rem solid;
}
.p-formwork__text {
    font-size: 2.8rem;
    font-weight: 700;
    margin: 6rem auto;
}
.p-formwork__text .text-pick {
  background: var(--cl_text);
  color: #fff;
  line-height: 1.6;
  display: inline-block;
  margin: 0 1rem;
}
.p-formwork__bfaf {
    justify-content: space-between;
    gap: 5rem;
    position: relative;
}
.p-formwork__bfaf:before {
    content: '';
    display: block;
    width: 5rem;
    height: 5.4rem;
    background: url(../img/work/work-formwork_arrow.webp) no-repeat center/contain;
    position: absolute;
    left: 0;
    right: 0;
    margin: 0 auto;
    top: 50%;
    transform: translateY(-50%);
}
.p-formwork__bfaf > div {
    width: calc((100% - 5rem)/2);
    background: #fff;
    box-sizing: border-box;
    padding: 7.5rem;
    filter: drop-shadow(0 0 4rem rgba(0,0,0,0.05));
}
.p-formwork__before {
    border-radius: 0 6rem 6rem 0;
}
.p-formwork__after {
    border-radius: 6rem 0 0 6rem;
}
.p-formwork__bfaf-inner {
    width: 46.4rem;
    align-items: self-end;
    justify-content: center;
    text-align: center;
    gap: 4rem;
}
.p-formwork__before .p-formwork__bfaf-inner {
    margin: 0 0 0 auto;
}
.p-formwork__after .p-formwork__bfaf-inner {
    margin: 0 auto 0  0;
}
.p-formwork__bfaf-text {
    font-size: 1.8rem;
    font-weight: 500;
}


.p-work {
  padding: 16rem 0 0;
  background: #fff;
}

.p-work .c-sec-ttl {
  margin: 4rem 0;
}

.p-work__content>* {
  width: 28%;
  max-height: 57rem;
}

.p-work__catch {
  font-size: 3.8rem;
  width: 100%;
  text-align: center;
  margin: 5rem auto 7rem;
  font-weight: 700;
}

.p-work__content>*:nth-child(3n) {
  width: 44%;
}

.p-work__content>* img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.p-work__text p {
  padding: 0 8.4rem 6.4rem;
  font-size: 1.8rem;
  text-align: justify;
  margin: 0 auto;
  max-width: 80rem;
}


/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .p-formwork .c-sec-ttl__border {
    font-size: 4.6rem;
}
.p-formwork__text {
    font-size: 3rem;
    line-height: 2;
}
.p-formwork__bfaf {
    gap: 16rem;
}
.p-formwork__bfaf:before {
    top: 46.5%;
    transform: rotate(90deg);
    width: 7.6rem;
    height: 7rem;
}
.p-formwork__bfaf > div {
    width: 90%;
    margin: 0 auto;
    border-radius: 0;
    padding: 8rem 5rem;
}
.p-formwork__bfaf-inner {
    width: 100%;
}
.p-formwork__bfaf-text {
    font-size: 2.8rem;
}
.p-formwork__before .p-formwork__before-img {
    margin-bottom: -14rem;
}
  
  .p-work__content>* {
    order: 2;
    max-height: max-content;
    width: 50%;
  }

  .p-work__catch,
  .p-work__content>*:nth-child(6) {
    order: 0;
  }

  .p-work__content>*:nth-child(3) {
    order: 1;
  }

  .p-work__catch {
    font-size: 4rem;
    width: 100%;
  }

  .p-work__content>*:nth-child(3n) {
    width: 100%;
  }

  .p-work__text p {
    padding: 7rem;
    font-size: 2.8rem;
  }
}

.p-3d-swiper {
  width: 80%;
  max-width: 200rem;
  padding: 5rem 0 10rem;
  box-sizing: border-box;
}

.p-3d-swiper .swiper-slide {
  width: 30%;
  min-height: 64.6rem;
  aspect-ratio: 500 / 646;
}

.p-3d-swiper .swiper-slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 1rem;
  background: #eded;
  filter: grayscale(1);
  opacity: 0;
  transition: 0.3s;
}

.p-3d-swiper .swiper-slide.swiper-slide-active img {
  filter: none;
  opacity: 1;
}

.p-3d-swiper .swiper-slide.swiper-slide-prev img,
.p-3d-swiper .swiper-slide.swiper-slide-next img {
  opacity: 1;
}

.p-3d-swiper .swiper-scrollbar {
  bottom: 0 !important;
  left: 10% !important;
  width: 80% !important;
  height: 4px !important;
  background: #dbdbdb;
  border-radius: 2px;
  opacity: 1 !important;
}

.p-3d-swiper .swiper-scrollbar-drag {
  background: var(--cl_main);
  border-radius: 2px;
  cursor: grab;
}

.p-3d-swiper .swiper-scrollbar-drag:active {
  cursor: grabbing;
}

.p-3d-swiper .swiper-pagination {
  bottom: 1rem !important;
}

.p-3d-swiper .swiper-pagination-bullet {
  width: 2.4rem;
  height: 0.4rem;
  border-radius: 2px;
  background: #fff;
  opacity: 1;
  margin: 0 0.4rem !important;
  transition: width 0.3s;
}

.p-3d-swiper .swiper-pagination-bullet-active {
  background: var(--cl_main);
}

.l-project .p-project-wrap {
  background: #fff;
}



.p-project-area {
  position: relative;
  margin-top: -31rem;
}

.p-project-area__map {
  width: 100vw;
  mix-blend-mode: multiply;
}

.p-project-area__text .c-sec-ttl02 {
  transform: translateY(-40vw);
}

.p-project-area__text {
  width: 62.5%;
  margin: 0 auto 5rem;
  max-width: 90rem;
}

.p-project-area__list {
  justify-content: space-between;
  gap: 4rem;
}

.p-project-area__list-item {
  align-items: flex-start;
  margin-bottom: 3rem;
  line-height: 1.8;
  font-size: 1.6rem;
}

.p-project-area__list .u-flex_col2 {
    width: calc((100% - 4rem)/ 2);
}

.p-project-area__list-item dt {
  width: 5em;
  flex-shrink: 0;
  margin-right: 2rem;
  text-align: justify;
  text-align-last: justify;
}

.p-project-area__list-item dd {
  margin: 0;
  flex-grow: 1;
}

.p-project-area__list-item dd ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.p-project-area__list-item dd ul li {
  margin-bottom: 0.4rem;
}

/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {
  .l-sub-page .p-project__content {
    margin-top: 0;
    padding: 12rem 0;
    box-sizing: border-box;
  }

  .p-3d-swiper {
    width: 100%;
    padding-bottom: 8rem;
  }

  .p-3d-swiper .swiper-slide {
    width: 78%;
    min-height: auto;
  }

  .l-project .p-project .l-inner.u-flex-wrap {
    height: auto;
  }

  .l-project .p-project__bg::before,
  .l-project .p-project__bg::after {
    width: 248vw;
  }

  .l-project .p-project__bg::after {
    height: 248vw;
  }

  .p-project-area {
    margin-top: -11rem;
  }

  .p-project-area__list-item {
    font-size: 2.6rem;
    margin-bottom: 2.5rem;
    justify-content: space-between;
    line-height: 1.5;
  }
  
  .p-project-area__list .u-flex_col2 {
      width: 100%;
  }
  
  .p-project-area__text .c-sec-ttl02 {
    transform: translateY(-55rem);
  }

  .p-project-area__text {
    width: 83%;
  }

}

.p-results {
  padding: 8rem 0;
  overflow: hidden;
}

.p-noise-wrap section>.p-results-wrap.l-inner {
  width: 80%;
}

.p-results__timeline {
  position: relative;
  flex-direction: column;
  gap: 6rem;
  margin-top: 10rem;
}

.p-results__timeline::before {
  content: "";
  position: absolute;
  top: 50%;
  height: 70%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0.4rem;
  background-color: #ccc;
  z-index: 0;
}

.p-results__item {
  align-items: center;
  justify-content: space-between;
  position: relative;
  z-index: 1;
  gap: 9.5rem;
  width: 80%;
  margin: 0 auto;
}


.p-results__marker {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  transition: background 0.4s ease;

  width: 4rem;
  height: 4rem;
  background: no-repeat center center / 1.2rem, rgb(168 207 233 / 40%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  mix-blend-mode: multiply;
}

.p-results__marker:before {
  content: '';
  display: block;
  width: 15%;
  height: 15%;
  background: var(--cl_main);
  border-radius: 50%;
  opacity: 1;
  transition: opacity 0.4s ease;
}

.p-results__marker.is-active::before {
  opacity: 0;
}

.p-results__marker.is-active {
  background: url(../img/pick-arrow.webp) no-repeat center center/1.2rem, var(--cl_main);
  transform: translate(-50%, -50%) scale(1.1);
}

.p-results__item:nth-of-type(even) .p-results__marker.is-active {
  transform: translate(-50%, -50%) scale(-1.1);
}

.p-results__item:nth-of-type(even) {
  flex-direction: row-reverse;
}

.p-results__year-col {
  width: 46%;
  background: #fff;
  box-shadow: 0 0.4rem 0.4rem rgba(0, 0, 0, 0.25);
  padding: 5rem 3.6rem 4rem;
  border-radius: 1rem;
  position: relative;
}

.p-results__item:nth-of-type(odd) .p-results__year-col .p-results__year {
  left: 3.6rem;
}

.p-results__item:nth-of-type(even) .p-results__year-col {
  justify-content: flex-start;
  text-align: left;
  padding-left: 4rem;
}

.p-results__year {
  font-size: 6.8rem;
  color: #D1D1D6;
  line-height: 1;
  position: absolute;
  top: -4.7rem;
  right: 3.6rem;
}

.p-results__year-col img {
  margin: 0 auto;
  display: block;
}

.p-results__img-col {
  width: 47vw;
  opacity: 0.9;
}

.p-results__img-col img {
  width: 64%;
  height: auto;
  display: block;
  margin: 0 auto;
  opacity: 0.7;
}

.p-results__item:nth-child(3) .p-results__img-col img {
  transform: translateX(8%);
}


/* ========================================================
     Responsive (SP対応: 750px以下)
     ======================================================== */
@media screen and (max-width: 750px) {

  .p-results__timeline {
    margin-top: 14rem;
  }

  .p-results__item,
  .p-results__item:nth-of-type(even) {
    display: block;
    width: 77%;
    margin: 0 0 0 auto;
  }

  .p-results__item+.p-results__item {
    margin-top: 4rem;
  }

  .p-results__year-col,
  .p-results__item:nth-of-type(even) .p-results__year-col {
    width: 93%;
    padding: 5rem 5.5rem 3rem;
    margin-right: 7%;
  }

  .p-noise-wrap section>.p-results-wrap.l-inner {
    width: 85%;
  }

  .p-results__year {
    left: 3.6rem;
  }

  .p-results__img-col {
    margin: 7rem 0 0;
  }

  .p-results__img-col img {
    width: 75%;
    margin: 0 0 0 auto;
  }

  .p-results__img-col {
    width: 100%;
  }

  .p-results__item:nth-child(3) .p-results__img-col img {
    transform: translateX(0%);
  }


  .p-results__timeline::before {
    left: 9rem;
    height: 100%;
  }

  .p-results__marker {
    left: -8.3rem;
    top: -4rem;
    transform: translateX(-50%);
    width: 8rem;
    height: 8rem;
  }

  .p-results__marker.is-active {
    transform: translateX(-50%) scale(1.1);
  }

  .p-results__marker.is-active,
  .p-results__item:nth-of-type(even) .p-results__marker.is-active {
    transform: translateX(-50%) scale(-1.1);
    background-size: 2.4rem;
  }

}