/* ========== 共通設定（1カラム中央 / 本文930px） ========== */
.info-page {
  background: #fff;
  color: #222;
  line-height: 1.9;
}
.info-page .container {
  max-width: 1460px;
  margin: 0 auto;
}
.info-body {
  width: min(930px, 100%);
  margin: 32px auto 64px;
}

/* セクション（基本は下ボーダー。先頭だけ上にも） */
.info-section {
  /* border-bottom: 2px solid #d9d9d9; */
  padding: 70px 0 0p;
  margin-bottom: 100px;
}
.info-section__company {
  min-width: 930px;
  margin: 0 auto 100px;
}

/* ラベル=24px / 値=20px（本文系） */
.info-section h2 {
  font-size: 24px;
  font-weight: 700;
  color: #111;
  margin: 0 0 8px;
} /* ← 黒に修正 */
.info-section p {
  font-size: 20px;
  margin: 0 0 12px;
}
.info-section li {
  font-size: 20px;
}
.info-section ul {
  margin: 0 0 12px 1.2em;
  padding: 0;
}

/* 「・」付きリスト（推奨環境 など） */
.list-dots {
  list-style: none;
  margin: 0 0 12px;
  padding: 0 0 0 1.2em;
}
.list-dots li::before {
  content: "・";
  display: inline-block;
  width: 1.2em;
  margin-left: -1.2em;
}

/* 「■」付きの小見出し（値と同じ20px） */
.info-square-title {
  font-size: 20px;
  font-weight: 700;
  margin: 18px 0 6px;
}

/* 事業案内の表（dl行） */
.info-dl {
  margin: 0;
  padding: 0;
}
.info-row {
  display: grid;
  grid-template-columns: 150px calc(50% - 150px) 50%;
  gap: 0;
  align-items: center;
  padding: 32px 0;
  border-top: 2px solid #d9d9d9;
}
.info-row:last-child {
  border-bottom: 2px solid #d9d9d9;
}
.info-term {
  grid-column: 2;
  color: #0072ba;
  font-weight: 700;
  font-size: 24px;
  text-align: left;
}
.info-desc {
  grid-column: 3;
  font-size: 24px;
  word-break: break-word;
  text-align: left;
}

/* リンク（本文内） */
.info-page a {
  color: #0072ba;
  text-underline-offset: 2px;
}

/* 注意書き（値と同じ20pxに統一） */
.small-note {
  font-size: 20px;
  color: #222;
}

/* ====== 営業部 連絡先（/inquiries/） ====== */
.info-sublead {
  text-align: center;
  font-size: 24px;
  font-weight: 500;
  margin: 0 0 70px;
  color: #222;
}
.contact-block {
  padding: 30px 0;
  border-top: 2px solid #d9d9d9;
}
.contact-block:last-child {
  border-bottom: 2px solid #d9d9d9;
}
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.contact-card {
  padding: 0 20px;
}
.contact-card .contact-title {
  font-size: 24px;
  font-weight: 700;
  color: #0072ba;
  margin: 0 0 8px;
}
.contact-card p {
  font-size: 20px;
}

/* inquiries は通常コンテナ幅で表示 + 先頭二重線回避 */
.info-page--wide .info-body {
  width: 100%;
  max-width: none;
}
.info-page--wide .info-section.first {
  border-top: none;
}

/* ====== サイトマップ（/sitemap/） ====== */
.sitemap-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px 110px;
  align-items: start;
}
.sitemap-col {
  min-width: 0;
}
.sitemap-col--spacer {
  height: 0;
  padding: 0;
  margin: 0;
} /* 1行目のダミー */

.sitemap-top {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}
.sitemap-top li {
  margin: 0;
}

.sitemap-head {
  border-left: 6px solid #0072ba;
  padding-left: 12px;
  font-size: 24px;
  font-weight: 700;
  color: #111; /* 黒見出し */
  margin: 8px 0 12px;
}

.sitemap-list {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}
.sitemap-list li {
  margin: 0;
}

/* テキストとアイコンを2列にして右端アイコンを縦位置そろえ */
.sitemap-list a,
.sitemap-top a {
  display: grid;
  grid-template-columns: 1fr 18px;
  gap: 12px;
  align-items: center;
  padding: 6px 0;
  font-size: 20px;
  text-decoration: none;
}
.sitemap-list a:hover,
.sitemap-top a:hover {
  opacity: 0.85;
}

