html, body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* ✨ 横スクロール防止 */
  box-sizing: border-box;
}

.contents {
  width: 640px;
  margin: 40px auto;
  padding: 10px;
  display: flow-root;
}

/* コンテンツセクション */
.content-section {
  background-color: #D5F6F8;
  border: 3px solid #5FA9A8;
  border-radius: 10px;
  box-shadow: 0 0 0 1.5px #D5F6F8 inset;
  padding: 20px;
  max-width: 640px; /* ⬅ 固定幅→max-widthに変更してズレ防止 */
  margin: 20px auto;
  box-sizing: border-box;
  color: #0D635A;
  font-size: 15px;
  line-height: 1.8;
}

/* 見出し */
.content-section h2 {
  margin-top: 0;
  color: #0D635A;
}

/* フォントクレジットボックス */
.font-credit-box {
  background-color: #D5F6F8;
  border: 3px solid #A1D7D6;
  border-radius: 10px;
  box-shadow: 0 0 0 1.5px #D5F6F8 inset;
  padding: 20px;
  max-width: 640px;
  margin: 20px auto;
  box-sizing: border-box;
  color: #b2cbd2;
  font-size: 15px;
  line-height: 1.8;
}

.font-credit-box h2 {
  margin-top: 0;
  font-size: 16px;
  color: #5FA9A8;
}

.font-credit-box a {
  color: #b2cbd2;
  text-decoration: none;
  font-size: 13px;
}

.font-credit-box a:hover {
  text-decoration: underline;
  color: #c2c2c2;
}

/* 🌱 レスポンシブ調整 */
@media (max-width: 640px) {
  .content-section,
  .font-credit-box {
    width: 95%;
    margin: 20px auto;
    padding: 15px;
    font-size: 15px;
    line-height: 1.6;
    box-sizing: border-box;
  }

  .font-credit-box h2 {
    font-size: 18px;
  }

  .font-credit-box a {
    font-size: 14px;
  }
}
