/* ==========================
   ルート変数・ベーススタイル
   目的: 全体の最大幅やギャップを定義し、ボックスサイズと基本フォントを設定
   ========================== */
:root {
  --max: 1100px; /* コンテンツ幅の上限 */
  --gap: 16px;   /* グリッドなどの隙間 */
}

/* 全ての要素でボックスサイズを border-box に設定（レイアウトを直感的に） */
* {
  box-sizing: border-box;
}

/* ページ全体の高さ基準 */
html,
body {
  height: 100%;
  min-height: 100%;
}

/* body のベース（余白、フォント、行間、色、背景）
   目的: ページの基本的なテキスト表示を統一 */
body {
  margin: 0;
  position: relative;      /* 背景レイヤ（pseudo-element）を固定させるため */
  overflow-x: hidden;     /* 横スクロールの防止 */
  font-family: system-ui, -apple-system, "Segoe UI", Roboto,
    "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  line-height: 1.7;
  color: #222;
  background: #fff;
}

/* リンクは既定色を踏襲（サイトのカラーに合わせて変える場合は上書き）
   目的: a 要素のデフォルトスタイル簡略化 */
a {
  color: inherit;
}


/* ==========================
   ヘッダー / フッター
   目的: ページヘッダーとフッターの余白と境界線を設定
   ========================== */
.site-header,
.site-footer {
  padding: 12px 16px;
  border-bottom: 1px solid #eee; /* ヘッダー下の区切り線 */
}

/* フッターは上に線を引き、下線は削除 */
.site-footer {
  border-top: 1px solid #eee;
  border-bottom: none;
}

/* ヘッダーナビ内のリンク（目的: ナビの余白と見た目調整） */
header nav a {
  margin-right: 12px;
  text-decoration: none;
  color: #333;
}

/* 現在ページのナビは太字に（目的: 現在位置の強調） */
header nav a[aria-current="page"] {
  font-weight: 600;
}


/* ==========================
   メインコンテンツ領域
   目的: 中央のコンテンツ幅と余白を制御
   ========================== */
main {
  max-width: var(--max);
  margin: 24px auto; /* 中央寄せ */
  padding: 0 16px;
}

.hero {
  padding: 32px 0; /* トップの大きめの余白（ヒーロー領域） */
}

.cta-row {
  margin-top: 16px; /* Call-to-action 行の上余白 */
}

.btn {
  display: inline-block;
  padding: 10px 16px;
  border: 1px solid #222;
  text-decoration: none;
  border-radius: 6px; /* ボタンの角丸 */
}


/* ==========================
   グリッド / カード
   目的: 一覧やサイドカラムなどを整列させるためのグリッド定義
   ========================== */
.grid {
  display: grid;
  grid-template-columns: 1fr; /* モバイルは単一カラム */
  gap: var(--gap);
}

.card {
  border: 1px solid #ffffffe3; /* 薄い境界線 */
  border-radius: 10px;
  padding: 16px;
  background-color: #ffffffe3; /* 背景色（カード） */
}

/* タブレット以上で2カラム（メイン + サイド） */
@media (min-width: 768px) {
  .grid {
    grid-template-columns: 2fr 1fr;
  }
}

.content {
  padding: 16px 0;
}


/* ==========================
   前景のレイヤ順制御
   目的: 背景（pseudo-element）より前にテキストなどが来るように
   ========================== */
.site-header,
.site-footer,
main {
  position: relative;
  z-index: 1; /* 背景 pseudo-element（z-index:0）より手前に出す */
  /* 必要ならここで background: rgba(...) を追加してコントラストを取る */
}


/* ==========================
   背景イメージ（モバイル基準）
   目的: スクロールに合わせて縦にタイルする背景画像を表示し、フェードアニメで弱い動きを付与
   注意: pointer-events:none にして背景が操作を邪魔しないようにしている
   ========================== */
body::before {
  content: "";
  position: fixed;
  inset: 0;                 /* 全面を覆う */
  z-index: 0;               /* コンテンツより後ろ */
  pointer-events: none;     /* 背景がクリックなどを妨げない */
  background-image: url('/assets/bg-img_001.PNG');
  background-repeat: repeat-y; /* 縦リピート */
  background-position: center top;
  background-size: 100% auto;  /* 横幅に合わせる */
  animation: bgFade 10s ease-in-out infinite; /* 徐々に変化するフェード */
  will-change: opacity;
}

/* PC（広い画面）では別画像を使い、リピートを解除 */
@media (min-width: 1024px) {
  body::before {
    background-image: url('/assets/bg-img_001-pc.PNG');
    background-repeat: no-repeat;
    background-position: center top;
    background-size: 100% auto;
  }
}


/* 背景用の簡単なフェードアニメーション */
@keyframes bgFade {
  0%,
  100% {
    opacity: 0.7;
  }
  50% {
    opacity: 1;
  }
}


