@charset "utf-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Outfit:wght@100..900&display=swap');

/* =========================================================
  top page base
  Scoped to .limbs-top so Twenty Twenty-One header/footer are untouched.
========================================================= */
.limbs-top,
.limbs-top *,
.limbs-top *::before,
.limbs-top *::after {
  box-sizing: border-box;
}

.limbs-top {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  overflow-x: clip;
  background: #fff;
  color: #000;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  word-wrap: break-word;
}

.limbs-top .text-en {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
}

.limbs-top h1,
.limbs-top h2,
.limbs-top h3,
.limbs-top p,
.limbs-top ul,
.limbs-top ol,
.limbs-top li,
.limbs-top figure {
  margin: 0;
  padding: 0;
}

.limbs-top ul,
.limbs-top ol {
  list-style: none;
}

.limbs-top a {
  color: inherit;
  text-decoration: none;
}

.limbs-top button {
  margin: 0;
  color: inherit;
  font: inherit;
}

.limbs-top section {
  position: relative;
  max-width: none;
  margin: 0;
}

.limbs-top img {
  max-width: 100%;
  height: auto;
  vertical-align: bottom;
}

.limbs-top .section-inner {
  position: relative;
  z-index: 1;
  width: min(calc(100% - min(2.7778vw, 40px)), 1120px);
  max-width: none;
  margin: 0 auto;
}

/* scroll animation
--------------------------------------------------- */
.blur-in {
  --blur-in-delay: 0s;
  --blur-in-duration: 0.8s;
  --blur-in-size: 10px;
  opacity: 0;
  filter: blur(var(--blur-in-size));
  transition:
    opacity var(--blur-in-duration) ease var(--blur-in-delay),
    filter var(--blur-in-duration) ease var(--blur-in-delay);
  will-change: opacity, filter;
}

.blur-in.is-animated {
  opacity: 1;
  filter: blur(0);
}

.blur-in-group {
  --blur-in-delay: 0s;
  --blur-in-duration: 0.8s;
  --blur-in-size: 10px;
}

.blur-in-group > * {
  opacity: 0;
  filter: blur(var(--blur-in-size));
  transition:
    opacity var(--blur-in-duration) ease,
    filter var(--blur-in-duration) ease;
  will-change: opacity, filter;
}

.blur-in-group.is-animated > * {
  opacity: 1;
  filter: blur(0);
}

.blur-in-group.is-animated > *:nth-child(1) { transition-delay: var(--blur-in-delay); }
.blur-in-group.is-animated > *:nth-child(2) { transition-delay: calc(var(--blur-in-delay) + 0.12s); }
.blur-in-group.is-animated > *:nth-child(3) { transition-delay: calc(var(--blur-in-delay) + 0.24s); }
.blur-in-group.is-animated > *:nth-child(4) { transition-delay: calc(var(--blur-in-delay) + 0.36s); }
.blur-in-group.is-animated > *:nth-child(5) { transition-delay: calc(var(--blur-in-delay) + 0.48s); }
.blur-in-group.is-animated > *:nth-child(6) { transition-delay: calc(var(--blur-in-delay) + 0.60s); }

.pc, .sp {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .blur-in,
  .blur-in-group > * {
    opacity: 1;
    filter: none;
    transition: none;
  }
}

@media screen and (min-width: 768px) {
  .pc {
    display: block !important;
  }
  .sp {
    display: none !important;
  }
}

@media screen and (max-width: 767px) {
  .pc {
    display: none !important;
  }
  .sp {
    display: block !important;
  }

  .section-inner {
    width: calc(100% - 16vw);
  }
}


/* =========================================================
  main visual
========================================================= */
.top-main {
  position: relative;
  overflow: hidden;
  background: #fff;
}

/* visual
--------------------------------------------------- */
.top-main__visual {
  position: relative;
  height: min(30.5556vw, 440px);
  overflow: hidden;
}

.top-main__background {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: auto;
  opacity: 0;
  animation: top-main-bg-fade-in 1.6s ease 0.1s forwards;
  pointer-events: none;
}

.top-main__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: min(36.1111vw, 520px) 1fr;
  gap: min(5.3472vw, 77px);
  width: min(76.3889vw, 1100px);
  margin-inline: auto;
  padding-top: min(13.6111vw, 196px);
}

/* text animation
--------------------------------------------------- */
.top-main__reveal {
  display: block;
  overflow: hidden;
}

.top-main__reveal > span {
  display: block;
  opacity: 0;
  transform: translateY(110%);
  animation: top-main-text-reveal 0.95s cubic-bezier(0.22, 1, 0.36, 1) forwards;
  font-weight: 700;
}

.top-main__en > span {
  animation-delay: 0.4s;
}

.top-main__title .top-main__reveal:nth-child(1) > span {
  animation-delay: 0.52s;
}

.top-main__title .top-main__reveal:nth-child(2) > span {
  animation-delay: 0.64s;
}

.top-main__lead .top-main__reveal:nth-child(1) > span {
  animation-delay: 0.82s;
}

.top-main__lead .top-main__reveal:nth-child(2) > span {
  animation-delay: 0.92s;
}

.top-main__text .top-main__reveal:nth-child(1) > span {
  animation-delay: 1.08s;
}

.top-main__text .top-main__reveal:nth-child(2) > span {
  animation-delay: 1.16s;
}

/* heading
--------------------------------------------------- */
.top-main__en {
  margin: 0;
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
  padding-left: min(0.5556vw, 8px) !important;
}

.top-main__title {
  margin-top: min(1.0417vw, 15px) !important;
  font-size: min(4.5139vw, 65px);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.13em;
}

.top-main__title span {
  font-weight: 700;
}

/* copy
--------------------------------------------------- */
.top-main__copy {
  padding-top: min(2.9861vw, 43px);
}

.top-main__lead {
  margin: 0;
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.08em;
}

.top-main__lead .top-main__reveal > span {
  display: inline-block;
  padding: min(0.0694vw, 1px) min(0.5556vw, 8px) min(0.1389vw, 2px);
  background: #202020;
  color: #fff;
}

.top-main__lead .top-main__reveal + .top-main__reveal {
  margin-top: min(0.2778vw, 4px);
}

.top-main__text {
  margin-top: min(1.25vw, 18px) !important;
}

