/* 全体背景 */
body {
  background-color: #faf7f3;
  color: #333333;
}

/* ヘッダー */
header {
  background-color: #f3e9df;
}

/* リンク */
a {
  color: #d17c6b;
}

a:hover {
  color: #b85f50;
}

/* 記事カード背景 */
.bg-white {
  background-color: #ffffff;
}

/* ヘッダー背景色を変更 */
.site-header,
header {
  background-color: #f3e9df !important;
  /* ベージュ系 */
}

/* サイトタイトル文字色 */
.site-header a,
.site-header .site-title {
  color: #ffffff !important;
}

/* 本文（サイト全体の中身） */
body {
  font-family: 'M PLUS 1p',
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    sans-serif;
  line-height: 1.8;
  letter-spacing: 0.02em;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

main {
  flex-grow: 1;
}

/* 見出しも同じにしたい場合（統一感重視） */
h1,
h2,
h3,
h4,
h5,
h6,
.site-title,
.nav a {
  font-family: 'M PLUS 1p', sans-serif;
}

/* 年齢別カード全体 */
.age-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  background: #faf7f4;
  padding: 3rem 1rem;
}

/* スマホでは2列表示 */
@media (max-width: 767px) {
  .age-cards {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  .age-card {
    padding: 15px;
  }

  .age-card h2 {
    font-size: 1rem;
  }
}

/* カード1枚 */
.age-card {
  background-color: #ffffff;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  text-decoration: none;
  color: #333;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.age-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

/* アイコン */
.age-icon {
  font-size: 2rem;
  display: block;
  margin-bottom: 10px;
}

/* タイトル */
.age-card h2 {
  margin: 10px 0 5px;
  font-size: 1.1rem;
}

/* 説明文 */
.age-card p {
  font-size: 0.9rem;
  color: #666;
}

/* ヘッダーロゴ 共通 */
.site-logo {
  width: auto;
  /* 縦横比維持 */
  display: block;
  /* inline-img由来のズレ防止 */
}

/* スマホ（〜767px） */
@media (max-width: 767px) {
  .site-logo {
    height: 40px;
    /* スマホ：固定高さで潰れ防止 */
    width: auto;
    max-width: none;
    /* Flex内での縮小防止 */
  }
}

/* PC（768px〜） */
@media (min-width: 768px) {
  .site-logo {
    height: 56px;
    /* PC：しっかり存在感 */
    width: auto;
  }
}

/* ロゴリンク */
.logo-link {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}

/* トップページのヒーロー高さを抑える */
.home .pv6-l {
  padding-top: 3rem;
  padding-bottom: 0.5rem;
  /* 下の余白をさらに詰める */
}

@media (max-width: 767px) {
  .home .pv4 {
    padding-top: 2rem;
    padding-bottom: 0.5rem;
  }
}

/* ナビ：横スクロール（スマホ） */
.nav-items-scroll {
  display: flex;
  gap: 1.5rem;
  /* 間隔を広げてスッキリ */
  padding-left: 0;
  /* 左余白なし（justify-betweenに任せる） */
  margin: 0;
  margin: 0;
  list-style: none;
}

/* メニューリンク */
.nav-link {
  display: inline-block;
  padding: 0.5rem 0;
  /* 上下余白のみ、左右はgapで管理 */
  font-size: 0.95rem;
  /* 少し大きく */
  font-weight: 500;
  /* 少し太くして視認性アップ */
  white-space: nowrap;
  color: #ffffff;
  text-decoration: none;
  transition: color 0.2s ease;
}

.nav-link:hover {
  color: #b85f50;
}

/* スマホ */
@media (max-width: 767px) {
  .nav-items-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* Firefox */
    /* Firefox */
    margin-left: 1rem;
    /* ロゴとの隙間を確保 */
    flex: 1;
    /* 残りの幅を埋める */
    min-width: 0;
    /* Flexアイテム内でスクロールさせるために必須 */
  }

  /* スマホでのタイトル文字サイズ調整 */
  header h1,
  .site-header h1 {
    font-size: 1.75rem !important;
    /* Tachyonsのf2クラス(2.25rem)を上書き */
    line-height: 1.3 !important;
  }

  .nav-items-scroll::-webkit-scrollbar {
    display: none;
    /* Chrome, Safari */
  }
}

/* PC */
@media (min-width: 768px) {
  .nav-items-scroll {
    overflow: visible;
  }

  /* PCでの文字サイズ調整 */
  .nav-link {
    font-size: 1.1rem;
    /* 0.95rem -> 1.1rem に拡大 */
    color: #ffffff !important;
    /* 強制的に白 */
  }

  .nav-link:hover {
    color: #b85f50 !important;
  }
}

/* ヒーローヘッダーの高さ調整 */
.hero-padding {
  padding-top: 1.5rem !important;
  /* モバイル: pv3相当 */
  padding-bottom: 1.5rem !important;
}

@media (min-width: 768px) {
  .hero-padding {
    padding-top: 3.5rem !important;
    /* PC: pv5(4rem)より少し小さい = 元の半分以下 */
    padding-bottom: 3.5rem !important;
  }
}

/* ヒーローフォント調整 */
.hero .f1 {
  font-weight: 500;
}

.hero p {
  letter-spacing: 0.05em;
  opacity: 0.9;
}

/* コンテンツがない場合、「準備中」表示 */
.coming-soon {
  width: 100%;
}

.coming-soon-img {
  width: 100%;
  height: auto;
  display: block;
}

/* 最新ブログ（リスト） */
.home-latest-posts {
  background-color: #f7f5f1;
}

/* 1記事(トップブログセクション) */
.home-post-list-item {
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  padding: 1.5rem 0;
}

/* 最後の線を消す(トップブログセクション) */
.home-post-list-item:last-child {
  border-bottom: none;
}

/* 全体リンク(トップブログセクション) */
.home-post-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* タイトル(トップブログセクション) */
.home-post-link h3 {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 0.3rem;
}

/* 日付(トップブログセクション) */
.home-post-meta {
  font-size: 0.8rem;
  color: #888;
  margin-bottom: 0.5rem;
}

/* 概要(トップブログセクション) */
.home-post-summary {
  font-size: 0.9rem;
  color: #555;
  line-height: 1.7;
}

/* ホバー(トップブログセクション) */
.home-post-link:hover h3 {
  text-decoration: underline;
}

@media (max-width: 767px) {
  .home-post-link h3 {
    font-size: 1rem;
  }

  .home-post-summary {
    font-size: 0.85rem;
  }
}

/* 最新ブログ全体の背景 */
.home-latest-posts {
  background-color: #fadc7a62;
  /* age-cardsと近い柔らかい色 */
  border-radius: 16px;
  margin: 4rem auto;
  padding: 3rem 2rem;
}

@media (max-width: 767px) {
  .home-latest-posts {
    padding: 2rem 1.2rem;
    margin: 2rem 1rem;
  }
}

/* フッター全体の背景色 */
.site-footer,
.bg-black {
  background-color: #6f6a4f !important;
}

/* トップページのお知らせリンク */
.intro-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: #ffffff;
  border: 2px solid #f3e9df;
  /* ヘッダーと同じベージュで優しく */
  border-radius: 50px;
  /* 丸くして親しみやすく */
  padding: 0.8rem 1.5rem;
  color: #555;
  text-decoration: none;
  transition: all 0.2s ease;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
  max-width: 500px;
  /* 広がりすぎないように */
  margin: 0 auto;
  /* 中央寄せ */
}

