@charset "UTF-8";

/* ==========================================================================
   下層ページ個別スタイル
   ========================================================================== */
@media (max-width: 575px) {
   .header--white {
      background-color: transparent;
   }
}

/* ==========================================================================
   下層ページ共通タイトル
   ========================================================================== */
.page-main {
   position: relative;
}

.page-main::before {
   content: '';
   position: absolute;
   top: 16.0rem;
   left: -12.5rem;
   width: 25.0rem;
   height: 25.0rem;
   background: var(--bgGradDecor);
   transform: rotate(45deg);
}

.page-main::after {
   content: '';
   position: absolute;
   top: 40.5rem;
   left: 4.5rem;
   z-index: 0;
   width: 36.0rem;
   height: 36.0rem;
   background: linear-gradient(-45deg, #ffffff 0%, #efcdcd 100%);
   transform: rotate(45deg);
}

.page-title {
   position: relative;
   z-index: 2;
   padding: 24.0rem 0 12.0rem;
}

.page-main__bg-decor {
   position: absolute;
   top: 0;
   left: 0;
   z-index: 0;
   width: 100%;
   height: 100%;
   pointer-events: none;
}

.page-main__bg-decor::before {
   content: '';
   position: absolute;
   top: 25.0rem;
   right: 10vw;
   z-index: -1;
   width: 25.0rem;
   height: 25.0rem;
   background: linear-gradient(-45deg, #ffffff 0%, #efcdcd 100%);
   transform: rotate(45deg);
}

.page-title__en {
   color: var(--colorBrand);
   font-family: var(--enText);
   font-size: 10.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNone);
}

.page-title__label {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 24.0rem;
   height: 5.0rem;
   margin-top: 2.4rem;
   background-color: var(--colorBrand);
   color: var(--colorWhite);
   font-size: 2.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNone);
   clip-path: polygon(0 50%, 2.8rem 0, calc(100% - 2.8rem) 0, 100% 50%, calc(100% - 2.8rem) 100%, 2.8rem 100%);
}

@media (max-width: 575px) {
   .page-title {
      padding: 120px 0 64px;
   }

   .page-main::before {
      top: 80px;
      left: -90px;
      width: 180px;
      height: 180px;
   }

   .page-main::after {
      display: none;
   }

   .page-main__bg-decor::before {
      top: 160px;
      right: -70px;
      width: 140px;
      height: 140px;
   }

   .page-title__en {
      font-size: 4.4rem;
   }

   .page-title__label {
      width: 170px;
      height: 36px;
      margin-top: 18px;
      font-size: 1.5rem;
      clip-path: polygon(0 50%, 18px 0, calc(100% - 18px) 0, 100% 50%, calc(100% - 18px) 100%, 18px 100%);
   }
}

/* ==========================================================================
   コンポーネント装飾：角の斜めカット（赤いコーナー）
   ========================================================================== */
.c-corner-decor {
   position: relative;
   overflow: hidden;
}

.c-corner-decor::before {
   content: '';
   position: absolute;
   top: -7.5rem;
   left: -7.5rem;
   z-index: 1;
   width: 15.0rem;
   height: 15.0rem;
   background-color: var(--colorBrand);
   transform: rotate(45deg);
   pointer-events: none;
}

@media (max-width: 575px) {
   .c-corner-decor::before {
      top: -35px;
      left: -35px;
      width: 70px;
      height: 70px;
   }
}

/* ==========================================================================
   社長メッセージ
   ========================================================================== */
.message-lead {
   position: relative;
   z-index: 1;
   display: flex;
   justify-content: space-between;
   gap: 6.4rem;
   padding-bottom: calc(28.0vw - 35.0rem);
   /* 背景ビルの伸縮（28.125vw）に連動させ、For you, for meとの間隔を常に一定（約18rem）に保つ */
}

.message-lead::after {
   content: '';
   position: absolute;
   bottom: 0;
   left: 50%;
   z-index: -1;
   width: 100vw;
   height: 28.0vw;
   background-image: url('../img/page/message-bg.webp');
   background-repeat: no-repeat;
   background-position: center bottom;
   background-size: 100% auto;
   transform: translateX(-50%);
   pointer-events: none;
}

.message-lead__text {
   flex: 1;
}

