/* ===== ポップ＆明るいデザイン（リベラルアーツ大学風） ===== */

/* フォント設定 */
body {
  font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Meiryo", sans-serif;
  line-height: 1.8;
  color: #333;
  background: #fffdf7;
}

/* ===== レスポンシブ：記事一覧のグリッドレイアウト ===== */

/* 記事一覧グリッド：記事が増えたら自動で2列になる */
.list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 540px), 1fr));
  gap: 24px;
  width: 100%;
}

/* スマホ */
@media (max-width: 599px) {
  .list-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* 記事カードのスタイル */
.list-grid-item {
  background: #fff;
  border-radius: 16px;
  border: 2px solid #e3f2fd;
  box-shadow: 0 4px 14px rgba(30, 136, 229, 0.08);
  overflow: hidden;
  transition: transform 0.2s, box-shadow 0.2s;
}

.list-grid-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(30, 136, 229, 0.18);
}

/* ===== ヘッダー：ロイヤルブルー→ターコイズのグラデーション ===== */
header.bg-black,
header.bg-near-black,
header.bg-dark-gray,
header {
  background: linear-gradient(135deg, #1E88E5, #00ACC1) !important;
  background-color: #1E88E5 !important;
}

/* ヘッダーのタイトル文字 */
header h1 a,
header h1,
header .site-title,
.site-title {
  color: #fff !important;
  font-size: 1.3rem !important;
  font-weight: 900 !important;
  text-shadow: 0 2px 8px rgba(0,0,0,0.3), 0 1px 2px rgba(0,0,0,0.2);
  letter-spacing: 0.02em;
}

/* ===== ナビゲーションメニュー ===== */
nav a, header nav a {
  color: #1565C0 !important;
  font-weight: bold;
  background: #ffffff !important;
  border-radius: 20px;
  padding: 6px 16px !important;
  margin: 0 4px;
  transition: background 0.2s, color 0.2s;
  text-decoration: none !important;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  font-size: 0.9rem;
}

nav a:hover, header nav a:hover {
  background: #E3F2FD !important;
  color: #0D47A1 !important;
}

/* ===== メインビジュアル（カバー部分）===== */
.bg-black,
.cover,
.cover.bg-black,
.bg-near-black {
  background: linear-gradient(135deg, #1E88E5, #00ACC1) !important;
  background-color: #1E88E5 !important;
}

/* ===== 記事カード ===== */
article.br2, article {
  border-radius: 16px !important;
  box-shadow: 0 4px 16px rgba(255, 152, 0, 0.12) !important;
  border: 2px solid #ffe082 !important;
  transition: transform 0.2s, box-shadow 0.2s !important;
  background: #fff !important;
  overflow: hidden;
}

article:hover {
  transform: translateY(-4px) !important;
  box-shadow: 0 8px 28px rgba(255, 111, 0, 0.2) !important;
}

/* 記事タイトルリンク */
article h2 a, article h1 a {
  color: #e65100 !important;
  text-decoration: none !important;
}

article h2 a:hover, article h1 a:hover {
  color: #ff6f00 !important;
}

/* ===== フッター ===== */
footer {
  background: linear-gradient(135deg, #1565C0, #00838f) !important;
  color: #fff !important;
  margin-top: 60px;
}

footer a {
  color: #fff !important;
}

/* ===== 記事本文 ===== */
.article-body-text {
  font-size: 1.05rem;
}

/* 見出し */
.article-body-text h2 {
  border-left: 6px solid #ff9800;
  border-bottom: 2px solid #ffe082;
  padding: 8px 0 8px 16px;
  color: #e65100;
  background: linear-gradient(90deg, #fff8e1, transparent);
  border-radius: 0 8px 8px 0;
  margin-top: 40px;
}

.article-body-text h3 {
  color: #ef6c00;
  border-left: 4px solid #ffcc02;
  padding-left: 12px;
}

/* hrのスタイル */
hr {
  border: none;
  border-top: 3px dashed #ffe082;
  margin: 32px 0;
}

/* ===== 目次ボックス ===== */
.toc-box {
  background: #f0f7ff;
  border: 2px solid #90caf9;
  border-radius: 16px;
  padding: 20px 28px;
  margin: 24px 0;
}

.toc-title {
  font-size: 1.1rem;
  font-weight: bold;
  color: #1565C0;
  margin-bottom: 12px;
}

.toc-list {
  margin: 0;
  padding-left: 24px;
}

.toc-list li {
  margin: 8px 0;
  font-size: 1rem;
}

.toc-list a {
  color: #1E88E5;
  text-decoration: none;
  border-bottom: 1px dashed #90caf9;
  transition: color 0.2s;
}

.toc-list a:hover {
  color: #0D47A1;
  border-bottom-color: #1E88E5;
}

/* ===== イントロボックス ===== */
.intro-box {
  background: linear-gradient(135deg, #fff9c4, #fff3e0);
  border-left: 6px solid #ff9800;
  border-radius: 12px;
  padding: 20px 24px;
  margin: 24px 0;
  font-size: 1rem;
  line-height: 2;
  box-shadow: 0 2px 8px rgba(255, 152, 0, 0.2);
}

/* ===== 警告セクション ===== */
.warning-section {
  background: #fff8f8;
  border: 2px solid #ffcdd2;
  border-radius: 16px;
  padding: 24px 28px;
  margin: 28px 0;
}

.warning-section h3 {
  color: #c62828;
  font-size: 1.1rem;
  margin-top: 20px;
  margin-bottom: 8px;
  border: none;
  padding-left: 0;
}

.warning-section h3:first-child {
  margin-top: 0;
}

/* ===== Tipsイントロ ===== */
.tips-intro {
  text-align: center;
  background: linear-gradient(135deg, #e8f5e9, #f1f8e9);
  border-radius: 50px;
  padding: 14px 24px;
  margin: 20px 0 28px;
  font-weight: bold;
  color: #2e7d32;
  font-size: 1rem;
}

/* ===== Tipカード ===== */
.tip-card {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: #fff;
  border: 2px solid #ffe082;
  border-radius: 16px;
  padding: 20px 24px;
  margin: 16px 0;
  box-shadow: 0 3px 12px rgba(255, 152, 0, 0.1);
  transition: transform 0.2s, box-shadow 0.2s;
}

.tip-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(255, 111, 0, 0.2);
}

#tip1  { border-color: #ffccbc; }
#tip2  { border-color: #f8bbd0; }
#tip3  { border-color: #e1bee7; }
#tip4  { border-color: #c5cae9; }
#tip5  { border-color: #b3e5fc; }
#tip6  { border-color: #b2ebf2; }
#tip7  { border-color: #b2dfdb; }
#tip8  { border-color: #c8e6c9; }
#tip9  { border-color: #f0f4c3; }
#tip10 { border-color: #ffe0b2; }

.tip-number {
  font-size: 2.5rem;
  font-weight: 900;
  min-width: 60px;
  text-align: center;
  line-height: 1;
  opacity: 0.3;
  padding-top: 4px;
}

#tip1  .tip-number { color: #e64a19; }
#tip2  .tip-number { color: #ad1457; }
#tip3  .tip-number { color: #6a1b9a; }
#tip4  .tip-number { color: #283593; }
#tip5  .tip-number { color: #0277bd; }
#tip6  .tip-number { color: #00838f; }
#tip7  .tip-number { color: #00695c; }
#tip8  .tip-number { color: #2e7d32; }
#tip9  .tip-number { color: #827717; }
#tip10 .tip-number { color: #e65100; }

.tip-content h3 {
  margin: 0 0 10px;
  font-size: 1.15rem;
  color: #1a1a2e;
  border: none;
  padding-left: 0;
}

.tip-content p {
  margin: 0 0 8px;
  font-size: 0.97rem;
  color: #444;
}

/* ===== まとめテーブル ===== */
.summary-box table {
  width: 100%;
  border-collapse: collapse;
  margin: 16px 0;
  font-size: 0.97rem;
}

.summary-box th {
  background: linear-gradient(135deg, #ffb300, #ff6f00);
  color: white;
  padding: 10px 16px;
  text-align: left;
}

.summary-box td {
  padding: 10px 16px;
  border-bottom: 1px solid #ffe082;
}

.summary-box tr:nth-child(even) td {
  background: #fffde7;
}

/* ===== クロージングボックス ===== */
.closing-box {
  background: linear-gradient(135deg, #fff9c4, #ffe0b2);
  border-radius: 16px;
  padding: 20px 24px;
  margin: 32px 0 16px;
  font-size: 1rem;
  line-height: 2;
  text-align: center;
  box-shadow: 0 2px 8px rgba(255, 152, 0, 0.15);
  border: 2px solid #ffe082;
}

/* ===== スマホ対応 ===== */
@media (max-width: 600px) {
  .tip-card {
    flex-direction: column;
    gap: 10px;
  }
  .tip-number {
    font-size: 1.8rem;
    min-width: auto;
  }
}
