/* ==========================================================================
   会社を知る（Figma: 1:86）
   ========================================================================== */
.p-company__body {
  padding-top: var(--space-48);
  padding-bottom: 12.5rem; /* 200px */
}

/* --------------------------------------------------------------------------
   事業紹介
   -------------------------------------------------------------------------- */
.p-company-business {
  margin-top: var(--space-120);
}

.p-company-business__intro {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-40);
}

/* スキーム図（2026-10-28 クライアント支給の SVG に差し替え。Figma: Frame 105 / 1:104 は HTML の3要素の図） */
.p-company-diagram {
  display: block;
  flex: 0 1 47.5rem; /* 760px。見出しの横に収まる最大幅（図中の小さい文字が 15px 前後になる） */
  min-width: 0;
  margin-top: var(--space-48);
}

.p-company-diagram img {
  width: 100%;
  height: auto;
}

/* 事業リスト */
.p-company-business__list {
  margin-top: var(--space-96);
}

.p-company-business__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-64);
}

.p-company-business__item + .p-company-business__item {
  margin-top: var(--space-48);
  padding-top: var(--space-48);
  border-top: 1px solid var(--color-border);
}

.p-company-business__text {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--space-48);
  min-width: 0;
}

.p-company-business__num {
  position: absolute;
  top: 0;
  right: calc(46.875% + var(--space-64)); /* 画像600px + gap64px の左 */
  color: var(--color-main);
  font-family: var(--font-base);
  font-size: var(--fs-32);
  font-weight: var(--fw-medium);
  line-height: var(--lh-snug);
}

.p-company-business__item + .p-company-business__item .p-company-business__num {
  top: var(--space-48);
}

.p-company-business__desc-wrap {
  display: flex;
  flex-direction: column;
  gap: var(--space-32);
}

.p-company-business__title {
  font-family: var(--font-ja);
  font-size: var(--fs-32);
  font-weight: var(--fw-medium);
  line-height: var(--lh-snug);
}

.p-company-business__desc {
  font-family: var(--font-ja);
  font-size: var(--fs-16);
  line-height: var(--lh-relaxed);
}

.p-company-business__img {
  flex-shrink: 0;
  width: 46.875%; /* 600 / 1280 */
  overflow: hidden;
  border-radius: var(--radius-md);
}

.p-company-business__img img {
  width: 100%;
  aspect-ratio: 600 / 400;
  object-fit: cover;
}

/* --------------------------------------------------------------------------
   数字で見るイマス
   -------------------------------------------------------------------------- */
.p-company-numbers {
  padding-top: var(--space-120);
  padding-bottom: 16.25rem; /* 260px */
  border-bottom: 1px solid var(--color-border);
  background-color: var(--color-bg-gray);
}

.p-company-numbers__list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: var(--space-64);
}

.p-company-numbers__item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--space-16);
  padding: var(--space-48);
}

.p-company-numbers__item:not(:nth-child(3n)) {
  border-right: 1px solid var(--color-border);
}

.p-company-numbers__item:nth-child(n + 4) {
  border-top: 1px solid var(--color-border);
}

.p-company-numbers__text {
  min-width: 0;
  color: var(--color-main);
  font-family: var(--font-ja);
  font-weight: var(--fw-medium);
}

.p-company-numbers__label {
  font-size: var(--fs-24);
  line-height: var(--lh-none);
}

.p-company-numbers__value {
  display: flex;
  align-items: flex-end;
  gap: var(--space-8);
  margin-top: var(--space-24);
  white-space: nowrap;
}

.p-company-numbers__num {
  font-family: var(--font-base);
  font-size: var(--fs-64);
  line-height: var(--lh-none);
}

.p-company-numbers__decimal {
  font-size: var(--fs-24);
}

.p-company-numbers__unit {
  font-size: var(--fs-24);
  line-height: var(--lh-normal);
}

.p-company-numbers__unit--percent {
  font-family: var(--font-base);
  font-size: var(--fs-48);
  line-height: 1.1;
}

.p-company-numbers__note {
  margin-top: var(--space-12);
  color: var(--color-text);
  font-size: var(--fs-12);
  line-height: var(--lh-none);
  font-feature-settings: "palt" 1;
}

.p-company-numbers__icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
}

/* --------------------------------------------------------------------------
   Tablet（769〜1100px）
   -------------------------------------------------------------------------- */
@media (max-width: 1100px) and (min-width: 769px) {
  .p-company-business__intro {
    flex-direction: column;
  }

  .p-company-diagram {
    flex: none;
    width: 100%;
    max-width: 60rem; /* 960px（原寸） */
    align-self: center;
  }

  .p-company-business__num,
  .p-company-business__item + .p-company-business__item .p-company-business__num {
    position: static;
    margin-bottom: calc(var(--space-24) - var(--space-48));
  }

  .p-company-numbers__item {
    padding: var(--space-32);
  }

  .p-company-numbers__icon {
    width: 2.5rem;
    height: 2.5rem;
  }
}

/* --------------------------------------------------------------------------
   SP（〜768px）
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .p-company__body {
    padding-top: var(--space-32);
    padding-bottom: var(--space-120);
  }

  .p-company-business {
    margin-top: var(--space-64);
  }

  .p-company-business__intro {
    flex-direction: column;
  }

  /* SP は縦並びの図（business-scheme-sp.svg 360×796）に切り替わる */
  .p-company-diagram {
    flex: none;
    width: 100%;
    max-width: 22.5rem; /* 360px（原寸） */
    margin-top: 0;
    align-self: center;
  }

  .p-company-business__list {
    margin-top: var(--space-64);
  }

  .p-company-business__item {
    flex-direction: column-reverse;
    align-items: stretch;
    gap: var(--space-24);
  }

  .p-company-business__item + .p-company-business__item {
    margin-top: var(--space-40);
    padding-top: var(--space-40);
  }

  .p-company-business__text {
    gap: var(--space-24);
  }

  .p-company-business__num,
  .p-company-business__item + .p-company-business__item .p-company-business__num {
    position: static;
    margin-bottom: calc(var(--space-12) * -1);
  }

  .p-company-business__desc-wrap {
    gap: var(--space-16);
  }

  .p-company-business__img {
    width: 100%;
  }

  .p-company-numbers {
    padding-top: var(--space-80);
    padding-bottom: 10rem;
  }

  .p-company-numbers__list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: var(--space-40);
  }

  .p-company-numbers__item {
    flex-direction: column-reverse;
    justify-content: flex-end;
    gap: var(--space-12);
    padding: var(--space-24) var(--space-12);
  }

  .p-company-numbers__item:not(:nth-child(3n)),
  .p-company-numbers__item:nth-child(n + 4) {
    border: 0;
  }

  .p-company-numbers__item:nth-child(odd) {
    border-right: 1px solid var(--color-border);
  }

  .p-company-numbers__item:nth-child(n + 3) {
    border-top: 1px solid var(--color-border);
  }

  .p-company-numbers__label {
    font-size: var(--fs-16);
    line-height: var(--lh-snug);
  }

  .p-company-numbers__value {
    gap: var(--space-4);
    margin-top: var(--space-12);
  }

  .p-company-numbers__num {
    font-size: 2.5rem;
  }

  .p-company-numbers__decimal,
  .p-company-numbers__unit {
    font-size: var(--fs-16);
  }

  .p-company-numbers__unit--percent {
    font-size: 1.75rem;
  }

  .p-company-numbers__icon {
    width: 2.25rem;
    height: 2.25rem;
  }
}
