@charset "UTF-8";
@font-face {
  font-family: "NotoSansJP-Bold";
  src: url(../fonts/notosansjp/notosansjp-bold.woff) format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Regular";
  src: url(../fonts/notosansjp/notosansjp-regular.woff) format("woff");
  font-display: swap;
}
@font-face {
  font-family: "NotoSansJP-Medium";
  src: url(../fonts/notosansjp/notosansjp-medium.woff) format("woff");
  font-display: swap;
}
/*=======*/
/* index */
/*=======*/
.index {
  /* 共通
  -----------------------------------*/
  /* メイン
  -----------------------------------*/
  /* news
  -----------------------------------*/
  /* servce
  -----------------------------------*/
  /* recruit
  -----------------------------------*/
}
.index .btn-area {
  margin-top: 32px;
  text-align: center;
}
@media (max-width: 767px) {
  .index .btn-area {
    margin-top: 24px;
  }
}
.index .btn-area .com-bt {
  display: block;
  width: 100%;
  max-width: 660px;
  margin: 0 auto;
}
@media (max-width: 767px) {
  .index .btn-area .com-bt {
    max-width: 240px;
  }
}
.index .main-sec .fv-area {
  position: relative;
  padding: 20px 0;
  overflow: hidden;
  width: 100%;
  height: 560px;
  /* FV LOGO CORE */
  /* FV LIGHT LINE */
}
@media (max-width: 767px) {
  .index .main-sec .fv-area {
    padding: 40px 0;
    height: 440px;
  }
}
.index .main-sec .fv-area .fv-bg {
  position: absolute;
  inset: 0;
  background: url("../images/index/kv03.webp") center/cover no-repeat;
  z-index: 0;
}
.index .main-sec .fv-area .kv-bubbles {
  position: absolute;
  inset: 0;
  z-index: 5;
  overflow: hidden;
  /* ふわふわアニメ */
}
.index .main-sec .fv-area .kv-bubbles .kv-bubble {
  position: absolute;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.95;
  pointer-events: none;
  animation: float var(--duration, 7.5s) ease-in-out infinite;
  /*←ここ重要*/
  transform-origin: center center;
  -webkit-animation: float var(--duration, 7.5s) ease-in-out infinite;
}
.index .main-sec .fv-area .kv-bubbles .kv-bubble:nth-child(odd) {
  -webkit-animation-duration: 8.5s;
          animation-duration: 8.5s;
}
.index .main-sec .fv-area .kv-bubbles .kv-bubble:nth-child(3n) {
  -webkit-animation-duration: 6.8s;
          animation-duration: 6.8s;
}
@-webkit-keyframes float {
  0% {
    transform: translate(0, 0) scale(1);
  }
  25% {
    transform: translate(calc(var(--x-move) * 0.4), calc(var(--y-move) * 0.4)) scale(1.003);
  }
  50% {
    transform: translate(var(--x-move), var(--y-move)) scale(1.006);
  }
  75% {
    transform: translate(calc(var(--x-move) * 0.6), calc(var(--y-move) * 0.6)) scale(1.003);
  }
  100% {
    transform: translate(0, 0) scale(1);
  }
}
@keyframes float {
  0% {
    transform: translate(0, 0) scale(1);
  }
  25% {
    transform: translate(calc(var(--x-move) * 0.4), calc(var(--y-move) * 0.4)) scale(1.003);
  }
  50% {
    transform: translate(var(--x-move), var(--y-move)) scale(1.006);
  }
  75% {
    transform: translate(calc(var(--x-move) * 0.6), calc(var(--y-move) * 0.6)) scale(1.003);
  }
  100% {
    transform: translate(0, 0) scale(1);
  }
}
.index .main-sec .fv-area .fv-logo {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(1px); /* 視覚安定 */
  font-family: "BIZ UDGothic", sans-serif;
  /* 共通 */
  /* 表示状態 */
}
.index .main-sec .fv-area .fv-logo .logo-step {
  position: absolute;
  display: flex;
  align-items: center;
  gap: 0.2em;
  opacity: 0;
  filter: blur(6px);
  transition: opacity 1.2s ease, filter 1.2s ease;
  white-space: nowrap;
}
.index .main-sec .fv-area .fv-logo .logo-step.is-active {
  opacity: 1;
  filter: blur(0);
}
.index .main-sec .fv-area .fv-logo .logo-step-2 {
  width: 22%;
}
@media (max-width: 767px) {
  .index .main-sec .fv-area .fv-logo .logo-step-2 {
    width: 56%;
  }
}
.index .main-sec .fv-area .fv-logo .logo-step-2 .logo-widegroup {
  display: inline-block;
  opacity: 1; /* ← 常に1 */
  transform-origin: center center;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  will-change: transform;
  transform: translateZ(0);
}
.index .main-sec .fv-area .fv-logo .logo-step-2.is-active .logo-widegroup {
  animation: widegroup-rotate-in 1.6s cubic-bezier(0.33, 0.1, 0.25, 1) forwards;
  -webkit-animation: widegroup-rotate-in 1.6s cubic-bezier(0.33, 0.1, 0.25, 1) forwards;
}
@-webkit-keyframes widegroup-rotate-in {
  0% {
    transform: perspective(1200px) rotateX(35deg) rotateY(-70deg) scale(0.9);
  }
  45% {
    transform: perspective(1200px) rotateX(20deg) rotateY(-40deg) scale(0.94);
  }
  75% {
    transform: perspective(1200px) rotateX(4deg) rotateY(-6deg) scale(0.99);
  }
  100% {
    transform: perspective(1200px) rotateX(0deg) rotateY(0deg) scale(1);
  }
}
@keyframes widegroup-rotate-in {
  0% {
    transform: perspective(1200px) rotateX(35deg) rotateY(-70deg) scale(0.9);
  }
  45% {
    transform: perspective(1200px) rotateX(20deg) rotateY(-40deg) scale(0.94);
  }
  75% {
    transform: perspective(1200px) rotateX(4deg) rotateY(-6deg) scale(0.99);
  }
  100% {
    transform: perspective(1200px) rotateX(0deg) rotateY(0deg) scale(1);
  }
}
.index .main-sec .fv-area .fv-light {
  position: absolute;
  inset: 0;
  z-index: 15;
  pointer-events: none;
  overflow: hidden;
}
.index .main-sec .fv-area .fv-light::after {
  content: "";
  position: absolute;
  top: -40%;
  left: -140%;
  width: 220%;
  height: 220%;
  background: linear-gradient(-35deg, rgba(255, 255, 0, 0) 38%, rgba(255, 255, 0, 0.35) 46%, rgb(255, 255, 0) 50%, rgba(255, 255, 0, 0.35) 54%, rgba(255, 255, 0, 0) 62%);
  opacity: 0;
  mix-blend-mode: screen;
}
.index .main-sec .fv-area .fv-light.is-active::after {
  animation: light-sweep-diagonal 2.8s cubic-bezier(0.3, 0, 0.1, 1) forwards;
  -webkit-animation: light-sweep-diagonal 2.8s cubic-bezier(0.3, 0, 0.1, 1) forwards;
}
@-webkit-keyframes light-sweep-diagonal {
  0% {
    transform: translateX(-10%);
    opacity: 0;
  }
  20% {
    transform: translateX(-10%);
    opacity: 0.4;
  }
  100% {
    transform: translateX(120%);
    opacity: 0;
  }
}
@keyframes light-sweep-diagonal {
  0% {
    transform: translateX(-10%);
    opacity: 0;
  }
  20% {
    transform: translateX(-10%);
    opacity: 0.4;
  }
  100% {
    transform: translateX(120%);
    opacity: 0;
  }
}
.index .main-sec .fv-area .contents {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
}
@media (max-width: 767px) {
  .index .main-sec .fv-area .contents {
    position: relative;
  }
}
.index .main-sec .fv-area .contents .msg-txt {
  position: relative;
  width: 40%;
  max-width: 400px;
  margin: 400px auto 0;
}
@media (max-width: 767px) {
  .index .main-sec .fv-area .contents .msg-txt {
    width: 64%;
    margin: 56px auto 0;
  }
}
.index .main-sec .fv-area .contents .msg-txt img {
  opacity: 0;
  -webkit-animation-name: fade-in;
          animation-name: fade-in;
  -webkit-animation-duration: 0.5s;
          animation-duration: 0.5s;
  -webkit-animation-delay: 2.3s;
          animation-delay: 2.3s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  position: relative;
  z-index: 3;
}
@media (max-width: 767px) {
  .index .main-sec .fv-area .contents .msg-txt img {
    top: 200px;
  }
}
.index .main-sec .fv-area .contents .msg-txt::after {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: url(../images/index/main_bg01.png) no-repeat;
  background-size: auto 100%;
  z-index: 2;
  -webkit-animation-name: scale-in-hor-left;
          animation-name: scale-in-hor-left;
  -webkit-animation-duration: 0.8s;
          animation-duration: 0.8s;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}
