/*コンテナー（サイト全体を囲むブロック）
---------------------------------------------------------------------------*/
#sustainability_container_common {
  max-width: 1200px;
  padding: 0 3vw;
  margin: 0 auto;
  box-sizing: border-box;
}

/*h2(タイトル設定)
---------------------------------------------------------------------------*/
.organization_iso {
  font-weight: bold;
  border-bottom: 2px solid #4c9ac0;
  padding: 0.3em;
  margin-bottom: 0.3em;
}
.organization_iso:first-letter {
  font-size: 1.5em;
  color: #4c9ac0;
}

/*ISO(表)
---------------------------------------------------------------------------*/
.company-profile {
  width: 100%;
  padding: 50px 20px;
  box-sizing: border-box;
  font-family: "Noto Sans JP", sans-serif;
  color: #32454D;
  line-height: 1.8;
}

.table-container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  background-color: #ffffff;
  border-radius: 20px;
  padding: 10px 0; /* 上下の余白 */
}

/*-----------------------------------
  テーブル本体のデザイン
-----------------------------------*/
.profile-table {
  width: 90%; /* コンテナ内で少し小さくして左右の余白を作る */
  margin: 0 auto;
  border-collapse: collapse; /* 隙間をなくす */
  font-size: 15px;
}

.profile-table th,
.profile-table td {
  padding: 20px;
  text-align: left;
  position: relative;
  vertical-align: top;
}

.profile-table th {
  width: 150px; /* PCでの項目幅 */
  font-weight: bold;
}

/* 下線（共通） */
.profile-table tr {
  border-bottom: 1px solid #565656;
}

/* 最後の行だけ下線を消す */
.profile-table tr:last-child {
  border-bottom: none;
}

/*-----------------------------------
  thの右側の縦線（疑似要素）
-----------------------------------*/
.profile-table th::after {
  content: "";
  display: block;
  width: 2px;
  height: 50%; /* 線の高さ（余白を作るポイント） */
  background-color: #565656;
  position: absolute;
  right: 0;
  top: 25%; /* 中央に配置 */
  border-radius: 40px;
}

/*-----------------------------------
  スマホ対応（レスポンシブ）
-----------------------------------*/
@media screen and (max-width: 768px) {
  .profile-table {
    width: 90%;
  }

  /* テーブル要素をブロック化して縦積みにする */
  .profile-table tr,
  .profile-table th,
  .profile-table td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  .profile-table tr {
    margin-bottom: 5px;
    border-bottom: 1px solid #565656;
  }

  .profile-table tr:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
  }

  .profile-table th {
    padding: 10px 0 5px;
    width: 100%;
  }

  .profile-table td {
    padding: 0 0 10px;
  }

  /* スマホではth右の縦線を消す */
  .profile-table th::after {
    display: none;
  }
}

/*メイン構文
---------------------------------------------------------------------------*/
.sustainability_policy {
  padding: 5px 20px;
}

.sustainability_policy_inner {
  max-width: 1000px;
  margin: 0 auto;
  text-align: left;
}

/* リード文 */
.sustainability_lead {
  font-size: 16px;
  line-height: 2;
  color: #222;
  margin-bottom: 70px;
  font-family: "Noto Sans JP", sans-serif;
}

/* 重点項目 */
.sustainability_items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-bottom: 80px;
  font-family: "Noto Sans JP", sans-serif;
}

.sustainability_item {
  padding: 30px;
  border: 1px solid #dbe4ee;
  background: #fff;
  font-size: 20px;
  font-weight: 600;
  color: #12355b;
  font-family: "Noto Sans JP", sans-serif;
}

/* 本文 */
.sustainability_text p {
  font-size: 16px;
  line-height: 2.2;
  color: #333;
  margin-bottom: 40px;
  font-family: "Noto Sans JP", sans-serif;
}

/* スマホ */
@media screen and (max-width: 768px) {

  .sustainability_policy {
    padding: 80px 20px;
  }

  .sustainability_items {
    grid-template-columns: 1fr;
  }

  .sustainability_lead {
    font-size: 14px;
    line-height: 1.9;
  }

  .sustainability_text p {
    font-size: 14px;
    line-height: 2;
  }

  .sustainability_item {
    font-size: 14px;
    padding: 24px;
  }

}

/*サステナビリティ組織体制
---------------------------------------------------------------------------*/
.sustainability_structure {
  padding: 20px 20px;
  overflow: hidden;
}

.sustainability_structure_inner {
  max-width: 1000px;
  margin: 0 auto;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 80px;
  font-family: "Noto Sans JP", sans-serif;
}

.sustainability_structure_content {
  flex: 1;
}

.structure_subtitle {
  font-size: 16px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #3c6e91;
  margin-bottom: 20px;
  font-weight: 600;
}

.structure_title {
  font-size: clamp(38px, 5vw, 68px);
  line-height: 1.2;
  color: #0d1b2a;
  margin-bottom: 50px;
  font-weight: 700;
}

.structure_text {
  font-size: 16px;
  line-height: 2.1;
  color: #333;
  margin-bottom: 35px;
}

.structure_points {
  margin-top: 60px;
}

.structure_point {
  display: flex;
  align-items: center;
  gap: 24px;

  padding: 24px 0;
  border-bottom: 1px solid #d6e0ea;

  font-size: 20px;
  font-weight: 500;
  color: #222;
}

.structure_point span {
  font-size: 14px;
  font-weight: 700;
  color: #3c6e91;
  letter-spacing: 0.15em;
}

.sustainability_structure_image {
  flex: 1;
  position: relative;
}

.sustainability_structure_image img {
  position: relative;
  z-index: 2;

  width: 100%;
  display: block;
}

/* ==========================
   Tablet
========================== */
@media screen and (max-width: 1024px) {

  .sustainability_structure_inner {
    flex-direction: column;
    gap: 40px;
  }

  .structure_title {
    font-size: 36px;
  }

}

/* ==========================
   SP
========================== */
@media screen and (max-width: 768px) {

  .sustainability_structure {
    padding: 90px 20px;
  }

  .sustainability_structure_inner {
    flex-direction: column;
    gap: 60px;
  }

  .structure_title {
    font-size: 42px;
    margin-bottom: 35px;
  }

  .structure_text {
    font-size: 14px;
    line-height: 2;
  }

  .structure_point {
    font-size: 14px;
    gap: 16px;
  }

  .sustainability_structure_image::before {
    top: 15px;
    left: 15px;
  }

}