/* =========================================================
  common
========================================================= */
main {
  padding-bottom: 147px;
}
/* フォント
--------------------------------------------------------- */
.h2-unique {
  font-size: 3rem;
  color: var(--FS_primary);
}
.t-white {
  color: var(--White);
}
@media screen and (max-width: 979px) {
  .h2-unique {
    font-size: 2rem;
  }
}

/* セカンダリーボタン 調整
--------------------------------------------------------- */
.button-link.secondary {
  max-width: 345px;
}

/* バナー画像リンク - ホバー
--------------------------------------------------------- */
.banner-link {
  transition: all 0.3 ease;
  &:hover {
    opacity: 0.5;
  }
}

/* =========================================================
  スライダーエリア
========================================================= */
.slider-content {
  position: relative;
}

.slider-content img {
  width: 100%;
}

.slider-content-link {
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}

@media screen and (max-width: 979px) {
  .slider-content-link {
    bottom: 24px;
  }

  .slider-content .button-link.secondary {
    max-width: 234px;
  }
}

/* まとめたコントロールの位置（今の見た目と同じ場所） */
.splide {
  position: relative;
}

.splide__controls {
  position: absolute;
  bottom: -24px;
  left: 50%;
  transform: translate(-50%, 100%);
  display: grid;
  grid-template-columns: auto max-content auto;
  align-items: center;
  column-gap: 16px;

}

.splide__controls-center {
  display: flex;
}

.splide__arrow {
  background: url(/common/img/icon/icon_splide.svg) no-repeat center center;
  background-size: contain;
  width: 32px;
  height: 20px;
  border-radius: 0;
  opacity: 1;
  transition: all 0.3s ease;
  transform: translate(0);
}

.splide__arrow:hover {
  background: url(/common/img/icon/icon_splide_ho.svg) no-repeat center center;
  background-size: contain;
}

.splide__arrow--prev {
  transform: rotate(180deg);
}

.splide__arrow svg { display: none; }

.splide__pagination {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  bottom: auto;
  transform: none;
  flex-wrap: nowrap;
  padding: 0;
}

.splide__pagination__page {
  display: block;
  background: var(--FS_Bg_gray_2);
  opacity: 1;
  width: 8px;
  height: 8px;
  border-radius: 4px;
  margin: 0;
  transition: 0.3s ease;
}

.splide__pagination__page.is-active {
  background: var(--FS_primary);
  width: 32px;
  height: 8px;
  transform: none;
}

.splide__pagination,
.splide__arrow {
  position: static;      /* ← これが重要 */
}

.splide__toggle{
  width: 32px;
  height: 20px;
}

.splide__toggle img {
  width: 100%;
  border-radius: 10px;
  border: 1px solid transparent;
  transition: .3s ease;
}

.splide__toggle:hover img {
  border: 1px solid var(--FS_primary);
}

.splide__toggle.is-paused{ opacity:.8; }

.splide__controls-right {
  display: flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 8px;
}


/* =========================================================
  製品・サービスエリア
========================================================= */
.product-service-area {
  padding: 37px 0 119px;
  background: url(/img/top_product_img01.svg) no-repeat right center;
  background-size: cover;
}

.product-service-area a img,
.hover-opacity img { transition: .3s ease; }
.product-service-area a:hover img,
.hover-opacity:hover img { opacity: 0.8; }

.top-description-list {
  display: flex;
  justify-content: space-between;
  width: 100%;
  padding: 20px 0 32px;
  border-top: 1px solid var(--White);
}

.top-description-list dt {
  color: var(--White);
  font-weight: bold;
  font-size: 1.8rem;
  line-height: 1.4;
  white-space: nowrap;
}

.top-description-list dd {
  width: 75.3%;
}

.top-description-list dd .content-search-box {
  max-width: 100%;
  margin-top: 0;
}

.top-description-list dd .content-search-icon,
.top-description-list dd .content-search-icon::after {
  width: 24px;
  height: 24px;
}

.top-description-list .category-tag {
  column-gap: 6px;
  row-gap: 12px;
}

.top-description-list .category-tag li a {
  background-color: var(--FS_Bg_lightblue);
  padding: 5px 8px;
  line-height: 1.4;
  font-size: 1.6rem; 
}

.top-description-list .category-tag li a:hover {
  background-color: transparent;
  color: var(--White);
  border: 1px solid var(--White);
}

@media screen and (max-width: 979px) {
  .product-service-area {
    background: url(/img/top_product_img01_sp.svg) no-repeat right center;
    background-size: cover;
  }

  .top-description-list {
    flex-direction: column;
    gap: 18px;
    padding: 20px 0 24px;
  }

  .top-description-list dt {
    font-size: 1.6rem;
  }

  .top-description-list dd {
    width: 100%;
  }
}


/* =========================================================
  背景
========================================================= */
.circle-wrap {
  display: block;
}

.circle-wrap::before,
.circle-wrap::after {
  max-width: 540px;
  max-height: 540px;
}
.circle-wrap::before {
  bottom: -48px;  /* circle-wrapのmargin-bottom分 */
  transform: translate(-50%, 50%);
  background: url(/common/img/element/circle_left_04.png);
  background-size: contain;
}

.circle-wrap::after {
  display: none;
}

.circle-wrap.type-2::before {
  background: url(/common/img/element/circle_left_05.png) no-repeat;
  background-size: contain;
  top: 0;
  transform: translate(0);
  z-index: 1;
  bottom: auto;
  max-width: 270px;
  max-height: 270px;
  mix-blend-mode: lighten;
  opacity: 0.7;
}

.circle-wrap.type-2::after {
  display: block;
  top: auto;
  bottom: 0;  /* circle-wrapのmargin-top分 */
  transform: translate(-100%, 0%);
  background: url(/common/img/element/circle_right_04.png);
  background-size: contain;
  max-width: 270px;
  max-height: 270px;
}

.circle-wrap.type-3::before {
  background: url(/common/img/element/circle_left_06.png);
  background-size: contain;
  top: 50%;
  bottom: auto;
  transform: translate(-50%, -50%);
}

@media screen and (max-width: 979px) {
  .circle-wrap::before,
  .circle-wrap::after {
    width: 316px;
    height: 316px;
  }

  .circle-wrap.type-2::before,
  .circle-wrap.type-2::after {
    max-width: 158px;
    max-height: 158px;
  }

  .circle-wrap.type-3::before {
    top: auto;
    bottom: 0;
    transform: translate(-50%, 10%);
  }
}


