#canvas {
  width: 100%;
  background-image: url('../img/bg.jpg');
  background-size: cover;
  background-position: center;
  margin: 0 auto;
}

/* JS 実行前でもキャンバスと KV 領域の高さを確保する（表示が遅れる問題の緩和） */
#canvas {
  height: calc(var(--vh, 1vh) * 100);
}

/* 画面幅に合わせて角度を補間するための変数 */
:root {
  --kv-angle-min: 39; /* 最小角度 (deg) */
  --kv-angle-max: 72; /* 最大角度 (deg) */
  /* ビューポート幅に応じて角度を補間（375px〜1440px 範囲） */
  --kv-angle: clamp(
    var(--kv-angle-min),
    calc(
      var(--kv-angle-min) + (var(--kv-angle-max) - var(--kv-angle-min)) *
        ((100vw - 375px) / (1440 - 375))
    ),
    var(--kv-angle-max)
  );
}

.kv {
  position: relative;
  height: calc(var(--vh, 1vh) * 100);
  min-height: 0;
}

.kv #video {
  display: none;
  visibility: visible;
  position: absolute;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
  inset: 0;
  width: 21%;
  height: 36%;
  top: 19%;
  left: 51%;
  z-index: 1;
  outline: none;
  background: transparent;
  /* 背景の黒が抜けたように見せる */
  mix-blend-mode: screen;
  transform: none;
  will-change: auto;
  backface-visibility: visible;
}
.s .kv #video {
  position: absolute;
  inset: 0;
  width: 72%;
  height: 76%;
  top: 1%;
  left: 21%;
  z-index: 1;
  outline: none;
  background: transparent;
  mix-blend-mode: screen;
}
/* 再生ボタン　非表示 */
/* 動画のネイティブ再生オーバーレイを隠す（主要ブラウザ向け） */
#video::-webkit-media-controls-start-playback-button,
#video::-webkit-media-controls-overlay-play-button,
#video::-webkit-media-controls {
  display: none !important;
}
#video::-ms-clear,
#video::-ms-expand {
  display: none !important;
}

.kv #canvas {
  display: block;
}

/* 低電力モード時の画像 */
.kv__logoImg {
  display: none;
  position: absolute;
  width: 21%;
  top: 18.5%;
  left: 51%;
  transform: rotateX(calc(var(--kv-angle) * 1deg));
}
.s .kv__logoImg {
  position: absolute;
  width: 72%;
  top: 21%;
  left: 21%;
  display: none;
  transform: rotateX(calc(var(--kv-angle) * 1deg));
}