.sitemap-list .link-icon,
.sitemap-top .link-icon {
  width: 18px;
  height: 18px;
  display: block;
}

.contact-card hr {
  display: none;
}

/* このサイトについて */

.about__container hr {
  border: none;
  height: 2px;
  background: #d9d9d9;
  margin: 20px 0 30px;
  width: 100%;
  display: block;
  box-sizing: border-box;
}

@media (max-width: 879px) {
  .about__container hr {
    height: 1px;
    margin: 14px 0 20px;
  }
}

.about__container .info-section__about {
  max-width: 930px;
  width: 100%;
  margin: 0 auto 100px;
}

.about__container .info-section__about h2 {
  color: #0072ba;
  font-weight: 700;
  font-size: 24px;
  text-align: left;
  padding: 0 20px;
}

.about__container .info-section__about p {
  font-weight: 400;
  font-size: 20px;
  text-align: left;
  padding: 0 20px;
}

.about__container .info-section__about ul {
  font-weight: 400;
  font-size: 20px;
  text-align: left;
  padding: 0 20px;
  list-style: disc;
  list-style-position: inside;
}

.about__container .info-section__about a {
  color: #0072ba;
}

/* サイトマップ */
.sitemap__container .info-section h2 {
  margin: 0 0 10px 0;
}

.sitemap__container .info-section hr {
  margin: 20px 0 30px;
}

.sitemap__container .info-section ul {
  margin: 0 0 12px 0;
  padding: 0;
}

/* レスポンシブ */
/* SPレイアウト（1カラム） */
@media (max-width: 879px) {
  .contact-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .info-sublead {
    font-size: 14px;
    margin: 0 0 40px;
  }
  .contact-block {
    padding: 12px 0;
    border-top: 1px solid #d9d9d9;
  }
  .contact-card .contact-title {
    font-size: 14px;
  }

  /* SPだけ：gapをやめて「線＋余白」に置き換え */
  .contact-grid {
    gap: 0;
  }

  /* 境界線（下線）と下側10pxの余白＆離隔 */
  .contact-grid > *:not(:last-child) {
    border-bottom: 1px solid #d9d9d9;
  }

  /* 線の上側10px（次アイテムの上に確保） */
  .contact-grid > * + * {
    margin-top: 10px;
  }

  .contact-card p {
    font-size: 14px;
  }
  .contact-block:last-child {
    border-bottom: 1px solid #d9d9d9;
  }
  .info-section {
    margin-bottom: 40px;
  }
  /* 事業案内 */
  .info-section__company {
    min-width: initial;
    margin: 0 auto 40px;
  }

  .info-term {
    grid-column: 2;
    font-size: 14px;
  }
  .info-desc {
    grid-column: 3;
    font-size: 14px;
  }

  .info-row {
    grid-template-columns: 30px calc(40% - 30px) 60%;
    padding: 12px 0;
    border-top: 1px solid #d9d9d9;
  }
  .info-section__company {
    width: 100%;
    padding: 0 28px;
  }

  .info-row:last-child {
    border-bottom: 1px solid #d9d9d9;
  }

  /* このサイトについて */
  .about__container .info-section__about h2 {
    font-size: 14px;
    padding: 0 16px;
  }

  .about__container .info-section__about p {
    font-size: 14px;
    padding: 0 16px;
  }

  .about__container .info-section__about ul {
    font-size: 14px;
    padding: 0 16px;
  }

  .about__container .info-section__about {
    font-size: 14px;
    min-width: initial;
    margin: 0 auto 40px;
  }

  /* サイトマップ */
  .sitemap__container .info-section hr {
    margin: 14px 0 20px;
  }

  .sitemap__container .info-section h2 {
    font-size: 16px;
  }
  .sitemap-list a,
  .sitemap-top a {
    font-size: 14px;
  }
  .sitemap__container .sitemap-grid {
    gap: 6px 48px;
  }
}

/* @media (max-width: 1024px) {
  .sitemap-grid {
    grid-template-columns: repeat(2, 1fr);
  }
} */
@media (max-width: 879px) {
  .sitemap-grid {
    grid-template-columns: 1fr;
  }
}