.top-main__text .top-main__reveal > span {
  font-size: min(1.0417vw, 15px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

/* photo
--------------------------------------------------- */
.top-main__photo {
  position: relative;
  width: 100%;
  overflow: hidden;
  opacity: 0;
  animation: top-main-photo-fade-in 1.2s ease 0.75s forwards;
}

.top-main__photo-image {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
}

/* animation
--------------------------------------------------- */
@keyframes top-main-text-reveal {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes top-main-bg-fade-in {
  to {
    opacity: 1;
  }
}

@keyframes top-main-photo-fade-in {
  to {
    opacity: 1;
  }
}


@media (prefers-reduced-motion: reduce) {
  .top-main__background,
  .top-main__photo,
  .top-main__reveal > span {
    opacity: 1;
    transform: none;
    animation: none;
  }

}


/* =========================================================
  about
========================================================= */
.top-about {
  position: relative;
  padding: min(13.1944vw, 190px) 0 min(3.4722vw, 50px);
  overflow: hidden;
  background: #f8f8f8;
  background-image: url("../images/about-bg001.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto;
}

/* heading
--------------------------------------------------- */
.top-about__head {
  position: relative;
  z-index: 1;
}

.top-about__label {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.4;
}

.top-about__title {
  margin-top: min(0.3472vw, 5px) !important;
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

/* mission
--------------------------------------------------- */
.top-about__mission {
  display: grid;
  grid-template-columns: min(16.6667vw, 240px) 1fr;
  gap: min(4.375vw, 63px);
  margin-top: min(2.6389vw, 38px);
}

.top-about__mission-title {
  font-size: min(3.4722vw, 50px);
  font-weight: 800;
  line-height: 1;
  padding-left: min(0.6944vw, 10px) !important;
}

.top-about__mission-copy {
  padding-top: min(0.2083vw, 3px);
}

.top-about__mission-lead {
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.top-about__mission-text {
  margin-top: min(2.0833vw, 30px) !important;
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.08em;
}

/* approach
--------------------------------------------------- */
.top-about__approach {
  width: min(88.8889vw, 1280px);
  margin: min(5.5556vw, 80px) auto 0 !important;
  background: #f8f8f8;
  display: grid;
  grid-template-columns: min(33.1944vw, 478px) 1fr;
  gap: min(6.9444vw, 100px);
  padding: min(7.2917vw, 105px) min(6.25vw, 90px);
}

.top-about__approach-visual {
  padding-top: min(0.3472vw, 5px);
}

.top-about__approach-visual img {
  display: block;
  width: 100%;
  height: auto;
}

.top-about__approach-item + .top-about__approach-item {
  margin-top: min(3.1944vw, 46px);
}

.top-about__approach-item:nth-child(2) {
  margin-left: min(5.5556vw, 80px);
}

.top-about__approach-item:nth-child(3) {
  margin-left: min(8.8889vw, 128px);
}

.top-about__approach-number {
  font-family: "Outfit", sans-serif;
  position: absolute;
  top: max(-1.0417vw, -15px);
  left: max(-14.4444vw, -208px);
  color: #EFF1F2;
  font-size: min(10.1389vw, 146px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -0.04em;
  white-space: nowrap;
}

.top-about__approach-item:nth-child(1) .top-about__approach-number {
  left: max(-12.0833vw, -174px);
}

.top-about__approach-body {
  position: relative;
  z-index: 1;
}

.top-about__approach-en {
  font-family: "Outfit", sans-serif;
  font-size: min(0.9722vw, 14px);
  font-weight: 800;
  line-height: 1;
}

.top-about__approach-title {
  margin: min(0.3472vw, 5px) 0 0 !important;
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
}

.top-about__approach-text {
  margin: min(0.6944vw, 10px) 0 0 !important;
  color: #656565;
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
  font-weight: 500;
}

/* data
--------------------------------------------------- */
.top-about__data {
  width: min(88.8889vw, 1280px);
  margin: min(2.7778vw, 40px) auto 0 !important;
  background: #fff;
  background-image: url("../images/about-bg002.png");
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: 100% auto;
  padding: min(4.8611vw, 70px) min(6.25vw, 90px) min(5.5556vw, 80px);
}

.top-about__data-head {
  display: grid;
  grid-template-columns: min(12.5vw, 180px) 1fr;
  gap: min(1.875vw, 27px);
  align-items: start;
}

.top-about__data-title,
.top-about__license-title {
  font-size: min(3.4722vw, 50px);
  font-weight: 800;
}

.top-about__data-lead,
.top-about__license-lead {
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
  margin-top: min(0.6944vw, 10px) !important;
}

.top-about__data-text,
.top-about__license-text {
  margin-top: min(2.2222vw, 32px) !important;
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.top-about__data-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: min(2.7778vw, 40px);
  gap: min(1.3889vw, 20px);
}

.top-about__data-item {
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: flex-start;
  aspect-ratio: 1 / 1;
  padding: min(3.6806vw, 53px) min(1.3889vw, 20px) min(2.3611vw, 34px);
  background: #FBFBFB;
  border: min(0.0694vw, 1px) solid #EFF1F2;
  text-align: center;
}

.top-about__data-name {
  font-size: min(1.3889vw, 20px);
  line-height: 1.6;
  font-weight: 500;
}

.top-about__data-value {
  font-family: "Outfit", sans-serif;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  min-height: min(4.8611vw, 70px);
  margin-top: min(2.0833vw, 30px) !important;
  font-size: min(5.5556vw, 80px);
  font-weight: 700;
  line-height: 1;
}

.top-about__data-value span {
  font-family: "Noto Sans JP", sans-serif;
  margin-left: min(0.2083vw, 3px);
  margin-bottom: min(0.8333vw, 12px) !important;
  font-weight: 900;
  line-height: 1;
  text-align: left;
}

.top-about__data-item:nth-of-type(2) .top-about__data-value span {
  font-size: min(2.7778vw, 40px);
}

.top-about__data-item:nth-of-type(3) .top-about__data-value span {
  font-size: min(2.1528vw, 31px);
}

.top-about__data-item:nth-of-type(4) .top-about__data-value span {
  font-family: "Outfit", sans-serif;
  font-size: min(2.0833vw, 30px);
  font-weight: 400;
  margin-bottom: min(0.6944vw, 10px) !important;
  margin-left: min(0.4167vw, 6px);
}

.top-about__data-item:nth-of-type(5) .top-about__data-value span {
  font-size: min(2.7778vw, 40px);
}

.top-about__data-item:nth-of-type(6) .top-about__data-value span {
  font-size: min(2.0833vw, 30px);
}

.top-about__data-item:nth-of-type(6) .top-about__data-value .top-about__data-about {
  font-size: min(2.7778vw, 40px);
}

.top-about__data-value .top-about__data-range {
  font-weight: 700 !important;
  margin-bottom: min(1.3194vw, 19px) !important;
}

.top-about__data-value .top-about__data-about {
  margin: 0 min(0.2083vw, 3px) min(0.4167vw, 6px) 0;
}

.top-about__data-icon {
  width: auto;
  height: min(6.5278vw, 94px);
  margin-top: min(1.3889vw, 20px);
}

/* license
--------------------------------------------------- */
.top-about__license {
  margin-top: min(10.625vw, 153px);
}

.top-about__license-head {
  display: grid;
  grid-template-columns: min(16.6667vw, 240px) 1fr;
  gap: min(2.9861vw, 43px);
  align-items: start;
}

.top-about__license-text {
  max-width: min(50vw, 720px);
}

.top-about__license-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.3889vw, 20px) min(2.0833vw, 30px);
  margin: min(2.7778vw, 40px) min(1.7361vw, 25px) 0 !important;
  list-style: none;
}

.top-about__license-list li {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(2.9861vw, 43px);
  padding: min(0.9722vw, 14px) min(1.3889vw, 20px);
  border-radius: min(69.375vw, 999px);
  background: #000;
  color: #fff;
  font-size: min(1.7361vw, 25px);
  line-height: 1;
  text-align: center;
}

/* more company info
--------------------------------------------------- */
.top-about__more {
  position: relative;
  z-index: 2;
  width: 100%;
  margin: min(11.1111vw, 160px) auto 0;
}

.top-about__more-link {
  font-family: "Outfit", sans-serif;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(8.4722vw, 122px);
  background: #fff;
  border: min(0.0694vw, 1px) solid #000;
  color: #000;
  font-size: min(1.7361vw, 25px);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition:
    background 0.35s ease,
    color 0.35s ease;
}

.top-about__more-arrow {
  position: absolute;
  top: 50%;
  right: min(3.4722vw, 50px);
  width: min(1.9444vw, 28px);
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}

.top-about__more-arrow-image {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 100%;
  height: auto;
  transform: translate(-50%, -50%);
  transition: opacity 0.35s ease;
}

.top-about__more-arrow-image--normal {
  opacity: 1;
}

.top-about__more-arrow-image--hover {
  opacity: 0;
}

@media (hover: hover) and (pointer: fine) {
  .top-about__more-link:hover {
    background: #000;
    color: #fff;
  }

  .top-about__more-link:hover .top-about__more-arrow {
    transform: translate(min(0.5556vw, 8px), -50%);
  }

  .top-about__more-link:hover .top-about__more-arrow-image--normal {
    opacity: 0;
  }

  .top-about__more-link:hover .top-about__more-arrow-image--hover {
    opacity: 1;
  }
}


/* =========================================================
  about photo slider
========================================================= */
.top-about-slider {
  position: relative;
  width: 100%;
  height: 37.57vw;
  overflow: hidden;
}

.top-about-slider.splide {
  visibility: visible;
}

.top-about-slider__track,
.top-about-slider__list,
.top-about-slider__slide {
  height: 100%;
}

.top-about-slider__track {
  overflow: hidden;
}

.top-about-slider__list {
  display: flex;
  align-items: stretch;
}

.top-about-slider__slide {
  flex: 0 0 auto;
  width: auto !important;
}

.top-about-slider__image {
  display: block;
  width: auto;
  max-width: none;
  height: min(38.542vw,555px) !important;
}

@media (prefers-reduced-motion: reduce) {
  .top-about-slider__list {
    transform: none !important;
  }
}


/* =========================================================
  project
========================================================= */
.top-project {
  padding: min(7.6389vw, 110px) 0 min(6.9444vw, 100px);
  overflow: hidden;
  background: #F9F9F9;
}

.top-project__head {
  text-align: center;
}

.top-project__label {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.4;
}

.top-project__title {
  margin-top: min(0.3472vw, 5px) !important;
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

.top-project__lead {
  margin: min(2.7778vw, 40px) 0 0 !important;
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.top-project__slider {
  width: calc(100vw - ((100vw - min(77.7778vw, 1120px)) / 2) - min(0.6944vw, 10px));
  margin-top: min(5.8333vw, 84px);
  margin-left: min(0.6944vw, 10px);
}

.top-project__count {
  font-family: "Outfit", sans-serif;
  font-weight: 700;
  line-height: 1;
  display: flex;
  align-items: flex-start;
  gap: min(0.6944vw, 10px);
  margin-left: 0;
  font-weight: 700;
  line-height: 1;
}

.top-project__count-current {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
}

.top-project__count-divider {
  font-size: min(2.0833vw, 30px);
  font-weight: 700;
}

.top-project__count-total {
  font-size: min(2.7778vw, 40px);
  margin-top: max(-0.2778vw, -4px);
  font-weight: 700;
}

.top-project__viewport {
  position: relative;
  width: 100%;
  margin-top: min(1.3889vw, 20px);
}

.top-project__track-wrap {
  overflow: hidden;
}

.top-project__track {
  display: flex;
  gap: min(1.1111vw, 16px);
  transition: transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}

.top-project__card {
  display: flex;
  flex: 0 0 min(41.6667vw, 600px);
  background: #fff;
}

.top-project__card-link {
  display: flex;
  flex: 1;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.top-project__card-image {
  overflow: hidden;
}

.top-project__card-image img {
  display: block;
  width: 100%;
  height: auto;
}

.top-project__card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: min(19.1667vw, 276px);
  padding: min(2.9167vw, 42px) min(2.7778vw, 40px) min(2.5vw, 36px);
}

.top-project__card-title {
  font-size: min(2.0833vw, 30px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.08em;
}

.top-project__card-text {
  margin-top: min(1.5972vw, 23px) !important;
  font-size: min(1.111vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  font-weight: 500;
}

.top-project__card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: min(0.6944vw, 10px) min(0.9028vw, 13px);
  margin: auto 0 0 !important;
  padding-top: min(2.7778vw, 40px) !important;
}

.top-project__card-tags li {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: min(2.5vw, 36px);
  padding: min(0.4167vw, 6px) min(2.7778vw, 40px);
  border-radius: min(69.375vw, 999px);
  background: #E8E8E8;
  font-size: min(1.1111vw, 16px);
  font-weight: 500;
  line-height: 1;
  text-align: center;
}

.top-project__nav {
  position: absolute;
  z-index: 2;
  top: min(16.3889vw, 236px);
  left: max(-2.2222vw, -32px);
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(4.4444vw, 64px);
  height: min(4.4444vw, 64px);
  border: none;
  border-radius: 50%;
  background: transparent url("../images/project-ar001.png") center / contain no-repeat;
  cursor: pointer;
  transition: transform 0.35s ease, opacity 0.35s ease;
}

.top-project__nav:focus,
.top-project__nav:focus-visible {
  outline: none;
  box-shadow: none;
}

.top-project__nav::-moz-focus-inner {
  border: 0;
}

.top-project__nav--right {
  right: min(2.2222vw, 32px);
  left: auto;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: rotate(180deg);
}

.top-project__nav--right.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.top-project__nav-icon {
  display: none;
}

.top-project__pagination {
  display: flex;
  gap: min(1.0417vw, 15px);
  margin: min(2.9167vw, 42px) 0 0;
}

.limbs-top .top-project__dot {
  width: min(1.1111vw, 16px);
  height: min(1.1111vw, 16px);
  padding: 0;
  border: none !important;
  outline: none !important;
  background: #D1D1D1 !important;
  box-shadow: none !important;
  cursor: pointer;
  transition: opacity 0.35s ease;
}

.limbs-top .top-project__dot.is-active {
  background: #000 !important;
}

.limbs-top .top-project__dot:focus,
.limbs-top .top-project__dot:focus-visible,
.limbs-top .top-project__dot:active {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.limbs-top .top-project__dot::-moz-focus-inner {
  border: 0;
}

@media (hover: hover) and (pointer: fine) {
  .top-project__nav:hover {
    opacity: 0.75;
    transform: translateX(max(-0.2778vw, -4px));
  }

  .top-project__nav--right:hover {
    transform: rotate(180deg) translateX(max(-0.2778vw, -4px));
  }

  .top-project__card-link:hover .top-project__card-image img {
    transform: scale(1.04);
  }

  .top-project__card-image img {
    transition: transform 0.7s ease;
  }

  .limbs-top .top-project__dot:hover {
    background: #D1D1D1 !important;
    opacity: 0.72;
  }

  .limbs-top .top-project__dot.is-active:hover {
    background: #000 !important;
  }
}


/* =========================================================
  service
========================================================= */
.top-service {
  position: relative;
  padding: min(5.5556vw, 80px) 0 min(5.5556vw, 80px);
  overflow: hidden;
  background: #fff;
  background-image: url("../images/service-bg001.png");
  background-repeat: no-repeat;
  background-position: center top;
  background-size: 100% auto;
}

.top-service__background {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  max-width: none;
  height: auto;
  pointer-events: none;
}

.top-service__head {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: min(26.3889vw, 380px) 1fr;
  gap: min(10.4167vw, 150px);
  align-items: start;
}

.top-service__label {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.4;
}

.top-service__title {
  margin-top: min(0.3472vw, 5px) !important;
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

.top-service__copy {
  padding-top: min(0.4861vw, 7px);
}

.top-service__lead {
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
}

.top-service__text {
  margin-top: min(2.2222vw, 32px) !important;
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  font-weight: 500;
}

/* service panel
--------------------------------------------------- */
.top-service__panel {
  width: min(88.8889vw, 1280px);
  margin: min(5.1389vw, 74px) auto 0 !important;
  padding: min(5.6944vw, 82px) min(8.75vw, 126px) min(5.6944vw, 82px);
  background: #F8F8F8;
}

.top-service__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: min(1.1111vw, 16px);
  align-items: stretch;
}

.top-service__card {
  display: flex;
  flex-direction: column;
  min-height: min(25.6944vw, 370px);
  padding: min(3.3333vw, 48px) min(2.7778vw, 40px) min(2.7778vw, 40px);
  background: #fff;
}

.top-service__card-title {
  font-size: min(1.7361vw, 25px);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-align: center;
}

.top-service__card:nth-of-type(3) .top-service__card-title {
  font-size: min(1.4583vw, 21px);
  letter-spacing: 0;
}

.top-service__card:nth-of-type(6) .top-service__card-title {
  font-size: min(1.25vw, 18px);
  letter-spacing: 0;
}

.top-service__card-title--field {
  font-size: min(1.25vw, 18px);
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.top-service__card-text {
  margin: min(2.3611vw, 34px) 0 0 !important;
  font-size: min(0.9722vw, 14px);
  line-height: 1.6;
  letter-spacing: 0.08em;
  font-weight: 500;
}

.top-service__links {
  display: grid;
  gap: min(0.5556vw, 8px);
  margin-top: auto;
}

.top-service__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.8333vw, 12px);
  min-height: min(3.3333vw, 48px);
  padding: min(0.5556vw, 8px) min(0.9722vw, 14px);
  border: min(0.0694vw, 1px) solid #111;
  background: #fff;
  color: #000;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.08em;
  text-decoration: none;
  transition: background 0.3s ease, color 0.3s ease;
}

.top-service__link span {
  font-weight: 700;
}

.top-service__link img {
  width: min(1.6667vw, 24px);
  height: min(1.6667vw, 24px);
  object-fit: contain;
  transition: filter 0.3s ease;
}

@media (hover: hover) and (pointer: fine) {
  .top-service__link:hover {
    background: #000;
    color: #fff;
  }

  .top-service__link:hover img {
    filter: invert(1);
  }
}


/* =========================================================
  board member
========================================================= */
.top-board {
  padding: min(5.6944vw, 82px) 0;
  background: #F8F8F8;
}

.top-board__head,
.top-board__list {
  width: min(76.3889vw, 1100px);
  margin-inline: auto;
}

.top-board__label {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.4;
}

.top-board__title {
  margin-top: min(0.3472vw, 5px) !important;
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

.top-board__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: min(2.0833vw, 30px);
  margin-top: min(2.7778vw, 40px);
}

.top-board__item {
  min-width: 0;
}

.top-board__image-wrap {
  height: min(22.1528vw, 319px);
  overflow: hidden;
  background: #ecebe7;
}

.top-board__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-board__item:first-child .top-board__image {
  object-position: center 46%;
}

.top-board__item:last-child .top-board__image {
  object-position: center 46%;
}

.top-board__member {
  margin-top: min(2.0833vw, 30px);
}

.top-board__position {
  font-size: min(1.3889vw, 20px);
  font-weight: 700;
  line-height: 1.45;
  letter-spacing: 0.01em;
}

.top-board__name {
  margin-top: min(0.5556vw, 8px) !important;
  font-size: min(2.0833vw, 30px);
  font-weight: 700;
  line-height: 1.6;
}

.top-board__text {
  margin-top: min(0.4861vw, 7px) !important;
  font-size: min(1.3889vw, 20px);
  line-height: 1.6;
}


/* =========================================================
  news
========================================================= */
.top-news {
  padding: min(5.4167vw, 78px) 0 min(11.1111vw, 160px);
  background: #fff;
}

.top-news__inner {
  display: grid;
  grid-template-columns: min(17.3611vw, 250px) minmax(0, 1fr);
  gap: min(4.7917vw, 69px);
  width: min(76.3889vw, 1100px);
  margin-inline: auto;
}

.top-news__title {
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

.top-news__links {
  display: flex;
  gap: min(2.7778vw, 40px);
  margin: min(6.0417vw, 87px) 0 0 min(0.625vw, 9px);
}

.top-news__side-link {
  font-family: "Outfit", sans-serif;
  display: inline-flex;
  align-items: center;
  gap: min(0.6944vw, 10px);
  color: #000;
  font-size: min(1.1111vw, 16px);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-decoration: none;
}

.top-news__side-link span {
  font-weight: 500;
}

.top-news__side-arrow {
  display: block;
  flex: 0 0 auto;
  width: min(0.5556vw, 8px);
  height: min(0.8333vw, 12px);
  background: url("../images/news-ar001.svg") center / contain no-repeat;
}

.top-news__content {
  min-width: 0;
}

.top-news__item {
  position: relative;
  display: block;
  padding: 0 0 min(4.1667vw, 60px) 0;
  color: #000;
  border-bottom: min(0.0694vw, 1px) solid #d9d9d9;
}

.top-news__item-link {
  display: block;
  color: inherit;
  text-decoration: none;
}

.top-news__item + .top-news__item {
  margin-top: min(4.375vw, 63px);
}

.top-news__meta {
  display: flex;
  align-items: center;
  gap: min(1.5278vw, 22px);
}

.top-news__date {
  font-family: "Outfit", sans-serif;
  flex: 0 0 auto;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.6;
}

.top-news__category {
  font-family: "Outfit", sans-serif;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(6.9444vw, 100px);
  height: min(1.6667vw, 24px);
  padding: 0 min(1.25vw, 18px);
  border-radius: min(69.375vw, 999px);
  background: #E9E9E9;
  color: #000;
  font-size: min(0.9722vw, 14px);
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
}

.top-news__item-title {
  margin: min(0.625vw, 9px) 0 0 !important;
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
  font-weight: 500;
}

.top-news__item-arrow {
  position: absolute;
  top: min(2.5vw, 36px);
  right: min(2.0833vw, 30px);
  width: min(0.5556vw, 8px);
  height: min(0.8333vw, 12px);
  background: url("../images/news-ar001.svg") center / contain no-repeat;
  transition: transform 0.35s ease;
}

.top-news__empty {
  font-size: min(1.1111vw, 16px);
  line-height: 1.6;
}

@media (hover: hover) and (pointer: fine) {
  .top-news__side-link:hover,
  .top-news__category:hover,
  .top-news__item-link:hover {
    opacity: 0.72;
  }

  .top-news__item-link:hover .top-news__item-arrow {
    transform: translateX(min(0.4167vw, 6px));
  }
}


/* =========================================================
  company
========================================================= */
.top-company {
  padding: min(5.3472vw, 77px) 0 min(5.5556vw, 80px);
  background: #F8F8F8;
}

.top-company__head {
  text-align: center;
}

.top-company__title {
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
}

.top-company__link {
  display: grid;
  grid-template-columns: 1fr 1fr;
  width: min(76.3889vw, 1100px);
  margin: min(2.7778vw, 40px) auto 0;
  color: #000;
  text-decoration: none;
}

.top-company__image-wrap {
  height: min(25.9028vw, 373px);
  overflow: hidden;
}

.top-company__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.top-company__content {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: min(25.9028vw, 373px);
  padding: min(2.7778vw, 40px) min(5.5556vw, 80px);
  background: #000;
  color: #fff;
  text-align: center;
}

.top-company__text {
  font-size: min(1.7361vw, 25px);
  line-height: 1.35;
  letter-spacing: 0.08em;
  font-weight: 500;
}

.top-company__arrow {
  position: absolute;
  top: 50%;
  right: min(3.0556vw, 44px);
  width: min(0.625vw, 9px);
  height: min(1.0417vw, 15px);
  background: transparent url("../images/company-ar001.svg") center / contain no-repeat;
  transform: translateY(-50%);
  transition: transform 0.35s ease;
}

@media (hover: hover) and (pointer: fine) {
  .top-company__link:hover .top-company__image {
    transform: scale(1.03);
  }

  .top-company__image {
    transition: transform 0.7s ease;
  }

  .top-company__link:hover .top-company__arrow {
    transform: translate(min(0.4167vw, 6px), -50%);
  }
}


/* =========================================================
  contact
========================================================= */
.top-contact {
  position: relative;
  padding: 0;
  background: #000 url("../images/contact-bg001.png") center / cover no-repeat;
}

.top-contact__inner {
  position: relative;
  z-index: 1;
  width: min(71.5278vw, 1030px);
  margin: 0 auto;
  padding: min(5.5556vw, 80px) 0;
  box-sizing: border-box;
}

.top-contact__title {
  color: #fff;
  font-size: min(5.5556vw, 80px);
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.top-contact__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: min(1.25vw, 18px);
  margin-top: min(2.7778vw, 40px);
}

.top-contact__card {
  min-height: min(23.0556vw, 332px);
  padding: min(4.0278vw, 58px) min(2.7778vw, 40px) min(2.3611vw, 34px);
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.8);
}

.top-contact__card-title {
  margin: 0;
  font-size: min(1.875vw, 27px);
  font-weight: 700;
  line-height: 1.48;
  letter-spacing: 0.02em;
  text-align: center;
}

.top-contact__card-text {
  margin: min(2.0833vw, 30px) 0 0 !important;
  font-size: min(1.0417vw, 15px);
  line-height: 1.6;
  letter-spacing: 0.008em;
  text-align: center;
  font-weight: 500;
}

.top-contact__card:nth-of-type(1) .top-contact__card-text {
  margin: min(4.8611vw, 70px) 0 0 !important;
}

.top-contact__button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: min(0.9722vw, 14px);
  width: 100%;
  min-height: min(3.3333vw, 48px);
  margin: min(2.6389vw, 38px) auto 0;
  border: min(0.0694vw, 1px) solid #000;
  color: #000;
  font-size: min(1.1111vw, 16px);
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-decoration: none;
  background: transparent;
  box-sizing: border-box;
  transition: background 0.35s ease, color 0.35s ease, border-color 0.35s ease;
}

.top-contact__button span {
  font-weight: 700;
}


.top-contact__button img {
  position: absolute;
  margin-top: min(0.0694vw, 1px);
  right: min(0.7639vw, 11px);
  width: min(1.6667vw, 24px);
  height: min(1.6667vw, 24px);
  transition: filter 0.35s ease;
}

.top-contact__button-arrow {
  position: absolute;
  right: min(0.6944vw, 10px);
  display: block;
  width: min(1.6667vw, 24px);
  height: min(1.6667vw, 24px);
  margin-left: min(0.5556vw, 8px);
  background: transparent url("../images/contact-ar001.svg") center / contain no-repeat;
  transition: transform 0.35s ease, filter 0.35s ease;
}

@media (hover: hover) and (pointer: fine) {
  .top-contact__button:hover {
    background: #000;
    color: #fff;
    border-color: #000;
  }

  .top-contact__button:hover img {
    filter: brightness(0) invert(1);
  }

  .top-contact__button:hover .top-contact__button-arrow {
    filter: invert(1);
    transform: translateX(min(0.2778vw, 4px));
  }
}


/* =========================================================
  tablet：768px〜1024px
  PC（1440px基準）の比率を保ったまま縮小
========================================================= */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  /* PCの1120px / 1440pxの比率を維持 */
  .limbs-top .section-inner {
    width: min(77.7778vw, 1120px);
  }

  /* ABOUT：グリッド内の固有幅で横にはみ出さないようにする */
  .top-about__data-content,
  .top-about__data-item,
  .top-about__data-value,
  .top-about__license-list li {
    min-width: 0;
  }

  .top-about__data-grid,
  .top-about__license-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .top-about__data-value {
    max-width: 100%;
    white-space: nowrap;
  }

  .top-about__approach {
    grid-template-columns: 33.1944vw minmax(0, 1fr);
  }

  .top-about__approach-list,
  .top-about__approach-item,
  .top-about__approach-body {
    min-width: 0;
  }

  /* PROJECT：PCと同じくスライダー右端を画面右端に合わせる */
  .top-project__slider {
    width: calc(100vw - ((100vw - 77.7778vw) / 2) - 0.6944vw);
    margin-left: 0.6944vw;
  }

  /* その他の3カラムもPCレイアウトのまま縮小 */
  .top-service__head {
    grid-template-columns: 26.3889vw minmax(0, 1fr);
  }

  .top-service__copy,
  .top-service__card,
  .top-news__content,
  .top-company__content,
  .top-contact__card {
    min-width: 0;
  }

  .top-service__grid,
  .top-contact__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* =========================================================
  main visual sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-main__visual {
    height: 102.133vw;
  }

  .top-main__background {
    top: 0;
    left: 50%;
    width: 262.6667vw;
    height: auto;
    transform: translateX(-50%);
  }

  .top-main__inner {
    display: block;
    width: auto;
    margin: 0 7.2vw;
    padding-top: 23.4667vw;
  }

  .top-main__en {
    font-size: 3.4667vw;
    margin-left: 2.1333vw !important;
  }

  .top-main__title {
    font-size: 8.5333vw;
    margin-top: 1.8667vw !important;
    margin-left: 2.1333vw !important;
  }

  .top-main__copy {
    padding-top: 4.5333vw;
    padding-left: 2.1333vw;
  }

  .top-main__lead {
    font-size: 4.8vw;
  }

  .top-main__lead .top-main__reveal > span {
    padding: 0.2667vw 1.6vw 0.5333vw;
  }

  .top-main__lead .top-main__reveal + .top-main__reveal {
    margin-top: 0.8vw;
  }

  .top-main__lead--sp .top-main__reveal > span {
    animation-delay: 0.82s;
  }

  .top-main__lead--sp .top-main__reveal:nth-child(2) > span {
    animation-delay: 0.92s;
  }

  .top-main__lead--sp .top-main__reveal:nth-child(3) > span {
    animation-delay: 1.02s;
  }

  .top-main__text {
    margin-top: 2.4vw !important;
  }

  .top-main__text .top-main__reveal > span {
    font-size: 3.4667vw;
  }

  .top-main__photo {
    height: 80vw;
  }

  .top-main__photo-image {
    display: block;
    width: auto;
    max-width: none !important;
    height: 100% !important;
    /* margin-left: 50%; */
    transform: translateX(-50%);
  }
}

/* =========================================================
  about sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-about {
    padding: 31.2vw 0 8vw;
  }

  .top-about > .section-inner {
    width: calc(100% - 18.6667vw);
  }

  /* heading / mission
  --------------------------------------------------- */
  .top-about__label {
    font-size: 3.4667vw;
  }

  .top-about__title {
    margin-top: 0.8vw !important;
    font-size: 10.6667vw;
  }

  .top-about__mission {
    display: block;
    margin-top: 4.5333vw;
  }

  .top-about__mission-title {
    font-size: 6.9333vw;
    padding-left: 0 !important;
  }

  .top-about__mission-copy {
    padding-top: 10.6667vw;
  }

  .top-about__mission-lead {
    font-size: 5.3333vw;
  }

  .top-about__mission-text {
    margin-top: 4vw !important;
    font-size: 4vw;
  }

  /* approach
  --------------------------------------------------- */
  .top-about__approach {
    width: calc(100% - 5.3333vw);
    margin-top: 10.6667vw !important;
    overflow: visible;
    display: block;
    padding: 10.6667vw 8vw 10.6667vw;
  }

  .top-about__approach-visual {
    position: static;
    width: 76.5333vw;
    margin: 0 auto;
  }

  .top-about__approach-list {
    position: static;
    width: auto;
    margin-top: 5.3333vw;
  }

  .top-about__approach-item,
  .top-about__approach-item:nth-child(2),
  .top-about__approach-item:nth-child(3) {
    min-height: 0;
    margin-left: 0;
    padding-left: 4.5333vw;
  }

  .top-about__approach-item + .top-about__approach-item {
    margin-top: 10.6667vw;
  }

  .top-about__approach-number {
    top: -5.3333vw;
    left: -2.9333vw;
    font-size: 24vw;
    color: #E6E8EA;
  }

  .top-about__approach-item:nth-child(1) .top-about__approach-number {
    left: -2.9333vw;
  }

  .top-about__approach-en {
    font-size: 3.4667vw;
  }

  .top-about__approach-title {
    margin-top: 1.333vw !important;
    font-size: 5.3333vw;
  }

  .top-about__approach-text {
    margin-top: 2.933vw !important;
    font-size: 4vw;
  }

  .top-about__approach-text br {
    display: none;
  }

  /* data
  --------------------------------------------------- */
  .top-about__data {
    width: calc(100% - 5.3333vw);
    margin-top: 10.6667vw !important;
    padding: 10.6667vw 5.3333vw 8vw;
  }

  .top-about__data-head {
    display: block;
    text-align: center;
  }

  .top-about__data-title,
  .top-about__license-title {
    font-size: 6.4vw;
  }

  .top-about__data-lead {
    margin-top: 2.667vw !important;
    font-size: 5.3333vw;
  }

  .top-about__data-text {
    margin-top: 4.2667vw !important;
    font-size: 4vw;
    text-align: left;
  }

  .top-about__data-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 4.8vw;
    gap: 2.1333vw;
  }

  .top-about__data-item {
    aspect-ratio: auto;
    min-height: 43.7333vw;
    padding: 5.8667vw 0 3.2vw;
  }

  .top-about__data-name {
    font-size: 3.2vw;
  }

  .top-about__data-value {
    min-height: 13.3333vw;
    margin-top: 0 !important;
    font-size: 9.6vw;
  }

  .top-about__data-value span {
    margin-left: 0.8vw;
    margin-bottom: 1.8667vw !important;
    font-size: 3.4667vw;
  }

  .top-about__data-item:nth-of-type(2) .top-about__data-value span {
    font-size: 4.8vw;
  }

  .top-about__data-item:nth-of-type(3) .top-about__data-value span {
    font-size: 3.4667vw;
  }

  .top-about__data-item:nth-of-type(4) .top-about__data-value span {
    font-size: 4.8vw;
    margin-bottom: 1.3333vw !important;
    margin-left: 0.8vw;
  }

  .top-about__data-item:nth-of-type(5) .top-about__data-value span {
    font-size: 4.8vw;
  }

  .top-about__data-item:nth-of-type(6) .top-about__data-value span {
    font-size: 3.2vw;
  }

  .top-about__data-item:nth-of-type(6) .top-about__data-value .top-about__data-about {
    font-size: 4.8vw;
  }

  .top-about__data-value .top-about__data-range {
    font-size: 4.8vw;
    margin-bottom: 1.8667vw !important;
  }

  .top-about__data-value .top-about__data-about {
    margin-right: 1.0667vw !important;
    font-size: 3.2vw;
  }

  .top-about__data-value--area span,
  .top-about__data-value .top-about__data-project {
    margin-bottom: 0.2667vw;
    font-size: 2.6667vw;
    line-height: 0.95;
  }

  .top-about__data-icon {
    height: 11.7333vw !important;
    margin-top: 2.6667vw;
  }

  /* license
  --------------------------------------------------- */
  .top-about__license {
    margin-top: 22.6667vw;
    padding: 0 2.6667vw;
  }

  .top-about__license-head {
    display: block;
  }

  .top-about__license-title {
    text-align: left;
  }

  .top-about__license-lead {
    margin-top: 1.6vw !important;
    font-size: 5.3333vw;
  }

  .top-about__license-text {
    max-width: none;
    margin-top: 4.2667vw !important;
    font-size: 4vw;
  }

  .top-about__license-list {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.8667vw;
    margin: 5.3333vw 0 0 !important;
  }

  .top-about__license-list li {
    min-height: 9.0667vw;
    padding: 1.3333vw 2.6667vw;
    font-size: 4vw;
  }

  /* more company info
  --------------------------------------------------- */
  .top-about__more {
    width: auto;
    margin: 21.3333vw 2.6667vw 0;
  }

  .top-about__more-link {
    font-size: 4.2667vw;
    min-height: 17.0667vw;
    border: 0.267vw solid #000;
  }

  .top-about__more-arrow {
    display: none;
  }
}

/* =========================================================
  top-about-slider sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-about-slider {
    height: 114.1333vw;
  }
  .top-about-slider__image {
    height: 100% !important;
  }
}

/* =========================================================
  project sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-project {
    padding: 9.6vw 0 10.6667vw;
  }

  .top-project > .section-inner {
    width: 100%;
    max-width: none;
  }

  .top-project__head {
    margin: 0 9.6vw;
    text-align: left;
  }

  .top-project__label {
    font-size: 3.4667vw;
  }

  .top-project__title {
    margin-top: 0.8vw !important;
    font-size: 10.6667vw;
  }

  .top-project__lead {
    margin-top: 5.3333vw !important;
    font-size: 5.3333vw;
  }

  .top-project__slider {
    width: calc(100vw - 5.3333vw);
    margin-top: 10.1333vw;
    margin-left: 5.3333vw;
  }

  .top-project__count {
    align-items: center;
    gap: 0.5333vw;
    margin-left: 0;
    font-size: 3.2vw;
    line-height: 1;
  }

  .top-project__count-current {
    font-size: 3.2vw;
  }

  .top-project__count-divider {
    font-size: 3.2vw;
    padding-left: 0.5333vw;
  }

  .top-project__count-total {
    font-size: 5.3333vw;
    margin-top: 0.8vw;
  }

  .top-project__viewport {
    width: 100%;
    margin-top: 3.4667vw;
  }

  .top-project__track-wrap {
    overflow: hidden;
  }

  .top-project__track {
    gap: 2.4vw;
  }

  .top-project__card {
    flex: 0 0 82.1333vw;
  }

  .top-project__card-image img {
    width: 100%;
    height: auto;
  }

  .top-project__card-body {
    min-height: 50.9333vw;
    padding: 5.6vw 5.3333vw 4.8vw;
  }

  .top-project__card-title {
    font-size: 4.267vw;
    line-height: 1.45;
  }

  .top-project__card-text {
    margin-top: 4vw !important;
    font-size: 3.733vw;
  }

  .top-project__card-tags {
    gap: 2.1333vw;
    padding-top: 5.3333vw !important;
  }

  .top-project__card-tags li {
    min-width: 26.1333vw;
    min-height: 7.2vw;
    padding: 1.0667vw 3.2vw;
    font-size: 2.9333vw;
    line-height: 1.3;
  }

  .top-project__nav {
    top: 32.8vw;
    left: -3.4667vw;
    width: 11.7333vw;
    height: 11.7333vw;
  }

  .top-project__nav--right {
    right: 5.3333vw;
    left: auto;
  }

  .top-project__pagination {
    gap: 2.9333vw;
    margin: 5.0667vw 0 0;
  }

  .top-project__dot {
    width: 3.2vw;
    height: 3.2vw;
  }

  .limbs-top .top-project__dot {
    width: 3.2vw;
    height: 3.2vw;
  }

}

/* =========================================================
  service sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-service {
    padding: 10.1333vw 0 10.6667vw;
    background: #fff;
  }

  .top-service__background {
    top: 0;
    left: -28vw;
    width: 184vw;
    height: auto;
  }

  .top-service > .section-inner {
    width: 100%;
    max-width: none;
  }

  .top-service__head {
    display: block;
    padding: 0 9.6vw;
  }

  .top-service__label {
    font-size: 3.4667vw;
  }

  .top-service__title {
    font-size: 10.6667vw;
  }

  .top-service__copy {
    padding-top: 5.3333vw;
  }

  .top-service__lead {
    margin-top: 0 !important;
    font-size: 5.3333vw;
  }

  .top-service__text {
    margin-top: 10.1333vw !important;
    font-size: 4vw;
  }

  .top-service__text br {
    display: none;
  }

  /* panel
  --------------------------------------------------- */
  .top-service__panel {
    width: calc(100% - 10.6667vw);
    margin-top: 10.6667vw !important;
    padding: 5.3333vw 8vw 5.3333vw;
  }

  .top-service__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3.2vw;
  }

  .top-service__card,
  .top-service__card:nth-child(n + 4) {
    min-height: 0;
    padding: 7.2vw 5.0667vw 5.0667vw;
  }

  /* .top-service__card:nth-child(1),
  .top-service__card:nth-child(2),
  .top-service__card:nth-child(4),
  .top-service__card:nth-child(5) {
    min-height: 73.3333vw;
  } */

  /* .top-service__card:nth-child(3) {
    min-height: 82.6667vw;
  } */

  .top-service__card-title,
  .top-service__card-title--jp {
    font-size: 5.333vw;
  }

  .top-service__card:nth-of-type(3) .top-service__card-title,
  .top-service__card:nth-of-type(6) .top-service__card-title {
    font-size: 5.333vw;
  }

  .top-service__card-title--field {
    max-width: 61.3333vw;
    margin-inline: auto;
    font-size: 5.6vw;
    line-height: 1.55;
    letter-spacing: 0.055em;
    white-space: normal;
  }

  .top-service__card-text {
    margin-top: 4.5333vw !important;
    font-size: 3.733vw;
  }

  .top-service__links {
    gap: 1.8667vw;
    padding-top: 5.0667vw;
  }

  .top-service__link {
    min-height: 10.9333vw;
    padding: 1.6vw 3.2vw;
    font-size: 3.7333vw;
  }

  .top-service__link img {
    width: 5.3333vw;
    height: 5.3333vw;
  }
}


/* =========================================================
  board member sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-board {
    padding: 11.2vw 0 10.1333vw;
  }

  .top-board > .section-inner {
    width: 100%;
    max-width: none;
    padding: 0 9.3333vw;
  }

  .top-board__head,
  .top-board__list {
    width: auto;
    margin-inline: 0;
  }

  .top-board__label {
    font-size: 3.4667vw;
  }

  .top-board__title {
    width: 61.3333vw;
    font-size: 10.6667vw;
    line-height: 0.96;
  }

  .top-board__list {
    grid-template-columns: 1fr;
    gap: 9.3333vw;
    margin-top: 5.3333vw;
  }

  .top-board__image-wrap {
    height: 48.2667vw;
  }

  .top-board__item:first-child .top-board__image {
    object-position: center 31%;
  }

  .top-board__item:last-child .top-board__image {
    object-position: center 26%;
  }

  .top-board__member,
  .top-board__item:first-child .top-board__member,
  .top-board__item:last-child .top-board__member {
    max-width: none;
    margin-top: 6.9333vw;
  }

  .top-board__position {
    font-size: 4vw;
  }

  .top-board__name {
    margin-top: 1.6vw !important;
    font-size: 6.4vw;
  }

  .top-board__text {
    margin-top: 0.2667vw !important;
    font-size: 4vw;
  }
}


/* =========================================================
  news sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  .top-news {
    padding: 11.4667vw 0 9.6vw;
    background: #f8f8f8;
  }

  .top-news__inner {
    display: block;
    width: auto;
    margin: 0;
    padding: 0 9.3333vw;
  }

  .top-news__title {
    font-size: 10.6667vw;
  }

  .top-news__links {
    gap: 9.3333vw;
    margin: 2.9333vw 0 0 2.4vw;
  }

  .top-news__side-link {
    gap: 2.6667vw;
    font-size: 4.2667vw;
  }

  .top-news__side-arrow {
    width: 2.6667vw;
    height: 2.6667vw;
  }

  .top-news__content {
    margin-top: 7.2vw;
  }

  .top-news__item {
    padding: 0 0 5.3333vw 0;
    border-bottom: 0.2667vw solid #d8d8d8;
  }

  .top-news__item + .top-news__item {
    margin-top: 5.3333vw;
  }

  .top-news__meta {
    gap: 5.3333vw;
  }

  .top-news__date {
    font-size: 4vw;
  }

  .top-news__category {
    min-width: 19.7333vw;
    height: 4.8vw;
    padding: 0 2.6667vw;
    font-size: 2.933vw;
    line-height: 1;
  }

  .top-news__item-title {
    margin-top: 1.6vw !important;
    font-size: 3.467vw;
    font-weight: 700;
    max-width: 58.6667vw;
  }

  .top-news__item-arrow {
    top: 53%;
    right: 5.6vw;
    width: 1.6vw;
    height: 2.4vw;
    transform: translateY(-50%);
  }

  .top-news__empty {
    font-size: 3.467vw;
  }
}


/* =========================================================
  company / contact sp：767px以下
========================================================= */
@media screen and (max-width: 767px) {
  /* company
  --------------------------------------------------- */
  .top-company {
    padding: 10.9333vw 0 0;
    background: #f8f8f8;
  }

  .top-company > .section-inner {
    width: 100%;
    max-width: none;
  }

  .top-company__head {
    padding: 0 9.6vw;
    text-align: left;
  }

  .top-company__title {
    font-size: 10.6667vw;
  }

  .top-company__link {
    display: block;
    width: 100%;
    margin: 4.8vw 0 0;
  }

  .top-company__image-wrap {
    height: 67.7333vw;
  }

  .top-company__image {
    object-position: center center;
  }

  .top-company__content {
    min-height: 32.8vw;
    padding: 6.6667vw 12.8vw;
  }

  .top-company__text {
    font-size: 4.5333vw;
    line-height: 1.3;
    letter-spacing: 0.04em;
  }

  .top-company__arrow {
    right: 13.3333vw;
    width: 2.4vw;
    height: 4vw;
  }

  /* contact
  --------------------------------------------------- */
  .top-contact {
    position: relative;
    padding: 0 0 10.4vw;
    background: #000;
  }

  .top-contact::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    left: 0;
    width: 100%;
    height: 43.7333vw;
    background: url("../images/contact-bg-sp001.png") center / cover no-repeat;
  }

  .top-contact__inner {
    width: 100%;
    min-height: 0;
    padding: 48.2667vw 0 0;
  }

  .top-contact__title {
    font-size: 10.6667vw;
  }

  .top-contact__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.1333vw;
    width: 73.8667vw;
    margin: 5.3333vw auto 0;
  }

  .top-contact__card {
    min-height: 0;
    padding: 5.3333vw 5.3333vw 5.3333vw;
    background: #fff;
  }

  .top-contact__card-title {
    font-size: 5.333vw;
    line-height: 1.55;
    letter-spacing: 0.02em;
  }

  .top-contact__card-text {
    margin-top: 4vw !important;
    font-size: 4vw;
  }

  .top-contact__card:nth-of-type(1) .top-contact__card-text {
    margin-top: 4vw !important;
  }

  .top-contact__button {
    width: 63.2vw;
    min-height: 11.4667vw;
    margin-top: 4.8vw;
    padding: 1.6vw 3.2vw;
    gap: 2.6667vw;
    font-size: 3.7333vw;
    line-height: 1.4;
  }

  .top-contact__button img {
    width: 4.8vw;
    height: 4.8vw;
  }

  .top-contact__button-arrow {
    width: 4.8vw;
    height: 4.8vw;
    margin-left: 1.8667vw;
  }
}
