@charset "UTF-8";
/* ==========================================================================
   TOPページ固有
   .fjt-mv          - メインビジュアル（#slideshow はCMSスライダー差し替え前提）
   .fjt-recruit-bnr - 採用情報バナー（背景写真パララックス）
   ========================================================================== */

/* --------------------------------------------------------------------------
   メインビジュアル
   -------------------------------------------------------------------------- */
.fjt-mv {
  position: relative;
  overflow: hidden;
  background: #2b2826;
}
/* CMSスライダーは高さ100%で外枠に追従するため、外枠で高さを明示 */
#slideshow {
  position: relative;
  height: calc(100vh - 76px);
  min-height: 560px;
  max-height: 900px;
}
#slideshow .swiper-slide,
#slideshow .main_slider__inner {
  width: 100%;
  height: 100%;
  overflow: hidden;
}
#slideshow .main_slider__inner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
  animation: fjtMvZoom 7s ease-out both;
}
@keyframes fjtMvZoom {
  from { transform: scale(1.08); }
  to   { transform: scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  #slideshow .main_slider__inner img {
    animation: none;
  }
}
.fjt-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(12, 10, 10, 0.72) 0%, rgba(12, 10, 10, 0.45) 55%, rgba(12, 10, 10, 0.2) 100%),
    linear-gradient(0deg, rgba(12, 10, 10, 0.5) 0%, rgba(12, 10, 10, 0) 60%);
  pointer-events: none;
}
.fjt-mv__content {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.container.fjt-mv__inner {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 28px;
  /* 下端余白＋スライダーのページネーション領域（12px+高さ31px+gap28px ≒ 71px）を確保し、デザインのコピー位置に合わせる */
  padding-bottom: calc(clamp(56px, 9vh, 96px) + 71px);
  color: #fff;
}
.fjt-mv__en {
  font-family: "Crushed", sans-serif;
  font-size: clamp(15px, 1.5vw, 18px);
  line-height: normal;
  letter-spacing: 0.24em;
}
.fjt-mv__title {
  font-size: clamp(34px, 5.8vw, 78px);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0.06em;
  text-wrap: balance;
}
.fjt-mv__title span {
  display: block;
}
.fjt-mv__text {
  font-size: clamp(14px, 1.4vw, 17px);
  font-weight: 500;
  line-height: 2;
  letter-spacing: 0.08em;
}

/* --------------------------------------------------------------------------
   採用情報バナー
   -------------------------------------------------------------------------- */
.fjt-recruit-bnr {
  position: relative;
  overflow: hidden;
  color: #fff;
  background-color: #1f2a36;
}
.fjt-recruit-bnr__bg {
  position: absolute;
  top: -15%;
  left: 0;
  width: 100%;
  height: 130%;
  object-fit: cover;
  object-position: center 40%;
  will-change: transform;
}
.fjt-recruit-bnr__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(10, 14, 20, 0.82) 0%, rgba(10, 14, 20, 0.6) 50%, rgba(10, 14, 20, 0.25) 100%);
}
.container.fjt-recruit-bnr__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 36px;
  padding-top: clamp(100px, 13vw, 180px);
  padding-bottom: clamp(100px, 13vw, 180px);
}
.fjt-recruit-bnr__text {
  max-width: 620px;
}
