/* デフォルトのhtml要素に対するcss */
/* CMS上では別のスタイルに上書きされてしまうので、custom-をつける */
/* 統一されたリンクデザイン */
.custom-a {
  color: #0073e6; /* リンクカラー */
  text-decoration: none; /* 下線を削除 */
  font-weight: normal; /* 通常のフォントウェイト */
  transition: color 0.3s ease-in-out; /* 色変化時のアニメーション */
}

.custom-a:hover {
  text-decoration: underline; /* ホバー時に下線を表示 */
}

/* 見出し h2 のスタイル */
.custom-h2 {
  padding-left: 10px;
  border-left: 5px solid #111827; /* 左側にラインを追加 */
  margin: 0;
  font-size: 24px;
  font-weight: bold;
  display: block;
}

/* 見出し h3 のスタイル */
.custom-h3 {
  padding-left: 15px;
  margin-bottom: 10px;
  border-bottom: 5px solid #cccccc; /* 下線を追加 */
  font-size: 20px;
  font-weight: bold;
  display: block;
}

/* リストのデザイン */
.custom-ul {
  list-style: none; /* リストのスタイルをなし */
  padding-left: 20px;
  margin: 0;
}

.custom-ul li {
  font-size: 16px;
  line-height: 1.5;
  padding: 5px 0;
}

/* 本文(body要素全体)コンテナの配置 */
.body-container {
  padding: 0 20px;
  justify-content: left;
}

/* 画像や動画を配置するコンテナ(img要素やiframe要素を囲む)*/
.media-container {
  display: flex;
  justify-content: left; /* 左寄せ */
  align-items: center; /* 縦方向の中央揃え */
  padding: 10px;
}

/* iframe 用のスタイル（YouTubeなどの埋め込み） */
.media-container iframe {
  max-width: 600px;
  min-width: 300px;
  width: 80%; /* 幅を80%に設定 */
  aspect-ratio: 16 / 9; /* YouTubeなどの縦横比 */
  border-radius: 10px; /* 角丸デザイン */
  border: none; /* 枠線を削除 */
}

/* メディア（画像や動画）のデザイン */
.media {
  max-width: 600px; /* 最大幅を600pxに設定 */
  min-width: 300px; /* 最小幅を300pxに設定 */
  width: 100%; /* 幅を100%に設定 */
  height: auto; /* 縦横比を維持 */
  display: block;
  border-radius: 10px; /* 角丸デザイン */
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 軽い影を追加 */
}

/* タブレット用のレスポンシブ対応 */
@media (max-width: 1024px) {
  .media {
    max-width: 75%; /* タブレット用に最大幅を75%に変更 */
  }
}

/* スマホ用のレスポンシブ対応 */
@media (max-width: 768px) {
  .media {
    max-width: 100%; /* スマホ用に最大幅を100%に変更 */
    padding: 5px; /* スマホ用にパディングを減少 */
  }
}

/* h2セクション全体のスタイル（h2見出しの範囲全体を囲む） */
.h2-section {
  max-width: 900px;
  padding: 10px;
  color: #111827; /* テキストカラー */
  text-align: left;
  box-sizing: border-box; /* パディング込みのサイズ計算 */
}

/* h2タグ要素を囲むコンテナ */
.h2-section-title-container {
  background: #e0e0e0;
  border-radius: 5px;
  margin: 20px 0;
  padding: 7px 20px;
  display: block;
}

/* コンテンツ部分のスタイル（地の文を囲む） */
.main-content {
  padding: 10px 20px;
  font-size: 16px;
  min-height: 0px;
}

/* アコーディオン全体のスタイル（折り畳みにしたいコンテンツ全体を囲む） */
.accordion {
  max-width: 900px;
  margin: 0 auto;
  justify-content: center;
}

/* 各アコーディオン項目（折り畳みにするコンテンツ部分を囲む。基本的に上記の"accordion"のすぐ内側で定義する） 
ヘッダーとコンテンツ両方に適用されるスタイル*/
.accordion-item {
  background: #fff;
  margin-bottom: 10px;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

/* アコーディオンヘッダー（アコーディオンの見出し=常に表示される部分）のスタイル */
.accordion-header {
  width: 100%;
  padding: 15px;
  font-size: 18px;
  font-weight: bold;
  background: #4338ca; /* 背景色 */
  color: white; /* テキスト色 */
  border: none;
  text-align: left;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  outline: none;
  transition: background 0.3s;
}

/* アコーディオンヘッダーのホバー時（上記ヘッダーにカーソルを合わせたときの動作） */
.accordion-header:hover {
  background: #312e81; /* ホバー時の背景色 */
}

/* アイコン（アコーディオンヘッダーの右端につく"+"と"-"ボタン）のスタイル */
.icon {
  font-size: 20px;
  transition: transform 0.3s ease;
}

/* アコーディオンのコンテンツに対するスタイル */
.accordion-content {
  background: #fff;
  padding: 15px;
  display: none;
}

/* グリッドレイアウト（複数ファイルを横に並べるものに対して適用する） */
.file-grid {
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(200px, 1fr)
  ); /* 200px以上で自動調整 */
  gap: 10px; /* アイテム間の隙間 */
  max-width: 900px;
  margin: 0 auto;
}