/* アニメーション */
@keyframes fadeIn {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.kv .kv__textImg {
  width: 30.9%;
  position: absolute;
  top: 85%;
  left: 8%;
  z-index: 2;
  opacity: 0;
  animation: fadeIn 3s ease-out forwards;
  animation-delay: 1.5s;
}
.s .kv .kv__textImg {
  width: 54.2%;
  position: absolute;
  top: 80%;
  left: 6%;
}

.inner {
  max-width: 1200px;
  margin: 0 auto;
}

/*------------------*/
/* リード文 */
/*------------------*/
.lead {
  padding: 9.7% 20px 18%;
  z-index: 0;
}
.s .lead {
  padding: 14.5% 20px 65%;
}
.top__bg {
  position: relative;
  background: url(../img/top-bg.png);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  padding-bottom: 15%;
}
.s .top__bg {
  background: url(../img/top-bg_sp.png);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
  padding-bottom: 13.4%;
}

.lead h2 {
  font-family: 'Zen Kaku Gothic New', sans-serif;
  font-size: 3.125rem;
  color: #040000;
  font-weight: 800;
}
.s .lead h2 {
  font-size: 1.6875rem;
}
.lead__area {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  padding-top: 25px;
}
.s .lead__area {
  align-items: center;
  padding-top: 35px;
  align-items: flex-start;
}

.lead__title {
  font-style: italic;
  background: linear-gradient(270deg, #00829d, #43b4d5);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}
.s .lead__title {
  font-size: clamp(1.52rem, calc(6.16vw + 0.08rem), 3.38rem) !important;
  letter-spacing: -0.5px;
}

.lead__text {
  font-size: 1.5rem;
  color: #040000;
  font-weight: 500;
  line-height: 1.8;
}
.s .lead__text {
  font-size: clamp(1.19rem, calc(3.3vw + 0.14rem), 2.38rem);
}

.lead__text__gap {
  display: block;
  margin-bottom: 40px;
}
.s .lead__text__gap {
  margin-bottom: 8px;
}
.lead-bgImg {
  width: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: calc(57% - 100px);
}
.s .lead-bgImg {
  bottom: 65%;
}
@media screen and (min-width: 1441px) {
  .lead-bgImg {
    bottom: 48%;
  }
}

/* .s .lead-bgImg:{} */

/*------------------*/
/* sec01 */
/*------------------*/
.sec01 {
  max-width: 1200px;
  position: relative;
}
.sec01__img {
  width: 59.9%;
}
.s .sec01__img {
  width: 100%;
}
.sec01__area {
  padding-top: 62px;
}
.s .sec01__area {
  padding-top: 8.5%;
}
.sec01 .sec__textbox {
  position: absolute;
  top: 68%;
  left: 45%;
  max-width: 670px;
  width: 54%;
  padding: 3% 3%;
  background: linear-gradient(
    130deg,
    rgba(255, 255, 255, 0.8),
    rgba(228, 245, 247, 0.8) 50%,
    rgba(255, 255, 255, 0.8) 100%
  );
  border-radius: 20px;
  box-shadow: 6px 6px 14px rgba(0, 110, 189, 0.24);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(10px);
  font-size: clamp(0.88rem, calc(0.89vw + 0.45rem), 1.25rem);
  line-height: 1.6;
}
.s .sec01 .sec__textbox {
  position: unset;
  max-width: unset;
  width: 100%;
  padding: 6.8% 5.7%;
  font-size: clamp(0.88rem, calc(3vw + 0.1rem), 1.75rem);
}

.sec01__area .sec__textbox p {
  padding-top: 20px;
}
.sec01__area .sec__textbox p:first-child {
  padding-top: 0;
}

.sec01__text {
  position: absolute;
  top: 48%;
  left: 45.5%;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.s .sec01__text {
  position: relative;
  transform: translateY(-24%);
  top: 0;
  left: 0;
  gap: 8px;
}
.sec01__text .blueband:last-child p {
  display: flex;
  align-items: center;
  gap: 10px;
}
.sec01__deco {
  position: absolute;
  width: 100%;
  max-width: 411px;
  top: 3%;
  right: 0%;
}
.s .sec01__deco {
  max-width: 239px;
  width: 32%;
  top: -8%;
  right: 0%;
}

/*------------------*/
/* sec02 */
/*------------------*/
.sec02 {
  position: relative;
  padding-top: 14% !important;
  padding-bottom: 14.9% !important;
}
.project-list {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  align-items: center;
  gap: 26px;
  padding-top: 50px;
}
.s .project-list {
  gap: 40px;
  padding-top: 4.5%;
}
.sec02__deco01 {
  width: 58.8%;
  position: absolute;
  bottom: 40%;
  right: 0%;
}
.s .sec02__deco01 {
  width: 83%;
  bottom: 0;
  top: -1.7%;
}

.s .sec02__deco02 {
  position: absolute;
  width: 69.5%;
  top: 51%;
  left: 0%;
}

.top-bg02 {
  padding: 5.8% 0 7.4%;
  border-radius: 64px;
  background-image: url(../img/top-sec03-bg.jpg);
  background-size: cover;
  background-position: top center;
  background-repeat: no-repeat;
}
.s .top-bg02 {
  border-radius: 20px;
}

/*------------------*/
/* sec03 */
/*------------------*/
.sec03 {
  position: relative;
  padding: 0 !important;
}
.sec03 .inner {
  padding: 0 15px;
}
.sec03 .c-subtitle {
  padding-top: 23px;
}
.s .sec03 .c-subtitle {
  padding-top: 1.5%;
}
.voice-list {
  position: relative;
  z-index: 1;
  display: flex;
}

/* 記事がない際の見た目 */
.sec03 .not-content-item {
  font-size: 2.3rem;
  padding: 80px 0;
}
.s .sec03 .not-content-item {
  font-size: clamp(1rem, calc(1.96vw + 0.56rem), 1.5rem);
}

/*------------------*/
/* sec04 */
/*------------------*/
.sec04 {
  position: relative;
  padding-top: 52px;
}
/*--------------*/
/* sec05 */
/*--------------*/
.sec05 {
  position: relative;
  padding-top: 6.3%;
}
.s .sec05 {
  position: relative;
  padding-top: 18.7%;
  padding-bottom: 18.7%;
}
.s .sec05 .c-subtitle {
  padding-top: 3%;
}
.sec05__content {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  padding-top: 64px;
  position: relative;
  z-index: 1;
}
.s .sec05__content {
  gap: 25px;
  padding-top: 30px;
}
.sec05__contentRight {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 40px;
}
.s .sec05__contentRight {
  width: 100%;
  gap: 25px;
}

.sec05 .sec__textbox {
  background: #fff !important;
  box-shadow: 7px 6px 15px rgba(0, 110, 189, 0.1) !important;
}
.sec05__column {
  width: 558px;
  list-style: none;
  transition: transform 0.3s ease;
}
.s .sec05__column {
  width: 100%;
  gap: 17px;
}
.sec05__column:hover {
  transform: scale(1.05);
}
.sec05__column a {
  text-decoration: none;
  padding: 34px 30px 40px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 25px;
}
.s .sec05__column a {
  padding: 6%;
  gap: 10px;
}

.sec05__flex {
  width: 602px;
  display: flex;
  gap: 30px;
  padding: 32px 35px 32px 28px;
  text-decoration: none;
  transition: transform 0.3s ease;
}
.sec05__flex:hover {
  transform: scale(1.05);
}

.s .sec05__flex {
  flex-direction: column;
  width: 100%;
  gap: 10px;
  padding: 6%;
}
.sec05__img {
  width: 100%;
}
.sec05__column .sec05__img {
  height: 290px;
}
.s .sec05__column .sec05__img {
  height: unset;
}
.sec05__img img {
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}
.s .sec05__img img {
  height: unset;
  object-fit: unset;
  border-radius: 10px;
}

.sec05__text {
  width: 100%;
  display: flex;
  flex-direction: column;
}
.sec05__text__title {
  font-size: 1.25rem;
  font-weight: bold;
  padding-bottom: 5px;
  color: #000;
}
.s .sec05__text__title {
  font-size: clamp(1rem, calc(3.92vw + 0.12rem), 2rem);
}
.sec05__text p {
  font-size: 1rem;
  color: #000;
}
.s .sec05__text p {
  font-size: clamp(0.88rem, calc(3vw + 0.1rem), 1.75rem);
}
.sec05__tag {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  padding-top: 15px;
}
.s .sec05__tag {
  padding-top: 10px;
}
.sec05__flex .sec05__tag {
  flex-direction: column;
  gap: 8px;
}

.s .sec05__flex .sec05__tag .c-tag {
  padding: 1.3% 4% 2% !important;
}
.sec05 .c-button {
  margin: 80px auto 0;
  position: relative;
  z-index: 1;
}
.s .sec05 .c-button {
  margin: 35px auto 0;
}
.sec05__deco {
  width: 30.6%;
  position: absolute;
  top: 28%;
  left: 0%;
}

/*------------------*/
/* sec06 */
/*------------------*/
.inner.sec06__inner {
  padding: 0;
}
.s .inner.sec06__inner {
  padding: 0 5.4%;
}
.sec06 {
  max-width: 1351px;
  position: relative;
  margin-top: 120px;
  background-image: url(../img/top-sec06-bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 0 30px;
  border-radius: 48px;
  margin: 120px auto 0;
  z-index: 1;
}
.s .sec06 {
  padding: 0 0 10%;
  border-radius: 15px;
}
.sec06 .c-subtitle {
  padding-top: 19px;
}
.s .sec06 .c-subtitle {
  padding-top: 0;
}
.sec06__content {
  display: flex;
  justify-content: center;
  height: 753px;
}
.sec06__contentLeft {
  max-width: 540px;
  width: 100%;
  padding: 60px 0 80px 0;
}
.s .sec06__contentLeft {
  max-width: unset;
  padding: 8% 5.4% 11%;
}
.sec06__title {
  font-size: 1.25rem;
  color: #fff;
  font-weight: bold;
  padding-top: 44px;
}
.s .sec06__title {
  font-size: clamp(0.88rem, calc(3vw + 0.1rem), 1.75rem);
  padding-top: 32px;
}
.sec06__text {
  font-size: 1.25rem;
  color: #fff;
  padding-top: 15px;
}
.s .sec06__text {
  font-size: clamp(0.88rem, calc(3vw + 0.1rem), 1.75rem);
  padding-top: 10px;
}
.sec06 .c-button {
  margin-top: 30px;
}
.s .sec06 .c-button {
  margin: 30px auto 0;
}
.sec06__contentRight {
  display: flex;
  justify-content: flex-end;
  gap: 22px;
}
.sec06__imgList {
  width: 42.6%;
  max-height: 753px !important;
}
.sec06 .slick-list {
  max-width: 301px !important;
  width: 100% !important;
  height: 100% !important;
}
.sec06__imgListItem {
  width: 100% !important;
  margin-top: 25px;
}
.s .sec06__imgListItem {
  width: 100% !important;
  max-width: 290px;
  height: auto;
  aspect-ratio: 290 / 200;
  margin-left: 15px;
}
.sec06__imgListItem img {
  display: block;
  width: 100%;
  height: auto;
}

/*------------------*/
/* sec07 */
/*------------------*/
.sec07 {
  position: relative;
  z-index: 1;
  padding: 120px 15px;
}
.s .sec07 {
  padding-top: 18%;
  padding-bottom: 36%;
}
.sec07 .c-subtitle {
  padding-top: 22px;
}
.s .sec07 .c-subtitle {
  padding-top: 2.5%;
}
.sec07__content {
  display: flex;
  justify-content: space-between;
  gap: 30px;
}
.s .sec07__content {
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.sec07__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.sec07__contentRight {
  max-width: 790px;
  width: 100%;
}
.sec07 .c-button {
  margin: 75px auto 0;
}
.s .sec07 .c-button {
  margin: 45px auto 0;
}

/*一覧に表示する記事がなかったとき */
.not-content-item {
  list-style: none;
  text-align: center;
  margin: 0 auto;
  width: 79%;
  font-size: 1.3rem;
  font-weight: bold;
  padding: 40px 0;
  /* border-radius: 16px; */
  /* border: 2px solid #00829e; */
  box-shadow: unset !important;
}
.s .not-content-item {
  font-size: 1rem;
}
/*-------------------------*/
/* スライダー 初期は非表示 */
/*-------------------------*/
.slider__joinus_l,
.slider__joinus_r {
  visibility: hidden;
  will-change: transform;
  transform: translateZ(0);
  backface-visibility: hidden;
}

/* 右のスライダー逆方向に進行 */
.slider__joinus_r .slick-list {
  transform: rotate(180deg) !important;
}
.slider__joinus_r .slick-list img {
  transform: rotate(180deg);
}

@media screen and (max-width: 885px) {
  .blueband {
    font-size: 1.375rem;
  }

  .sec06 {
    max-width: 1351px;
    position: relative;
    margin-top: 120px;
    padding: 0 30px;
    border-radius: 48px;
    margin: 120px auto 0;
    z-index: 1;
  }
  .sec06__imgListItem {
    max-width: 400px;
    margin-top: 15px;
  }
  .sec06__content {
    display: block;
    justify-content: center;
    height: unset;
  }
  .sec06__contentRight {
    flex-direction: column;
    gap: 30px;
  }
  .sec06__imgList {
    width: 100%;
  }
  .sec06 .slick-track {
    display: flex;
    align-items: center;
    gap: 0;
  }

  .sec06 .slick-list {
    max-width: 100% !important;
    width: 100% !important;
    max-height: unset !important;
    height: unset !important;
  }
}