@media (max-width: 767px) {
  .index .main-sec .fv-area .contents .msg-txt::after {
    top: 200px;
  }
}
@-webkit-keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes fade-in {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@-webkit-keyframes scale-in-hor-left {
  0% {
    width: 0;
    opacity: 0;
  }
  100% {
    width: 100%;
    opacity: 1;
  }
}
@keyframes scale-in-hor-left {
  0% {
    width: 0;
    opacity: 0;
  }
  100% {
    width: 100%;
    opacity: 1;
  }
}
.index .main-sec .bg-black {
  border-bottom: 1px solid #989898;
}
.index .main-sec .bg-black .top-msg {
  padding: 24px 16px;
  margin-bottom: 0;
  font-family: "NotoSansJP-Medium", sans-serif;
  color: #1A1A1A;
  font-size: 28px;
  text-align: center;
  line-height: 1.3;
}
@media (max-width: 767px) {
  .index .main-sec .bg-black .top-msg {
    padding: 16px 0;
    font-size: 20px;
  }
}
.index .news-sec {
  border-top: none;
}
.index .service-sec {
  margin: 0 auto;
  padding: 72px 10% 56px;
}
.index .service-sec .list-menu {
  display: flex;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu {
    display: block;
  }
}
.index .service-sec .list-menu li {
  width: 23.83%; /*286/1200*/
  margin-right: 1.56%;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu li {
    width: 90%;
    max-width: 590px;
    margin: 0 auto 40px;
  }
}
.index .service-sec .list-menu li:nth-child(4) {
  margin-right: 0;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu li:nth-child(4) {
    margin-right: auto;
  }
}
.index .service-sec .list-menu li a {
  position: relative;
  display: block;
  text-decoration: none;
}
.index .service-sec .list-menu li .img {
  box-shadow: 0px 4px 13px -10px #989898;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu li .menu-txt {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    margin: 0 auto;
    padding: 0px 8% 8px;
    background-color: rgba(255, 255, 255, 0.7);
    -webkit-backdrop-filter: blur(6px);
            backdrop-filter: blur(6px);
  }
}
.index .service-sec .list-menu li .menu-txt dt {
  margin: 16px 0;
  font-family: "NotoSansJP-Medium", sans-serif;
  font-size: 22px;
  letter-spacing: 0.07em;
  color: #1A1A1A;
  line-height: 1;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu li .menu-txt dt {
    margin-bottom: 8px;
    font-size: 20px;
  }
}
.index .service-sec .list-menu li .menu-txt dd {
  line-height: 1.3;
  margin-top: 16px;
}
.index .service-sec .list-menu li .menu-txt .link {
  margin-top: 16px;
  text-align: center;
}
.index .service-sec .list-menu li .menu-txt .link img {
  width: 25%;
}
@media (max-width: 767px) {
  .index .service-sec .list-menu li .menu-txt .link img {
    width: 40%;
  }
}
@media (max-width: 1023px) {
  .index .recruit-sec .category-title {
    margin-bottom: 0;
  }
}
.index .recruit-sec .list-menu {
  max-width: 1920px;
  margin: 0 auto;
  padding-left: 16px;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    padding: 0 72px;
  }
}
@media (max-width: 767px) {
  .index .recruit-sec .list-menu {
    padding: 0 16px;
  }
}
.index .recruit-sec .list-menu > li + li {
  margin-top: 16px;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu > li + li {
    margin-top: 0;
  }
}
.index .recruit-sec .list-menu > li {
  margin-left: 6em;
  font-size: 28px;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu > li {
    width: 300px;
    margin-left: 0;
  }
}
.index .recruit-sec .list-menu .recruit-wrap {
  position: relative;
  max-width: 1530px;
  margin: 0 0 0 auto;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu .recruit-wrap {
    max-width: 300px;
    min-height: 470px;
    margin: 0 auto;
  }
}
.index .recruit-sec .list-menu .recruit-wrap .img {
  position: relative;
  width: 100%;
  height: 400px;
  margin: 0 0 0 auto;
  overflow: hidden;
}
.index .recruit-sec .list-menu .recruit-wrap .img img {
  box-shadow: 0px 4px 13px -10px #989898;
}
@media (max-width: 1299px) {
  .index .recruit-sec .list-menu .recruit-wrap .img {
    height: 262px;
  }
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu .recruit-wrap .img {
    position: absolute;
    height: auto;
    top: 40px;
    left: 0;
    box-shadow: 0px 4px 13px -10px #989898;
  }
}
.index .recruit-sec .list-menu .recruit-wrap .img img {
  position: absolute;
  width: 1530px;
  max-width: initial;
  top: 0;
  left: 0;
}
@media (max-width: 1299px) {
  .index .recruit-sec .list-menu .recruit-wrap .img img {
    width: 1000px;
  }
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu .recruit-wrap .img img {
    position: static;
    width: auto;
    max-width: 100%;
  }
}
.index .recruit-sec .list-menu .recruit-wrap .txt {
  position: absolute;
  top: 5em;
  left: -6em;
  z-index: 2;
}
@media (max-width: 1299px) {
  .index .recruit-sec .list-menu .recruit-wrap .txt {
    top: 4em;
  }
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu .recruit-wrap .txt {
    position: static;
  }
}
.index .recruit-sec .list-menu .heading-recruit {
  position: absolute;
  top: 0;
  left: -6em;
  margin-top: 3.75%; /*72/1920*/
  font-family: "NotoSansJP-Medium", sans-serif;
  font-size: 28px;
  letter-spacing: 0.07em;
  color: #1A1A1A;
  z-index: 0;
}
.index .recruit-sec .list-menu .heading-recruit.f-white {
  color: #FFF;
  z-index: 2;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-menu .heading-recruit {
    position: static;
    margin: 40px 0 0;
    font-size: 18px;
  }
}
.index .recruit-sec .list-link {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  margin-left: 200px;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-link {
    align-items: flex-start;
    margin-left: 0;
  }
}
.index .recruit-sec .list-link li {
  margin-right: 16px;
  font-size: 16px;
  line-height: 1;
}
@media (max-width: 1299px) {
  .index .recruit-sec .list-link li {
    width: 140px;
    margin-right: 8px;
  }
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-link li {
    position: relative;
    width: 50%;
    margin-right: 0;
    margin-top: 16px;
    padding: 0 8px;
    font-size: 14px;
    text-align: center;
    z-index: 1;
  }
}
.index .recruit-sec .list-link li:first-child {
  width: 158px;
  margin-right: 64px;
}
@media (max-width: 1023px) {
  .index .recruit-sec .list-link li:first-child {
    width: 100%;
    min-height: initial;
    margin-bottom: 16px;
    text-align: left;
  }
}
/*# sourceMappingURL=index.css.map */