.message-lead__catch {
   color: var(--colorText);
   font-size: 4.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.message-lead__name {
   margin-top: 3.2rem;
   font-size: 2.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.message-lead__body {
   margin-top: 7.5rem;
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
   overflow-wrap: anywhere;
}

.message-lead__photo {
   width: 43%;
   height: auto;
   aspect-ratio: 55 / 59;
}

.message-lead__photo img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

@media (max-width: 575px) {
   .message-lead {
      display: block;
   }

   .message-lead::after {
      display: none;
   }

   .message-lead__text {
      width: 100%;
   }

   .message-lead__catch {
      font-size: 2.6rem;
   }

   .message-lead__name {
      margin-top: 18px;
      font-size: 1.5rem;
   }

   .message-lead__body {
      width: 100%;
      margin-top: 36px;
      font-size: 1.5rem;
   }

   .message-lead__photo {
      width: 100%;
      height: auto;
      margin-top: 40px;
   }

   .message-lead__photo img {
      height: auto;
   }
}

/* ==========================================================================
   社員インタビュー
   ========================================================================== */
.interview-tabs {
   position: relative;
   z-index: 2;
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   border-top: 0.1rem solid var(--colorBrand);
   border-bottom: 0.1rem solid var(--colorBrand);
}

.interview-tabs__button {
   position: relative;
   display: flex;
   align-items: center;
   justify-content: center;
   height: 8.0rem;
   color: var(--colorGray);
   font-family: var(--enText);
   font-size: 2.2rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNone);
   text-align: center;
   transition: color 0.3s ease;
}

.interview-tabs__button::after {
   content: '';
   display: block;
   width: 1.6rem;
   height: 1.6rem;
   margin-left: 1.2rem;
   border-right: 0.3rem solid currentColor;
   border-bottom: 0.3rem solid currentColor;
   transform: rotate(45deg) translateY(-0.7rem);
}

.interview-tabs__button.is-active {
   color: var(--colorBrand);
}

.can-hover .interview-tabs__button:hover {
   color: var(--colorBrand);
}

.interview-panel {
   position: relative;
   z-index: 1;
}

.interview-profile {
   position: relative;
   display: flex;
   justify-content: space-between;
   gap: 6.4rem;
   align-items: start;
   margin-top: 8.0rem;
}

.interview-profile__body {
   position: relative;
   z-index: 1;
   flex: 1;
   margin-top: 0.5rem;
}

.interview-profile__lead {
   display: inline;
   padding: 0.5rem 1.3rem 0.8rem;
   background-color: var(--colorBrand);
   color: var(--colorWhite);
   font-size: 3.6rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
   -webkit-box-decoration-break: clone;
   box-decoration-break: clone;
}

.interview-profile__number {
   display: grid;
   grid-template-columns: 13.8rem minmax(0, 1fr);
   column-gap: 2.0rem;
   align-items: center;
   margin-top: 4.8rem;
   color: var(--colorBrand);
}

.interview-profile__number-label {
   grid-column: 1 / -1;
   font-family: var(--enText);
   font-size: 6.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNone);
}

.interview-profile__number-value {
   font-family: var(--enText);
   font-size: 12.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNone);
}

.interview-profile__person {
   color: var(--colorText);
}

.interview-profile__department {
   font-size: 1.6rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNormal);
}

.interview-profile__name {
   margin-top: 0.8rem;
   font-size: 2.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.interview-heading {
   color: var(--colorText);
   font-size: 2.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.interview-profile .interview-heading {
   margin-top: 3.2rem;
}

.interview-text {
   margin-top: 3.2rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
}

.interview-text__paragraph+.interview-text__paragraph {
   margin-top: 3.2rem;
}

.interview-profile__photo {
   position: sticky;
   top: 12.0rem;
   width: 43%;
   height: fit-content;
}

.interview-profile__photo-img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
   aspect-ratio: 1 / 1;
}

.interview-wide-photo {
   width: 100vw;
   margin-top: 6.4rem;
   margin-left: calc(50% - 50vw);
}

.interview-wide-photo__img {
   display: block;
   width: 100%;
   height: 75.0rem;
   object-fit: cover;
}

.interview-detail {
   display: flex;
   justify-content: space-between;
   gap: 6.4rem;
   align-items: start;
   margin-top: 8.0rem;
}

.interview-detail__text {
   flex: 1;
}

.interview-detail__photo {
   width: 43%;
   height: auto;
   aspect-ratio: 1 / 1;
}

.interview-detail__photo-img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.interview-card {
   position: relative;
   overflow: hidden;
   margin-top: 8.0rem;
   padding: 8.0rem;
   background-color: var(--colorBgNeutral);
   border-radius: var(--round);
}

.interview-card__title {
   display: flex;
   align-items: center;
   gap: 3.2rem;
   color: var(--colorBrand);
}

.interview-card__title-en {
   font-family: var(--enText);
   font-size: 6.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNone);
}

