@charset "utf-8";

.fv {
  margin-top: var(--header-height);
  position: relative;
}

.fv .inner {
  position: absolute;
  inset: 0;
  height: calc(100% - var(--header-height));
  padding-top: 107px;
}

.fv .title {
  position: absolute;
  right: 0;
  top: 107px;
  z-index: 50;
}

.fv .title .main {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.375rem, 1.102rem + 1.17vw, 2.5rem);
  line-height: calc(80/40);
  letter-spacing: 0.2em;
  text-align: right;
  color: #fff;
}

.slider {
  position: relative;
  width: 100%;
  height: calc(90vh - var(--header-height));
  overflow: hidden;
  padding-bottom: 30px;
}

.swiper {
  width: 100%;
  height: 100%;
}

.swiper-slide {
  overflow: hidden;
}

/* 初期状態 */
.slide-inner {
  width: 100%;
  height: 100%;
  transform: scale(1.2);
  transition: transform 6s ease;
}

.slide-inner img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* アクティブ時だけ縮む */
.swiper-slide-active .slide-inner {
  transform: scale(1);
}

/* フェード */
.swiper-fade .swiper-slide {
  transition-property: opacity;
}

/* ドット */
.swiper-pagination {
  bottom: 0 !important;
}

.swiper-pagination-bullet {
  background: #DFDFE0;
  opacity: 1;
}

.swiper-pagination-bullet-active {
  background: #00428e;
}

.t_trouble .inner {
  padding: 60px 0 80px;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center;
}

.t_trouble .inner>.main {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.625rem, 1.413rem + 0.91vw, 2.5rem);
  letter-spacing: 0.1em;
  text-align: center;
  color: #00428e;
}

.t_trouble .inner>.main br {
  display: none;
}

.t_trouble .inner .list {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 5%;
}

.t_trouble .item {
  transition: var(--default);
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.t_trouble .item .img-wrap img {
  transition: var(--default);
}

.t_trouble .item:hover .img-wrap img {
  transform: scale(1.2);
}

.t_trouble .item:hover {
  opacity: 70%;
}

.t_trouble .item .img-wrap {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
  border-radius: 50%;
}

.t_trouble .item .img-wrap .column {
  display: flex;
  flex-direction: column;
  gap: 34px;
  align-items: center;
  justify-content: center;
  position: absolute;
  inset: 0;
}

.t_trouble .item .img-wrap .column .title {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: center;
}

.t_trouble .item .img-wrap .column .title .main {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(1.188rem, 0.99rem + 0.84vw, 2rem);
  color: #fff;
}

.t_trouble .item .img-wrap .column .title .sub {
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: clamp(0.75rem, 0.629rem + 0.52vw, 1.25rem);
  color: #fff;
}

.t_trouble .item .img-wrap .column .link-text {
  display: flex;
  align-items: center;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: 20px;
  color: #fff;
  gap: 8px;
}

.t_trouble .item .img-wrap .column .link-text .icon {
  width: 6px;
  height: auto;
}

.t_about .inner {
  padding: 80px 0 60px;
  display: grid;
  grid-template-columns: 42% 1fr;
}

.t_about .sec-title,
.t_about .desc {
  margin-bottom: 40px;
}

.t_about .catch p {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.25rem, 1.189rem + 0.26vw, 1.5rem);
  letter-spacing: 0.2em;
  line-height: calc(44/24);
  color: #000;
}

.t_about .morebtn {
  margin-right: auto;
  margin-left: 0;
}

.sec-image {
  width: 100%;
  overflow: hidden;
}

.sec-image .scroll-area {
  display: flex;
  gap: 57px;
  width: max-content;
  animation: scrollLoop 50s linear infinite;
}

.sec-image .scroll-area img {
  height: clamp(19.625rem, 11.524rem + 34.56vw, 53rem);
  width: auto;
  flex-shrink: 0;
}

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

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

.t_service .inner {
  padding: 160px 0 80px;
}

.t_service .sec-title {
  justify-content: center;
  align-items: center;
  margin-bottom: 80px;
}

.t_service .mainimg {
  position: relative;
  margin-bottom: 40px;
}