.intro-notice:hover {
  background-color: #faf7f4;
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  color: #b85f50;
  /* テーマカラー */
}

/* 404ページのタイトル文字サイズ強制上書き（スマホのみ） */
@media (max-width: 767px) {

  header h1.title-404,
  .title-404 {
    font-size: 1.1rem !important;
    line-height: 1.5 !important;
  }
}

.intro-badge {
  background-color: #e6b422;
  /* ゴールド/黄色系で注目 */
  color: #fff;
  font-size: 0.8rem;
  font-weight: bold;
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  margin-right: 1rem;
}

.intro-text {
  font-weight: bold;
  flex-grow: 1;
  text-align: left;
}

.intro-arrow {
  margin-left: 1rem;
  font-weight: bold;
  color: #ccc;
}

/* カテゴリページのイントロ（黄色い枠） */
.section-intro-box {
  background-color: #fadc7a62;
  /* Latest Blogと同じ色 */
  border-radius: 16px;
  padding: 2rem 2.5rem;
  /* 少し余裕を持たせる */
  box-sizing: border-box;
  /* paddingを含めた幅計算 */
  margin-bottom: 4rem;
  /* 下のカードとの余白 */
}

@media (max-width: 767px) {
  .section-intro-box {
    padding: 1.5rem 1.2rem;
    /* スマホは少し詰め気味 */
    margin-bottom: 3rem;
  }
}

/* 記事本文のフォント統一（Anankeのデフォルトserifを上書き） */
.serif {
  font-family: 'M PLUS 1p', sans-serif !important;
}