.interview-card__title-ja {
   font-size: 2.3rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.private-block {
   margin-top: 6.4rem;
}

.private-block__heading {
   position: relative;
   padding-left: 4.8rem;
   color: var(--colorText);
   font-size: 2.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.private-block__heading::before {
   content: '';
   position: absolute;
   top: 50%;
   left: 0;
   width: 3.2rem;
   height: 0.2rem;
   background-color: var(--colorBrand);
   transform: translateY(-50%);
}

.private-block__text {
   margin-top: 3.2rem;
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
}

.private-block__list {
   margin-top: 2.4rem;
   margin-bottom: 2.4rem;
}

.private-block__list-item {
   position: relative;
   padding-left: 1.6rem;
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhLoose);
}

.private-block__list-item::before {
   content: '・';
   position: absolute;
   left: 0;
   top: 0;
}

.private-block--with-photo {
   display: grid;
   grid-template-columns: minmax(0, 63.2rem) 40.0rem;
   gap: 4.8rem;
   align-items: start;
}

.private-block__photo {
   display: block;
   width: 40.0rem;
   height: 40.0rem;
   object-fit: cover;
}

.private-block__photo--wide {
   display: block;
   width: 80.0rem;
   max-width: 100%;
   height: auto;
   margin-inline: auto;
   margin-top: 3.2rem;
}

.schedule-list {
   position: relative;
   margin-top: 6.4rem;
}

.schedule-list__item::after {
   content: '';
   position: absolute;
   top: 1.9rem;
   bottom: -5.0rem;
   left: 1.0rem;
   width: 0.2rem;
   background-color: var(--colorBrand);
   z-index: 0;
}

.schedule-list__item:last-child::after {
   display: none;
}

.schedule-list__item {
   position: relative;
   display: grid;
   grid-template-columns: 10.0rem minmax(0, 1fr);
   gap: 6.0rem;
}

.schedule-list__item+.schedule-list__item {
   margin-top: 4.0rem;
}

.schedule-list__item::before {
   content: '';
   position: absolute;
   top: 0.9rem;
   left: 0.1rem;
   z-index: 1;
   width: 2.0rem;
   height: 2.0rem;
   border-radius: 50%;
   background-color: var(--colorBrand);
}

.schedule-list__time {
   padding-left: 4.8rem;
   color: var(--colorBrand);
   font-family: var(--enText);
   font-size: 3.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhTight);
}

