@charset "UTF-8";
/*-----------------------------------
 トップページ
-----------------------------------*/
section.case.layout-case .swiper-wrapper {
  height: auto;
}

.news.layout-news .news__title-en.section-title__en {
    letter-spacing: -0.05em;
}

.mv__breadcrumb .mv__breadcrumb-current,
.mv__breadcrumb.mv--stacked .mv__breadcrumb-current {
  display: inline-block;
  max-width: 14ch;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/*-----------------------------------
 フッター調整
-----------------------------------*/
@media screen and (min-width: 768px) {
  .footer__nav-item {
    display: block;
  }
}
.footer__address {
  font-size: 12px;
  font-size: 0.75rem;
  line-height: 1.8;
}

.footer__inner {
  padding-top: 3.5rem;
  padding-bottom: 1rem;
}
@media screen and (min-width: 768px) {
  .footer__inner {
    padding-top: 4rem;
    padding-bottom: 3rem;
  }
}

.footer__top {
  padding-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .footer__top {
    padding-bottom: 5rem;
  }
}

.footer__nav {
  margin-top: 2rem;
}
@media screen and (min-width: 768px) {
  .footer__nav {
    margin-top: 1.5rem;
  }
}

.footer__bottom {
  margin-top: 2.5rem;
}
@media screen and (min-width: 768px) {
  .footer__bottom {
    margin-top: 4rem;
  }
}

/*-----------------------------------
 採用ページ MV のトーン調整
-----------------------------------*/
.mv.recruit {
  position: relative;
}

.mv.recruit::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45);
  pointer-events: none;
  z-index: -1;
}

/*-----------------------------------
 ヘッダー微調整（文字サイズ）
-----------------------------------*/
.header__nav-item > a,
.header__nav-item > p {
  font-size: 0.6875rem;
}
@media screen and (min-width: 768px) {
  .header__nav-item > a,
  .header__nav-item > p {
    font-size: 0.8rem;
  }
}
@media screen and (min-width: 1440px) {
  .header__nav-item > a,
  .header__nav-item > p {
    font-size: 0.85rem;
  }
}

.header__contact a {
  font-size: 0.8125rem;
}

/*-----------------------------------
 フッター微調整（文字サイズ）
-----------------------------------*/
.footer__nav-item a,
.footer__nav-item p {
  font-size: 0.875rem;
}
@media screen and (min-width: 768px) {
  .footer__nav-item a,
  .footer__nav-item p {
    font-size: 0.8125rem;
  }
}

.footer__subnav .footer__subnav-item a {
  font-size: 0.6875rem;
}

.footer__policies,
.footer__policies a,
.footer__copyright {
  font-size: 0.7rem;
}

.footer__bottom {
  row-gap: 2rem;
}
@media screen and (min-width: 768px) {
  .footer__bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "address address"
      "policies copyright";
    row-gap: 2rem;
    -webkit-box-align: start;
        -ms-flex-align: start;
            align-items: flex-start;
  }
}

@media screen and (min-width: 768px) {
  .footer__address {
    grid-area: address;
  }
}

