/* 共通フォント・余白設定 */
body {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 100%;
  margin: 0;
  padding: 0;
  background-color: #fff;
  color: #333;
}
.bukai article {
  margin: 0;
}
/* セクション全体の下マージン */
.section {
  padding-left: 0;
  padding-right: 0;
  max-width: 750px;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

/* 見出し装飾 */
.section-heading {
  display: block;
  border-bottom: 5px solid #003893;
  margin: 2rem 0 1rem 0;
  padding-bottom: 3px;
  width: 100%; /* 必要に応じて追加 */
  box-sizing: border-box;
}

.section-heading span {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-size: 2rem;
  font-weight: bold;
  padding: 0.7rem 1rem 0.7rem 1.5rem;
  border-left: 15px solid #4fb5fb;
  letter-spacing: 1px;
}

/* 段落共通装飾 */
.section-text {
  display: block;
  text-align: justify;
  line-height: 1.9;
  font-size: 1.5rem;
  margin: 0 0 1rem 0;
  max-width: 100%;
  box-sizing: border-box;
}

/* 画像中央寄せ（ネットワーク画像など） */
.section-image {
  text-align: center;
  margin: 1rem 0 2rem 0;
}

.section-image img {
  max-width: 100%;
  height: auto;
  display: inline-block;
}

/* 活動カード一覧 */
.activities {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin: 2rem 0 1rem 0;
  max-width: 750px;
  flex-wrap: wrap;
  box-sizing: border-box;
}

/* 各活動カード */
.activity-card {
  display: flex;
  flex-direction: column;
  text-align: center;
  width: calc((100% - 3rem) / 4);
  margin: 0; /* 中央寄せは不要 */
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  background: #fff;
  box-sizing: border-box;
}

.activity-card p.title {
  background: #003893;
  color: #fefefe;
  font-weight: bold;
  letter-spacing: 1px;
  font-size: 1.3rem;
  margin: 0;
  padding: 0.8rem 0;
  border-radius: 1rem 1rem 0 0;
}

.activity-card img {
  border-left: 3px solid #003893;
  border-right: 3px solid #003893;
  width: 100%;
  height: auto;
  display: block;
  box-sizing: border-box;
}

.activity-card p.description {
  text-align: justify;
  padding: 0.7rem;
  border: 3px solid #003893;
  border-top: none;
  border-radius: 0 0 1rem 1rem;
  margin: 0;
  letter-spacing: -0.2px;
  background: #fff;
}

/* お問い合わせセクション */
.contact-section {
  padding-top: 0.5rem;
  line-height: 1.9;
  font-size: 1.5rem;
  text-align: justify;
  max-width: 750px;
  box-sizing: border-box;
  margin: 0 auto 3rem auto;
}

.contact-grid {
  display: flex;
  gap: 3rem;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
}

.contact-grid p {
  font-size: 1.3rem;
  line-height: 1.7;
  text-align: justify;
  margin: 0;
  max-width: 350px;
  flex: 1 1 auto;
}

/* お問い合わせ見出し */
.contact-heading {
  font-size: 1.5rem;
  font-weight: bold;
  letter-spacing: 2px;
  line-height: 2.0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.material-symbols-outlined {
  vertical-align: bottom;
  font-size: 2.5rem;
  color: #003893;
}

.org-name {
  font-size: 1.7rem;
  font-weight: bold;
  line-height: 1.4;
  display: block;
  margin: 0.5rem 0;
}

/* ヘッダー画像リンク */
.khc-header-img {
  width: 100%;
  height: auto;
  display: block;
}

.khc-en-link img {
  display: block;
  cursor: pointer;
  max-width: 100%;
  height: auto;
}

@media screen and (max-width: 768px) {
  .activities {
    justify-content: center;
    gap: 1rem;
  }
  .activity-card {
    width: 90vw;
    max-width: 320px;
  }
  .contact-grid {
    flex-direction: column;
    gap: 2rem;
  }
  .contact-grid p {
    max-width: 100%;
  }
  .section {
    padding-left: 1rem;
    padding-right: 1rem;
    margin-right: 0;
  }
}

.member-section {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 750px;
  max-width: 100%;
  margin: 0 auto;
  gap: 20px;
  font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* 左カラム */
.member-left {
  flex: 0 0 55%;
  background: linear-gradient(white, #e9fffc);
  padding: 20px;
  border-radius: 8px;
}

/* タイトル */
.member-title .main-title {
  font-size: 4rem;
  font-weight: bold;
  text-align: center;
  color: #003399;
}

.main-title .main-number {
  font-size: 6rem;
  color: #003399;
}

.member-title .subtitle {
  text-align: center;
  font-size: 14px;
  color: #333;
  margin-top: 4px;
}

/* 会員リスト：テーブル化 */
.member-table {
  width: 100%;
  margin-top: 20px;
  border-collapse: collapse;
  font-family: "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", "MS Mincho", serif;
  font-size: 2rem;
  line-height: 1.2;
}

.member-table tr:not(.underline) td {
  padding: 5px 0 0 20px;
  vertical-align: bottom;
}

/* 数字セルと業種セル 両方中央揃え */
.number-cell {
  width: 100px;
  text-align: center;
  vertical-align: middle;
  font-weight: bold;
}

.label-cell {
  text-align: center;
  vertical-align: middle;
  font-weight: normal;
}

/* 数字と単位を分けてサイズ調整 */
.number {
  font-size: 5rem;
  font-weight: bold;
  line-height: 1;
}

.unit {
  font-size: 2rem;
  font-weight: normal;
}

/* 色指定 */
.navy {
  color: #003399;
}

.skyblue {
  color: #00a9e0;
}

/* 下線行（装飾用） */
.member-table tr.underline {
  height: 4px;
  line-height: 0;
}

.member-table tr.underline td {
  padding: 0;
}

.underline.navy td {
  background-color: #003399;
}

.underline.skyblue td {
  background-color: #00a9e0;
}

/* 右カラム */
.member-right {
  width: 300px;
  flex-shrink: 0;
  display: flex;
  align-items: center; /* ボタン上下中央揃え */
}

.member-button {
  display: block;
  padding: 12px;
  background-color: #ffffff;
  border: 3px solid #003399;
  border-radius: 16px;
  text-align: center;
  text-decoration: none;
  color: #003399;
  transition: transform 0.2s ease;
  width: 100%;
}

.member-button:hover {
  color: #003399;
  text-decoration: none;
}

.button-title {
  font-size: 2rem;
  margin-bottom: 4px;
}

.button-link {
  font-size: 2.5rem;
  font-weight: bold;
  text-shadow: 1px 1px 0 #0cf;
}

.button-click {
  margin-top: 6px;
  font-size: 3rem;
  font-weight: bold;
  color: #003399;
  text-shadow: 2px 2px 0 #ff0;
}