.schedule-list__heading {
   color: var(--colorText);
   font-size: 2.2rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.schedule-list__text {
   margin-top: 1.6rem;
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
}

.schedule-list__text+.schedule-list__heading {
   margin-top: 2.0rem;
}

.interview-card--schedule {
   padding-bottom: 0;
}

.interview-product-link {
   display: flex;
   justify-content: center;
   margin: 6.4rem -8.0rem 0;
   padding: 4.0rem 0;
   background-color: #999999;
}

.interview-product-button {
   width: 52.0rem;
   padding-left: 4.0rem;
}

.interview-product-button .c-btn-slide__text {
   font-size: 2.2rem;
}

.interview-panel[hidden] {
   display: none;
}

.interview-panel.is-active {
   animation: interviewFadeIn 0.8s ease-out forwards;
}

@keyframes interviewFadeIn {
   from {
      opacity: 0;
   }

   to {
      opacity: 1;
   }
}

@media (max-width: 575px) {
   .interview-tabs {
      grid-template-columns: 1fr;
      padding: 15px 0;
   }

   .interview-tabs__button {
      height: 35px;
      font-size: 2rem;
   }

   .interview-tabs__button::after {
      width: 14px;
      height: 14px;
      margin-left: 12px;
      border-right: 2px solid currentColor;
      border-bottom: 2px solid currentColor;
   }

   .interview-tabs__button.is-active::before {
      clip-path: none;
   }

   .interview-profile {
      display: flex;
      flex-direction: column;
      gap: 0;
      margin-top: 48px;
   }

   .interview-profile__body {
      display: contents;
   }

   .interview-detail {
      display: block;
      margin-top: 48px;
   }

   .interview-profile__lead {
      padding: 4px 8px 6px;
      font-size: 2.2rem;
   }

   .interview-profile__number {
      align-items: start;
      grid-template-columns: 82px minmax(0, 1fr);
      column-gap: 14px;
      margin-top: 24px;
   }

   .interview-profile__number-label {
      font-size: 3.6rem;
   }

   .interview-profile__number-value {
      font-size: 7.0rem;
   }

   .interview-profile__department {
      margin-top: 8px;
      font-size: 1.2rem;
   }

   .interview-profile__name {
      margin-top: 5px;
      font-size: 2.0rem;
   }

   .interview-heading {
      font-size: 2.1rem;
   }

   .interview-profile .interview-heading {
      margin-top: 0;
   }

   .interview-text {
      margin-top: 20px;
      font-size: 1.5rem;
   }

   .interview-profile__info {
      order: 1;
   }

   .interview-profile__photo {
      position: static;
      order: 2;
      width: 100%;
      height: auto;
      margin-top: 24px;
   }

   .interview-profile__text-area {
      order: 3;
      margin-top: 24px;
   }

   .interview-profile__photo-img {
      height: auto;
   }

   .interview-wide-photo {
      margin-top: 48px;
   }

   .interview-wide-photo__img {
      height: 320px;
   }

   .interview-detail__photo {
      width: 100%;
      height: auto;
      margin-top: 32px;
   }

   .interview-detail__photo-img {
      height: auto;
   }

   .interview-card {
      margin-top: 48px;
      padding: 40px 25px;
   }

   .interview-card--schedule {
      padding-bottom: 0;
   }

   .interview-card__title {
      display: block;
   }

   .interview-card__title-en {
      font-size: 3.4rem;
   }

   .interview-card__title-ja {
      margin-top: 8px;
      font-size: 1.6rem;
   }

   .private-block {
      margin-top: 36px;
   }

   .private-block__heading {
      padding-left: 32px;
      font-size: 1.9rem;
   }

   .private-block__heading::before {
      top: 0.75em;
      width: 22px;
   }

   .private-block__text {
      margin-top: 18px;
      font-size: 1.5rem;
   }

   .private-block__list {
      margin-top: 16px;
      margin-bottom: 16px;
   }

   .private-block__list-item {
      padding-left: 14px;
      font-size: 1.5rem;
   }

   .private-block--with-photo {
      display: block;
   }

   .private-block__photo {
      width: 100%;
      height: auto;
      margin-top: 24px;
   }

   .schedule-list {
      margin-top: 40px;
   }

   .schedule-list__item {
      grid-template-columns: 72px minmax(0, 1fr);
      gap: 12px;
      min-height: 0;
   }

   .schedule-list__item+.schedule-list__item {
      margin-top: 30px;
   }

   .schedule-list__item::after {
      left: 7px;
      top: 19px;
      bottom: -40px;
   }

   .schedule-list__item:last-child::after {
      display: none;
   }

   .schedule-list__item::before {
      top: 4px;
      left: 0;
      width: 16px;
      height: 16px;
   }

   .schedule-list__time {
      padding-left: 25px;
      font-size: 2.0rem;
   }

   .schedule-list__heading {
      margin-top: -2px;
      font-size: 1.7rem;
   }

   .schedule-list__text {
      margin-top: 10px;
      font-size: 1.4rem;
      line-height: var(--lhLoose);
   }

   .interview-product-link {
      margin: 40px -25px 0;
      padding: 28px 0;
   }

   .interview-product-button {
      width: 300px;
      height: 70px;
      padding-left: 50px;
   }

   .interview-product-button .c-btn-slide__text {
      font-size: 1.6rem;
      line-height: var(--lhNormal);
   }
}

/* ==========================================================================
   業務内容
   ========================================================================== */
.business-list {
   position: relative;
   z-index: 1;
}

.business-card {
   overflow: hidden;
   background-color: var(--colorBgNeutral);
   border-radius: var(--round);
}

.business-card+.business-card {
   margin-top: 8.0rem;
}

.business-card__body {
   padding: 8.0rem 8.0rem 0;
}

.business-card__header {
   display: flex;
   align-items: center;
   gap: 3.2rem;
   color: var(--colorBrand);
}

.business-card__title {
   font-size: 4.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.business-card__en {
   margin-top: 0.6rem;
   font-family: var(--enText);
   font-size: 2.5rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsNormal);
   line-height: var(--lhNormal);
}

.business-card__content {
   display: grid;
   grid-template-columns: minmax(0, 59.2rem) 44.0rem;
   gap: 4.8rem;
   align-items: start;
   margin-top: 4.8rem;
}

.business-card__lead {
   color: var(--colorText);
   font-size: 2.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.business-card__text {
   margin-top: 3.2rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: 4.0rem;
   overflow-wrap: anywhere;
}

.business-card__image {
   display: flex;
   align-items: center;
   justify-content: center;
   width: 44.0rem;
   background-color: var(--colorWhite);
}

.business-card__image img {
   display: block;
   width: 100%;
   height: auto;
}

.business-card__content--cloud {
   grid-template-columns: minmax(0, 58.2rem) 40.0rem;
   gap: 4.8rem;
}

.business-results {
   align-self: stretch;
   min-height: 28.0rem;
   padding-left: 4.8rem;
   border-left: 0.1rem solid var(--colorBrand);
}

.business-results__title {
   color: var(--colorBrand);
   font-size: 2.2rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: 4.0rem;
}

.business-results__list {
   margin: 1.0rem 0 0 0.5rem;
}

.business-results__item {
   position: relative;
   padding-left: 1.6rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
   overflow-wrap: anywhere;
}

.business-results__item+.business-results__item {
   margin-top: 1.2rem;
}

.business-results__item::before {
   content: '';
   position: absolute;
   top: 1.9rem;
   left: 0;
   width: 0.5rem;
   height: 0.5rem;
   border-radius: 50%;
   background-color: currentColor;
}

.business-card__button-area {
   display: flex;
   justify-content: center;
   margin-top: 8.0rem;
   padding: 4.0rem 0;
   background-color: #999999;
}

.business-card__button {
   width: 52.0rem;
   padding-left: 7.0rem;
}

.business-card__button .c-btn-slide__text {
   font-size: 2.2rem;
}

.business-future {
   position: relative;
   z-index: 1;
   display: grid;
   grid-template-columns: 47.0rem minmax(0, 72.6rem);
   gap: 6.4rem;
   align-items: start;
   margin-top: 12.0rem;
}

.business-future__visual {
   position: relative;
   overflow: hidden;
   align-self: stretch;
   background-image: url("../img/page/business-future.webp");
   background-size: cover;
   background-position: center top;
   background-repeat: no-repeat;
   margin-left: calc(-1 * max(8.0rem, 50vw - 62.0rem));
   width: calc(100% + max(8.0rem, 50vw - 62.0rem));
}

.business-future__copy {
   position: absolute;
   top: 10.8rem;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   flex-direction: column;
   align-items: center;
   text-align: center;
   width: max-content;
   color: var(--colorWhite);
}

.business-future__label {
   position: relative;
   z-index: 1;
   display: flex;
   align-items: center;
   justify-content: center;
   width: 32.8rem;
   height: 5.0rem;
   font-size: 2.5rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNone);
}

.business-future__label::before {
   content: '';
   position: absolute;
   top: 0;
   left: 0;
   z-index: -1;
   width: 100%;
   height: 100%;
   background-color: var(--colorBrand);
   transform: skewX(-15deg);
}

.business-future__catch {
   margin-top: 2.0rem;
   font-size: 7.0rem;
   font-weight: var(--weightBl);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.business-future__text-area {
   padding-top: 0;
   padding-right: 0;
}

.business-future__block+.business-future__block {
   margin-top: 4.0rem;
}

.business-future__heading {
   color: var(--colorText);
   font-size: 2.8rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.business-future__text {
   margin-top: 3.2rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
   overflow-wrap: anywhere;
}

@media (max-width: 575px) {
   .business-card {
      border-radius: 8px;
   }

   .business-card+.business-card {
      margin-top: 40px;
   }

   .business-card__body {
      padding: 40px 25px 0;
   }

   .business-card__header {
      display: block;
   }

   .business-card__title {
      font-size: 2.4rem;
   }

   .business-card__en {
      margin-top: 4px;
      font-size: 1.6rem;
   }

   .business-card__content,
   .business-card__content--cloud {
      display: block;
      margin-top: 28px;
   }

   .business-card__lead {
      font-size: 2.0rem;
      line-height: var(--lhLoose);
   }

   .business-card__text {
      margin-top: 20px;
      font-size: 1.5rem;
      line-height: var(--lhVeryLoose);
      word-break: break-all;
   }

   .business-card__image {
      width: 100%;
      margin-top: 28px;
   }

   .business-card__image--product img,
   .business-card__image--sound img {
      width: 100%;
   }

   .business-results {
      min-height: 0;
      margin-top: 28px;
      padding-left: 20px;
      border-left-width: 1px;
   }

   .business-results__title {
      font-size: 1.7rem;
      line-height: var(--lhNormal);
   }

   .business-results__list {
      margin-top: 10px;
   }

   .business-results__item {
      padding-left: 14px;
      font-size: 1.5rem;
      word-break: break-all;
   }

   .business-results__item+.business-results__item {
      margin-top: 8px;
   }

   .business-results__item::before {
      top: 1.0em;
      width: 4px;
      height: 4px;
   }

   .business-card__button-area {
      margin-top: 40px;
      padding: 28px 0;
   }

   .business-card__button {
      width: 300px;
      padding-left: 24px;
   }

   .business-card__button .c-btn-slide__text {
      font-size: 1.6rem;
   }

   .business-future {
      display: block;
      width: 100%;
      margin-top: 56px;
      margin-left: 0;
   }

   .business-future__visual {
      width: calc(100% + 40px);
      margin-left: -20px;
      aspect-ratio: 390 / 420;
      background-position: center 20%;
   }

   .business-future__copy {
      top: 40px;
   }

   .business-future__label {
      width: 210px;
      height: 36px;
      font-size: 1.6rem;
   }

   .business-future__catch {
      margin-top: 14px;
      font-size: 4.0rem;
   }

   .business-future__text-area {
      padding-top: 40px;
      padding-right: 0;
   }

   .business-future__block+.business-future__block {
      margin-top: 32px;
   }

   .business-future__heading {
      font-size: 2.0rem;
      line-height: var(--lhLoose);
   }

   .business-future__text {
      margin-top: 18px;
      font-size: 1.5rem;
      line-height: var(--lhVeryLoose);
      word-break: break-all;
   }
}

/* ==========================================================================
   働く環境
   ========================================================================== */
.environment-section-title {
   position: relative;
   display: flex;
   align-items: center;
   min-height: 5.3rem;
   padding-left: 3.86rem;
   padding-bottom: 1.2rem;
   color: var(--colorText);
   font-size: 3.5rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
   border-bottom: 0.1rem solid var(--colorBrand);
}

.environment-section-title::before {
   content: '';
   position: absolute;
   top: 0.5em;
   left: 0;
   width: 2.4rem;
   height: 2.4rem;
   background-color: var(--colorBrand);
   clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%);
}

.environment-section-lead {
   margin-top: 3.0rem;
   color: var(--colorText);
   font-size: 2.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
   overflow-wrap: anywhere;
}

.environment-section-lead span {
   font-size: 1.8rem;
   font-weight: var(--weightM);
}

.environment-numbers {
   position: relative;
   z-index: 1;
}

.environment-numbers__list {
   display: grid;
   grid-template-columns: repeat(3, 1fr);
   gap: 4.0rem 4.1rem;
   margin-top: 5.7rem;
}

.environment-numbers__item {
   display: flex;
   align-items: center;
   justify-content: center;
   aspect-ratio: 1 / 1;
   overflow: hidden;
   border-radius: var(--round);
}

.environment-numbers__item--red {
   background-color: var(--colorAccentRed);
}

.environment-numbers__item--blue {
   background-color: var(--colorAccentBlue);
}

.environment-numbers__item img {
   display: block;
   width: 100%;
   height: 100%;
   object-fit: contain;
}

.environment-training {
   position: relative;
   z-index: 1;
   margin-top: 12.0rem;
}

.environment-training__diagram {
   display: block;
   margin-top: 4.0rem;
}

.environment-training__diagram img {
   display: block;
   width: 100%;
   height: auto;
}

.environment-training__cards {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 4.0rem;
   margin-top: 6.4rem;
}

.environment-training-card {
   display: flex;
   flex-direction: column;
   overflow: hidden;
   border-radius: var(--round);
   background-color: var(--colorBgNeutral);
}

.environment-training-card__body {
   flex-grow: 1;
   padding: 4.0rem 4.0rem 0;
}

.environment-training-card__title {
   color: var(--colorBrand);
   font-size: 3.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
   border-left: 0.5rem solid var(--colorBrand);
   padding-left: 1.5rem;
}

.environment-training-card__title span {
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsNormal);
   white-space: nowrap;
}

.environment-training-card__text {
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
   overflow-wrap: anywhere;
}

.environment-training-card__title+.environment-training-card__text,
.environment-training-card__text+.environment-training-card__detail {
   margin-top: 1.6rem;
}

.environment-training-card__image {
   margin-top: 2.4rem;
   padding: 0 4.0rem 4.0rem;
}

.environment-training-card__image img {
   display: block;
   width: 100%;
   aspect-ratio: 52 / 36;
   object-fit: cover;
}

.environment-training-card--wide {
   grid-column: 1 / -1;
   padding: 4.0rem;
}

.environment-training-card__content {
   display: grid;
   grid-template-columns: minmax(0, 60.0rem) 52.0rem;
   column-gap: 4.0rem;
   margin-top: 4.0rem;
}

.environment-training-card--wide .environment-training-card__image {
   padding: 0;
}

.environment-training-card__detail {
   display: grid;
   gap: 1.6rem;
}

.environment-training-card__subtitle {
   color: var(--colorBrand);
   font-size: 2.2rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.environment-training-card__subtitle+.environment-training-card__text {
   margin-top: 0.8rem;
}

.environment-training-card__note {
   margin-top: 4.0rem;
   border-top: 0.1rem solid var(--colorBrand);
   padding-top: 4.0rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: 4.0rem;
   overflow-wrap: anywhere;
}

.environment-education {
   position: relative;
   z-index: 1;
   margin-top: 12.0rem;
}

.environment-section-lead small {
   font-size: 1.6rem;
}

.environment-education__swipe-note {
   display: none;
}

.environment-education__chart {
   margin-top: 4.0rem;
   overflow-x: auto;
   -webkit-overflow-scrolling: touch;
}

.environment-education__chart img {
   display: block;
   width: 100%;
   height: auto;
}

.environment-welfare {
   position: relative;
   z-index: 1;
   margin-top: 12.0rem;
}

.environment-welfare__list {
   display: grid;
   grid-template-columns: repeat(2, minmax(0, 1fr));
   gap: 4.0rem;
   margin-top: 6.4rem;
}

.environment-welfare-card {
   min-height: 18.1rem;
   padding: 4.0rem;
   border-radius: var(--round);
   background-color: var(--colorBgNeutral);
}

.environment-welfare-card__title {
   border-left: 0.5rem solid var(--colorBrand);
   padding-left: 1.5rem;
   color: var(--colorBrand);
   font-size: 3.0rem;
   font-weight: var(--weightB);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhNormal);
}

.environment-welfare-card__text {
   margin-top: 1.6rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: 4.0rem;
   overflow-wrap: anywhere;
}

@media (max-width: 575px) {
   .environment-section-title {
      min-height: 32px;
      padding-left: 25px;
      padding-bottom: 8px;
      font-size: 2.0rem;
      line-height: var(--lhNormal);
   }

   .environment-section-title::before {
      top: 0.4em;
      width: 15px;
      height: 15px;
   }

   .environment-section-lead {
      margin-top: 20px;
      font-size: 1.5rem;
      line-height: var(--lhVeryLoose);
      word-break: break-all;
   }

   .environment-numbers__list {
      grid-template-columns: 1fr;
      gap: 20px;
      margin-top: 32px;
   }

   .environment-numbers__item {
      border-radius: 10px;
   }

   .environment-training {
      margin-top: 48px;
   }

   .environment-training__diagram {
      margin-top: 28px;
   }

   .environment-training__cards {
      display: block;
      margin-top: 40px;
   }

   .environment-training-card+.environment-training-card {
      margin-top: 24px;
   }

   .environment-training-card__body {
      padding: 30px 24px 0;
   }

   .environment-training-card__title {
      font-size: 2.2rem;
   }

   .environment-training-card__title span {
      display: block;
      margin-top: 4px;
      font-size: 1.4rem;
   }

   .environment-training-card__text {
      font-size: 1.5rem;
      word-break: break-all;
   }

   .environment-training-card__title+.environment-training-card__text,
   .environment-training-card__text+.environment-training-card__detail {
      margin-top: 16px;
   }

   .environment-training-card__image {
      margin-top: 24px;
      padding: 0 24px 30px;
   }

   .environment-training-card--wide {
      display: block;
      padding: 0;
   }

   .environment-training-card--wide .environment-training-card__header {
      padding: 30px 24px 0;
   }

   .environment-training-card__content {
      display: block;
      margin-top: 24px;
   }

   .environment-training-card--wide .environment-training-card__detail {
      padding: 0 24px;
   }

   .environment-training-card--wide .environment-training-card__image {
      margin-top: 24px;
      padding: 0 24px;
   }

   .environment-training-card__subtitle {
      font-size: 1.8rem;
   }

   .environment-training-card__subtitle+.environment-training-card__text {
      margin-top: 8px;
   }

   .environment-training-card__note {
      margin-top: 24px;
      padding: 24px 24px 30px;
      font-size: 1.5rem;
      line-height: var(--lhVeryLoose);
      word-break: break-all;
   }

   .environment-education {
      margin-top: 48px;
   }

   .environment-section-lead span {
      font-size: 1.4rem;
   }

   .environment-education__swipe-note {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      margin-top: 28px;
      color: var(--colorBrand);
      font-size: 1.4rem;
      font-weight: var(--weightB);
      letter-spacing: var(--lsWideA);
   }

   .environment-education__swipe-note svg {
      animation: swipeHint 1.6s ease-in-out infinite;
   }

   .environment-education__chart {
      margin-top: 12px;
   }

   @keyframes swipeHint {

      0%,
      100% {
         transform: translateX(-3px);
      }

      50% {
         transform: translateX(3px);
      }
   }

   .environment-education__chart img {
      width: 800px;
      max-width: none;
   }

   .environment-welfare {
      margin-top: 48px;
   }

   .environment-welfare__list {
      display: block;
      margin-top: 32px;
   }

   .environment-welfare-card {
      min-height: 0;
      padding: 30px 24px;
   }

   .environment-welfare-card+.environment-welfare-card {
      margin-top: 20px;
   }

   .environment-welfare-card__title {
      font-size: 2.0rem;
   }

   .environment-welfare-card__text {
      margin-top: 12px;
      font-size: 1.5rem;
      line-height: var(--lhVeryLoose);
      word-break: break-all;
   }
}

/* ==========================================================================
   404 NOT FOUND
   ========================================================================== */
.page-title__label--notfound {
   width: 32.0rem;
}

.notfound-content {
   padding-block: 8.0rem 12.0rem;
   text-align: center;
}

.notfound-content__text {
   margin-bottom: 5.0rem;
   color: var(--colorText);
   font-size: 1.8rem;
   font-weight: var(--weightM);
   letter-spacing: var(--lsWideA);
   line-height: var(--lhVeryLoose);
}

.notfound-content__btn-wrap {
   display: flex;
   justify-content: center;
}

.notfound-content__btn-wrap .c-btn-slide {
   width: 38.0rem;
   max-width: 100%;
}

.notfound-content__btn-wrap .c-btn-slide--border {
   border: 0.2rem solid var(--colorBrand);
}

@media (max-width: 575px) {
   .page-title__label--notfound {
      width: 240px;
   }

   .notfound-content {
      padding-block: 40px 60px;
   }

   .notfound-content__text {
      margin-bottom: 30px;
      padding-inline: 15px;
      font-size: 1.5rem;
      line-height: var(--lhLoose);
   }

   .notfound-content__btn-wrap .c-btn-slide {
      width: 280px;
   }

   .notfound-content__btn-wrap .c-btn-slide--border {
      border: 2px solid var(--colorBrand);
   }
}