.footer__policies {
  gap: 1.5rem;
}
@media screen and (min-width: 768px) {
  .footer__policies {
    grid-area: policies;
    width: auto;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

@media screen and (min-width: 768px) {
  .footer__copyright {
    grid-area: copyright;
    margin-top: 0;
    -ms-flex-item-align: end;
        align-self: flex-end;
    justify-self: end;
  }
}

/*-----------------------------------
 お問い合わせフォーム補助表現
-----------------------------------*/
.form__error {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: #c0392b;
}

.form__status {
  margin-top: 2rem;
  font-size: 0.95rem;
  text-align: center;
  min-height: 1.5rem;
}

.form__status--success {
  color: #0d8659;
}

.form__status--error {
  color: #c0392b;
}

.contact-form__submit {
  min-width: 220px;
  padding: 0.85rem 2.5rem;
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  color: #fff;
  border: none;
  border-radius: 999px;
  background: linear-gradient(90deg, #2d71de, #3f97ff);
  cursor: pointer;
  transition: opacity 0.2s ease, box-shadow 0.2s ease;
}

.contact-form__submit:hover,
.contact-form__submit:focus-visible {
  opacity: 0.9;
  box-shadow: 0 10px 30px rgba(45, 113, 222, 0.35);
  outline: none;
}

.contact-form__submit.is-loading,
.contact-form__submit:disabled {
  opacity: 0.65;
  cursor: not-allowed;
  box-shadow: none;
}

.form-checkbox input + span::after {
  left: 0.6rem;
  -webkit-transform: translate(-50%, -55%) rotate(-45deg);
          transform: translate(-50%, -55%) rotate(-45deg);
}

@media screen and (min-width: 768px) {
  .form-checkbox input + span::after {
    left: 0.8rem;
  }
}

.form__wrap--privacy .form__privacy {
  border: 1px solid #dfe3ea;
  padding: 1.5rem;
  background-color: #fff;
}

.form__wrap--privacy .form-checkbox {
  margin-bottom: 1rem;
}

.form-checkbox__item {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
}

.form-checkbox__item span {
  padding-left: 0;
  font-size: 0.95rem;
}

.form-checkbox__item input + span::before {
  width: 1rem;
  height: 1rem;
  border-radius: 4px;
}

.form-checkbox__item input + span::after {
  width: 0.65rem;
  height: 0.35rem;
  border-width: 0.15rem;
  left: 0.5rem;
  -webkit-transform: translate(-50%, -55%) rotate(-45deg);
          transform: translate(-50%, -55%) rotate(-45deg);
}

@media screen and (min-width: 768px) {
  .form-checkbox__item input + span::after {
    left: 0.6rem;
  }
}

.form__privacy-note {
  font-size: 0.85rem;
  line-height: 1.7;
  color: #4a4a4a;
}

.form__privacy-note a {
  color: #2d71de;
  text-decoration: underline;
}

.form__submit {
  text-align: center;
}

.form__submit .contact-form__submit {
  width: min(320px, 33%);
  margin: 0 auto;
  display: inline-flex;
  justify-content: center;
  align-items: center;
}
/*-----------------------------------
 お知らせ/BLogページ詳細
-----------------------------------*/
.single-blog__meta {
  flex-wrap: wrap;
  row-gap: 0.5rem;
}
.single-blog__meta .single-blog__date {
  width: 100%;
}
.single-blog__meta .single-blog__category:not(:last-of-type) {
  margin-right: 0.5rem;
}

@media screen and (min-width: 768px) {
  .single-blog__meta .single-blog__date {
    width: fit-content;
  }
}

/*-----------------------------------
 導入事例アーカイブ調整
-----------------------------------*/
.case-study-pagination {
  margin-bottom: 2.5rem;
}
@media screen and (min-width: 768px) {
  .case-study-pagination {
    margin-bottom: 4rem;
  }
}

.entry-mail,
.sub-recruit__banner {
  margin-bottom: 3rem;
}
@media screen and (min-width: 768px) {
  .entry-mail,
  .sub-recruit__banner {
    margin-bottom: 5.3rem;
  }
}
/*-----------------------------------
 ブログページ調整
-----------------------------------*/
.blog-archive__back {
  margin-top: 1rem;
  margin-bottom: 3rem;
  text-align: right;
}

.single-blog__tag.blog-card__tags li {
  cursor: pointer;
}

/*-----------------------------------
 メンバーページページネーション
-----------------------------------*/
.pagination__link.is-current {
  pointer-events: none;
  cursor: default;
  color: #999;
}

.pagination__button--prev.is-disabled,
.pagination__button--next.is-disabled {
  pointer-events: none;
  opacity: 0.4;
  cursor: default;
}

/*-----------------------------------
 ソリューション
-----------------------------------*/
.business__content-case .business__content-swiperWrap .business__content-swiper .swiper-wrapper {
  height: auto;
}

.business__content-case .case__more span {
  z-index: 0;
}

@media screen and (min-width: 768px) {
  .business__content-title:nth-last-of-type(1) {
    margin-top: 3.25rem;
  }
}
/*-----------------------------------
 smart mpc
-----------------------------------*/
.smart-title span:last-of-type {
  vertical-align: top;
  font-size: clamp(1.5rem, 0.6rem + 5vw, 6rem);
  margin-top: 0.5rem;
}

@media screen and (min-width: 768px) {
  .smart-title span:last-of-type {
    font-size: 4rem;
    margin-left: 0.5rem;
  }
}
/*-----------------------------------
 Case study
-----------------------------------*/
.pager__next.is-disabled,
.pager__prev.is-disabled {
  display: none;
}

.pager__all {
  border-left: 1px solid #e6e6e6;
  border-right: 1px solid #e6e6e6;
}
.pager__all.no-left-border {
  border-left: none;
}
.pager__all.no-right-border {
  border-right: none;
}

.mv--white.mv {
  background-color: transparent !important;
}