.t_service .mainimg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.t_service .main-tit {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(3.313rem, 2.751rem + 2.39vw, 5.625rem);
  letter-spacing: 0.1em;
  color: #fff;
  position: absolute;
}

.service-main {
  margin-bottom: 80px;
}

.service-main .column {
  display: grid;
  grid-template-columns: 30% 1fr;
}

.service-main .title {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.t_service .title .main {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(1.5rem, 1.379rem + 0.52vw, 2rem);
  letter-spacing: 0.2em;
  color: #000;
}

.t_service .title .sub {
  font-family: var(--font-serif);
  font-weight: 700;
  font-size: clamp(0.875rem, 0.814rem + 0.26vw, 1.125rem);
  letter-spacing: 0.2em;
  color: #000;
}

.service-main .main-tit {
  left: 20px;
  bottom: 20px;
}

.service-sub .main-tit {
  font-size: clamp(3.313rem, 3.13rem + 0.78vw, 4.063rem);
}

.s02 .main-tit {
  top: 11px;
  right: 14px;
}

.s03 .main-tit {
  left: 26px;
  bottom: 22px;
}

.s04 .main-tit {
  top: 24px;
  left: 13px;
  writing-mode: vertical-lr;
}

.service-main .desc {
  margin-bottom: 32px;
}

.service-main .morebtn {
  margin-right: auto;
  margin-left: 0;
}

.t_service .item-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4%;
}

.service-sub .title {
  display: flex;
  align-items: flex-end;
  margin-bottom: 20px;
}

.service-sub .title .main {
  font-size: 24px;
}

.service-sub .title .sub {
  font-size: clamp(0.875rem, 0.845rem + 0.13vw, 1rem);
}

.service-sub .desc02 {
  margin-bottom: 20px;
}

.t_news .inner {
  padding: 80px 0 60px;
}

.t_news .sec-title {
  justify-content: center;
  align-items: center;
  margin-bottom: 48px;
}

.t_news .webgene-blog {
  display: flex;
  flex-direction: column;
  gap: 40px;
  margin-bottom: 40px;
}

@media (max-width: 1366px) {
  .pc-hidden {
    display: block;
  }

  .sp-hidden {
    display: none;
  }

  .slide-inner img.sp-hidden {
    display: block;
  }

  .slide-inner img.pc-hidden {
    display: none;
  }
}

@media (max-width: 1200px) {
  .t_about .inner {
    grid-template-columns: 40% 1fr;
    gap: 30px;
  }

  .t_service .item-list {
    display: flex;
    flex-direction: column;
    gap: 80px;
  }

  .t_service .mainimg {
    height: 248px;
  }
}


@media (max-width: 1023px) {
  .fv .inner {
    padding-top: 30px;
  }

  .fv .title {
    top: 30px;
  }

  .t_trouble .inner .list {
    grid-template-columns: repeat(2, 1fr);
  }

  .t_about .inner {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .service-main .column {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
}

@media (max-width: 767px) {
  .t_trouble .inner {
    padding: 64px 0 40px;
  }

  .t_about .inner {
    padding: 40px 0 63px;
  }

  .t_service .inner {
    padding: 120px 0 80px;
  }

  .t_news .inner {
    padding: 80px 0;
  }

  .t_trouble .inner>.main {
    line-height: calc(42/26);
  }

  .t_trouble .inner>.main br {
    display: block;
  }

  .t_about .catch {
    width: 80%;
  }

  .service-main .column {
    width: 100%;
  }

  .service-sub .morebtn {
    margin-right: auto;
    margin-left: 0;
  }

  .slide-inner img.sp-hidden {
    display: block;
  }

  .slide-inner img.pc-hidden {
    display: none;
  }


}


.gjs-dashed .swiper-wrapper {
  flex-direction: column;
  height: auto;
}

.gjs-dashed .slider,
.gjs-dashed .swiper {
  height: auto;
}

.gjs-dashed .t_trouble .item .img-wrap .column {
  pointer-events: none;
}

.gjs-dashed .t_trouble .item .img-wrap .column .title,
.gjs-dashed .t_trouble .item .img-wrap .column .link-text {
  pointer-events: all;
}